Example #1
0
        public void ImportMapping(int fileID)
        {
            var file = UploadFileRepository.Get().Where(m => m.ID == fileID && m.IsActive == true && m.IsImported == false).FirstOrDefault();

            if (file != null)
            {
                using (MemoryStream ms = new MemoryStream(file.UploadFileData))
                {
                    using (ExcelPackage excel = new ExcelPackage(ms))
                    {
                        if (excel.Workbook.Worksheets.Count == 0)
                        {
                            throw new Exception("File Is Empty");
                        }
                        else
                        {
                            try
                            {
                                List <FileMappingViewModel> fileMapping = new List <FileMappingViewModel>();
                                var worksheet = excel.Workbook.Worksheets.FirstOrDefault();
                                var start     = worksheet.Dimension.Start;
                                var end       = worksheet.Dimension.End;
                                for (int row = start.Row + 1; row <= end.Row; row++)
                                {
                                    fileMapping.Add(new FileMappingViewModel()
                                    {
                                        SheetName      = worksheet.Cells[row, 1].Text,
                                        VariableName   = worksheet.Cells[row, 2].Text,
                                        Cell           = worksheet.Cells[row, 3].Text,
                                        FileTypeID     = file.UploadFileTypeID,
                                        VariableTypeID = (int)VariableTypes.Nvarchar
                                    });
                                }
                                if (fileMapping.Count == 0)
                                {
                                    throw new Exception("File Is not Correct");
                                }

                                FileMappingRepository.ImportNewMappingData(fileMapping.Select(m => Transformer.AsDatabaseModel(m)).ToList(), file.UploadFileTypeID);
                                UploadFileRepository.CheckAsImported(file.ID);
                            }
                            catch (Exception ex)
                            {
                                throw new Exception(ex.Message);
                            }
                        }
                    }
                }
            }

            else
            {
                throw new Exception("File Not Found! It's already deactivated or imported!");
            }
        }
Example #2
0
        public void ReadFile(List <FileListModel> filesList, string rootPath)
        {
            var           MappingData = FileMappingRepository.GetFileMappingsData();
            List <object> returnlist  = new List <object>();

            foreach (var path in filesList)
            {
                int fileID =
                    ReadFilesRepository.Add(new Models.EntityModels.ExcelLoan.ReadFiles()
                {
                    FileName         = path.FileName,
                    UploadFileTypeID = path.FileTypeID,
                    ReadFileStatusID = (int)ReadFileStatus.Faild
                }).ID;


                FileInfo file = new FileInfo(path.FileName);
                using (ExcelPackage package = new ExcelPackage(file))
                {
                    foreach (var sheetName in MappingData.Where(m => m.FileTypeID == path.FileTypeID).Select(m => m.SheetName).Distinct())
                    {
                        string         currentSheet = sheetName;
                        ExcelWorksheet worksheet    = package.Workbook.Worksheets[currentSheet];
                        foreach (var cellCode in MappingData.Where(m => m.FileTypeID == path.FileTypeID && m.SheetName == currentSheet))
                        {
                            string cellValue = null;
                            try
                            {
                                cellValue = worksheet.Cells[cellCode.Cell].Value.ToString();
                            }
                            catch
                            {
                                cellValue = null;
                            }
                            try
                            {
                                UnplanedExcelDataRepository.Add(new UnplanedExcelData()
                                {
                                    ReadFileID    = fileID,
                                    VariableName  = cellCode.VariableName,
                                    ValueNvarchar = cellValue
                                });
                            }
                            catch (Exception ex)
                            {
                                throw new Exception("Insert UnplanedExcelData Error:" + ex.Message + "\n" + ex.InnerException);
                            }
                        }
                    }
                }
                ReadFilesRepository.UpdateStatus(fileID, (int)ReadFileStatus.Success);
            }
        }
Example #3
0
        public List <object> ReadExcelFileData(List <FileListModel> filesList, string rootPath, Type objectType)
        {
            var           MappingData = FileMappingRepository.GetFileMappingsData();
            List <object> returnlist  = new List <object>();

            foreach (var path in filesList)
            {
                object   mappingObject = Activator.CreateInstance(objectType);
                FileInfo file          = new FileInfo(path.FileName);
                using (ExcelPackage package = new ExcelPackage(file))
                {
                    foreach (var sheetName in MappingData.Where(m => m.FileTypeID == path.FileTypeID).Select(m => m.SheetName).Distinct())
                    {
                        string         currentSheet = sheetName;
                        ExcelWorksheet worksheet    = package.Workbook.Worksheets[currentSheet];
                        foreach (var cellCode in MappingData.Where(m => m.FileTypeID == path.FileTypeID && m.SheetName == currentSheet))
                        {
                            string cellValue = null;
                            try
                            {
                                cellValue = worksheet.Cells[cellCode.Cell].Value.ToString();
                            }
                            catch
                            {
                                cellValue = null;
                            }

                            PropertyInfo property = mappingObject.GetType().GetProperty(cellCode.VariableName);
                            property.SetValue(mappingObject, Convert.ChangeType(cellValue, property.PropertyType), null);
                        }
                    }
                }
                returnlist.Add(mappingObject);
            }
            return(returnlist);
        }