Exemple #1
0
        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));
        }
Exemple #2
0
        public ActionResult ImportAsync(string error = null)
        {
            var model = new Models.Modules.Export.ImportProtocol()
            {
                BackController = ControllerName, ActionError = error
            };

            return(View(model));
        }