Télécharger et Processus Fichier CSV dans ASP.NET MVC 4 Considérations Architecturales

Je suis en train de travailler sur un ASP.NET MVC 4 Demande que les importations et les processus d'un fichier CSV. Je suis à l'aide d'un formulaire standard et le contrôleur pour le téléchargement. Voici un aperçu de ce que je fais actuellement:

Contrôleur Logique

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" />
}

L'importation de fichier peut contenir un grand nombre d'enregistrements (moyenne+ 40K) et peut prendre un certain temps pour terminer. Je préfère ne pas disposer d'un utilisateur assis à l'écran d'importation de plus de 5 minutes pour chaque fichier traité. J'ai envisagé d'ajouter une application console pour regarder le dossier téléchargements pour les nouveaux fichiers et les processus quand quelque chose de nouveau est ajouté, mais envie de voir ce que l'entrée que je reçois de la communauté avant de commencer mon voyage en bas de ce chemin.

Est-il un moyen plus efficace de gérer cette opération?

Est-il un moyen pour effectuer cette action, permettant à l'utilisateur de continuer sur sa/son petit bonhomme de chemin, et puis informer l'utilisateur lorsque le traitement est terminé?

OriginalL'auteur TNCodeMonkey | 2012-12-04