private void insertExcelRiskManagementData( Stream pFileStream, string pStrUploadBy, int pIntYear, ModelInsertExcelData pModelResult) { var dto = new DtoRisk(); var listExcelRiskManagement = dto.ReadExcelRiskManagementImport( pStreamExcel: pFileStream, pStrUploadBy: pStrUploadBy, pIntYear: pIntYear ) .Where(x => x != null) .GroupBy(x => x.RC) .Select(g => g.Last()) .ToList(); var duplicateInListAfter = listExcelRiskManagement.GroupBy(x => x.RC) .Where(g => g.Count() > 1) .Select(y => new { Element = y.Key, Counter = y.Count() }) .ToList(); var listRiskManagementDuplicate = dto.GetListRiskManagementImportDuplicate(listExcelRiskManagement) .Where(x => x != null).ToList(); for (int i = listExcelRiskManagement.Count - 1; i >= 0; --i) { var risks = listExcelRiskManagement[i]; var risksDuplicate = listRiskManagementDuplicate .FirstOrDefault(x => x.RC == risks.RC && x.YEAR == risks.YEAR); // Insert RiskManagement if (risksDuplicate == null) { dto.InsertRiskManagementImport(risks); } // If Exists Update Pipeline else { dto.UpdateRiskManagementImport(risks); } } dto = null; listExcelRiskManagement.Clear(); listExcelRiskManagement = null; listRiskManagementDuplicate.Clear(); listRiskManagementDuplicate = null; GC.Collect(); }
public JsonResult InsertExceldata() { var result = new ModelJsonResult <ModelInsertExcelData>(); var modelInsertExcel = new ModelInsertExcelData(); try { string inYear = Request["year"]; HttpFileCollectionBase files = Request.Files; if (files == null || 0.Equals(files.Count)) { result.SetError("No File Data To Load"); return(Json(result)); } var fb = files[0]; if (fb == null || fb.InputStream == null) { result.SetError("No File Data To Load"); return(Json(result)); } string exttension = System.IO.Path.GetExtension(fb.FileName); if (!(new string[] { ".xls", ".xlsx" }).Contains(exttension)) { result.SetError("File Type Not In xls or xlsx"); return(Json(result)); } insertExcelRiskManagementData( pFileStream: fb.InputStream, pStrUploadBy: User.Identity.Name, pIntYear: inYear.GetInt(), pModelResult: modelInsertExcel ); result.SetResultValue(modelInsertExcel); return(Json(result)); } catch (Exception ex) { result.SetException(ex); return(Json(result)); } }