public ActionResult SaveImport([DataSourceRequest] DataSourceRequest request, CatImportModel model) { try { if (model.UserID != Guid.Empty && ListImportDataTemp != null && ListImportDataTemp.ContainsKey(model.UserID)) { ImportService importService = new ImportService { UserID = model.UserID, ImportTemplateID = model.ID, DateTimeFormat = model.FormatDate, ImportMode = model.ProcessDuplicateData == HRM.Infrastructure.Utilities.EnumDropDown.DuplicateData.E_INSERT.ToString() ? ImportDataMode.Insert : model.ProcessDuplicateData == HRM.Infrastructure.Utilities.EnumDropDown.DuplicateData.E_UPDATE.ToString() ? ImportDataMode.Update : ImportDataMode.Skip }; importService.ProgressChanged += importService_ProgressChanged; if (importService.Save(model.UserID, ListImportDataTemp[model.UserID], UserLogin)) { ListImportDataTemp[model.UserID] = null; ListImportDataTemp.Remove(model.UserID); return Json(NotificationType.Success.ToString()); } else { return Json(NotificationType.Error.ToString()); } } else { return Json(NotificationType.Error.ToString()); } } catch (Exception ex) { return Json(NotificationType.Error + "," + ex.GetExceptionMessage()); } }
public ContentResult Import([DataSourceRequest] DataSourceRequest request, CatImportModel model) { var _fileName = Common.GetPath(Common.TemplateURL) + model.TemplateFile; _fileName = _fileName.Replace("/", "\\"); ImportService importService = new ImportService { FileName = _fileName, UserID = model.UserID, ImportTemplateID = model.ID, DateTimeFormat = model.FormatDate, ImportMode = model.ProcessDuplicateData == HRM.Infrastructure.Utilities.EnumDropDown.DuplicateData.E_INSERT.ToString() ? ImportDataMode.Insert : model.ProcessDuplicateData == HRM.Infrastructure.Utilities.EnumDropDown.DuplicateData.E_UPDATE.ToString() ? ImportDataMode.Update : ImportDataMode.Skip }; importService.ProgressChanged += importService_ProgressChanged; DataTable dataTableInvalid = new DataTable("InvalidData"); DataTable dataTable = new DataTable("ImportData"); string[] lstFieldInvalid = new string[] { "DataField", "InvalidValue", "ExcelField", "ExcelValue", "ValueType", "Desciption" }; try { importService.Import(); dataTable = importService.ListImportData.Translate(importService.ListValueField.ToArray()); dataTableInvalid = importService.ListInvalidData.Translate(lstFieldInvalid); if (model.UserID != Guid.Empty) { if (ListImportDataTemp == null) { ListImportDataTemp = new Dictionary<Guid, IList>(); } if (ListImportDataTemp.ContainsKey(model.UserID)) { ListImportDataTemp[model.UserID] = importService.ListImportData; } else { ListImportDataTemp.Add(model.UserID, importService.ListImportData); } if (ListInvalidDataTemp == null) { ListInvalidDataTemp = new Dictionary<Guid, IList>(); } if (ListInvalidDataTemp.ContainsKey(model.UserID)) { ListInvalidDataTemp[model.UserID] = importService.ListInvalidData.Select(d => d.ImportData).Distinct().ToList(); } else { ListInvalidDataTemp.Add(model.UserID, importService.ListInvalidData.Select(d => d.ImportData).Distinct().ToList()); } } else { model.Description = "Người dùng ảo"; } if (model.IsImportAndSave) { if (importService.Save(model.UserID, importService.ListImportData, UserLogin)) { model.Description = NotificationType.Success.ToString(); } else { model.Description = NotificationType.Error.ToString(); } } } catch (Exception ex) { model.Description = ex.Message; } model.ListImportData = dataTable.ConfigTable().ToDataSourceResult(request); model.ListInvalidData = dataTableInvalid.ConfigTable().ToDataSourceResult(request); model.UrlInvalidFileName = ExportInvalidData(model.UserID, model.ID, importService); model.ListValueField = importService.ListValueField; model.ListDisplayField = lstFieldInvalid.ToList(); var serializer = new JavaScriptSerializer(); serializer.MaxJsonLength = Int32.MaxValue - 1; var result = new ContentResult(); result.Content = serializer.Serialize(model); result.ContentType = "text/json"; return result; }