Example #1
0
        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();
        }
Example #2
0
        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));
            }
        }