public async Task <IActionResult> ImportAsync() { var index = 0; var model = new Models.Modules.Export.ImportProtocol() { BackController = ControllerName }; var logInfos = new List <Models.Modules.Export.ImportLog>(); var importModels = ImportDefault <Model>(CsvHeader); using var ctrl = Factory.Create <Contract>(SessionWrapper.SessionToken); foreach (var item in importModels) { index++; try { if (item.Action == Models.Modules.Export.ImportAction.Insert) { var entity = await ctrl.CreateAsync().ConfigureAwait(false); CopyModels(CsvHeader, item.Model, entity); item.Model.ManyEntities.ForEach(e => entity.AddManyItem(e)); await ctrl.InsertAsync(entity).ConfigureAwait(false); } else if (item.Action == Models.Modules.Export.ImportAction.Update) { var entity = await ctrl.GetByIdAsync(item.Id).ConfigureAwait(false); CopyModels(CsvHeader, item.Model, entity); entity.ClearManyItems(); item.Model.ManyEntities.ForEach(e => entity.AddManyItem(e)); await ctrl.UpdateAsync(entity).ConfigureAwait(false); } else if (item.Action == Models.Modules.Export.ImportAction.Delete) { await ctrl.DeleteAsync(item.Id).ConfigureAwait(false); } logInfos.Add(new Models.Modules.Export.ImportLog { IsError = false, Prefix = $"Line: {index} - {item.Action}", Text = "OK", }); } catch (Exception ex) { logInfos.Add(new Models.Modules.Export.ImportLog { IsError = true, Prefix = $"Line: {index} - {item.Action}", Text = ex.Message, }); } } model.LogInfos = logInfos; return(View(model)); }
public ActionResult ImportAsync(string error = null) { var model = new Models.Modules.Export.ImportProtocol() { BackController = ControllerName, ActionError = error }; return(View(model)); }