Hochladen und Verarbeiten von CSV-Dateien in ASP.NET MVC 4 Architektonischen Überlegungen

Arbeite ich auf einem ASP.NET MVC 4-Anwendung, die Einfuhr und Prozesse einer CSV-Datei. Ich bin mit einem standard-Formular und-controller für den upload. Hier ist ein überblick von dem, was ich Tue, derzeit:

Controller-Logik

public ActionResult ImportRecords(HttpPostedFileBase importFile){

    var fp = Path.Combine(HttpContext.Server.MapPath("~/ImportUploads"), Path.GetFileName(uploadFile.FileName));
    uploadFile.SaveAs(fp);

    var fileIn = new FileInfo(fp);
    var reader = fileIn.OpenText();
     var tfp = new TextFieldParser(reader) {TextFieldType = FieldType.Delimited, Delimiters = new[] {","}};
    while(!tfp.EndOfData){
        //Parse records into domain object and save to database
    }
    ...
}

HTML

@using (Html.BeginForm("ImportRecords", "Import", FormMethod.Post, new { @id = "upldFrm", @enctype = "multipart/form-data" }))
{
    <input id="uploadFile" name="uploadFile" type="file" />
    <input id="subButton" type="submit" value="UploadFile" title="Upload File" />
}

Die import-Datei enthält eine große Anzahl von Datensätzen (Durchschnitt 40K+) und kann einige Zeit dauern, um abzuschließen. Ich würde lieber nicht haben, ein user sitzt in der import-Bildschirm-für 5+ Minuten für jede verarbeitete Datei. Ich habe als Zugabe eine Konsole-Anwendung zu beobachten, den uploads-Ordner für neue Dateien, und der Prozess, wenn etwas neues Hinzugefügt wird, aber würde gerne sehen, welchen input bekomme ich von den die Gemeinschaft vor Anfang meiner Reise auf diesem Weg.

Ist es ein effizienter Weg, um diese zu bewältigen Betrieb?

Gibt es eine Möglichkeit, um diese Aktion auszuführen, so dass der Anwender weiterhin über seine/Ihre fröhliche Art und Weise, und dann den Benutzer benachrichtigt, wenn die Bearbeitung fertig ist?

InformationsquelleAutor TNCodeMonkey | 2012-12-04
Schreibe einen Kommentar