Exemplo n.º 1
0
        public IResult ValidataExcelPath(string path)
        {
            IResult result = new Result()
            {
                Success = false
            };

            if (string.IsNullOrEmpty(path))
            {
                result.Message = MessageHolder.
                                 GetErrorMessage(MessageType.FileIsempty);

                return(result);
            }

            if (Path.GetExtension(path) != ".xlsx")
            {
                result.Message = MessageHolder.
                                 GetErrorMessage(MessageType.NotFormat);

                return(result);
            }

            result.Success = true;

            return(result);
        }
Exemplo n.º 2
0
        public IDataResult <string> GetValue(IExcelWorksheetEntity excelWorksheet)
        {
            IDataResult <string> dataResult =
                new DataResult <string>()
            {
                Success = false
            };

            int rowNo  = excelWorksheet.RowNo;
            int cellNo = excelWorksheet.CellNo;

            if (excelWorksheet.ExcelWorksheet.Cells[rowNo, cellNo].Value != null)
            {
                string result = excelWorksheet.ExcelWorksheet
                                .Cells[rowNo, cellNo].Value.ToString();
                dataResult.Success = true;
                dataResult.Data    = result;

                return(dataResult);
            }

            dataResult.Message = "(" + AlphabetHolder.GetSmbol(cellNo) + ") " +
                                 MessageHolder.GetErrorMessage
                                     (MessageType.IsNullOrEmpty);
            //  MessageHolder.GetErrorMessage(MessageType.FrontBracket) +
            //"("+rowNo+")" +;
            //MessageHolder.GetErrorMessage(MessageType.BackBracket);

            return(dataResult);
        }
Exemplo n.º 3
0
        public IDataResult <ExcelConfiguration> GeneratExcelConfig(ExcelWorksheet excelWorksheet)
        {
            IDataResult <ExcelConfiguration> dataResult =
                new DataResult <ExcelConfiguration>();
            ExcelConfiguration excelConfiguration = new ExcelConfiguration();

            excelConfiguration.DataColumn = new DataColumn();
            IExcelWorksheetEntity tmpEntity = new ExcelWorksheetEntity();

            tmpEntity.ExcelWorksheet = excelWorksheet;
            tmpEntity.RowNo          = _excelConfiguration.DataRowIndex.Title;

            List <IDataResult <Data> > dataResults = new List <IDataResult <Data> >();

            int endColumn = excelWorksheet.Dimension.End.Column;

            StringBuilder messegeBuilder = new StringBuilder();

            foreach (var data in _excelConfiguration.DataColumn.Datas)
            {
                IDataResult <Data> tmResultHelper = HelperGenerat(data, tmpEntity, endColumn);

                if (!tmResultHelper.Success)
                {
                    messegeBuilder.Append(data.Name + MessageHolder.GetErrorMessage(MessageType.Space));
                }
                dataResults.Add(tmResultHelper);
            }
            excelConfiguration.DataColumn.Datas = dataResults.Select(p => p.Data).ToList();

            if (dataResults.Any(p => p.Success == false))
            {
                dataResult.Success = false;
                dataResult.Message = MessageHolder.
                                     GetErrorMessage(MessageType.NotIsTitle) +
                                     MessageHolder.GetErrorMessage(MessageType.Space)
                                     + messegeBuilder +
                                     MessageHolder.GetErrorMessage(MessageType.BackBracket);

                return(dataResult);
            }

            excelConfiguration.DataRowIndex      = _excelConfiguration.DataRowIndex;
            excelConfiguration.NameColumnSection = _excelConfiguration.NameColumnSection;
            dataResult.Data    = excelConfiguration;
            dataResult.Success = true;

            return(dataResult);
        }
Exemplo n.º 4
0
        GetSectionTranslation(ExcelWorksheet sheet)
        {
            IDataResult <Dictionary <ITranslationEntity, List <ITranslationEntity> > > dataResult =
                new DataResult <Dictionary <ITranslationEntity, List <ITranslationEntity> > >();
            List <IRowItem> rowItems = new List <IRowItem>();

            for (int j = sheet.Dimension.Start.Row + 1; j <= sheet.Dimension.End.Row; j++)
            {
                IDataResult <IRowItem> rowParserResult =
                    _parserSection.RowParser(sheet, j, _excelConfiguration);

                if (!string.IsNullOrEmpty(rowParserResult.Message))
                {
                    IRowItemError error = new RowItemError();
                    error.ColumnItems   = rowParserResult.Data.ColumnItems;
                    dataResult.Message += MessageHolder.GetErrorMessage
                                              (MessageType.NotPageSection);
                    dataResult.Message += rowParserResult.Message +
                                          MessageHolder.GetErrorMessage(MessageType.NewLine);

                    error.RowNmomer = j;
                    dataResult      = _dataNormalization.NormaliseTransliteSection(rowItems);
                    //dataResult.Success = false;

                    return(dataResult);
                }

                rowItems.Add(rowParserResult.Data);
            }

            IDataResult <Dictionary <ITranslationEntity, List <ITranslationEntity> > > sectiomNormResult =
                _dataNormalization.NormaliseTransliteSection(rowItems);

            if (!sectiomNormResult.Success)
            {
                dataResult.Message += MessageHolder.GetErrorMessage
                                          (MessageType.NotPageSection);
                dataResult.Message += sectiomNormResult.Message;
                dataResult.Success  = false;

                return(dataResult);
            }

            dataResult.Data    = sectiomNormResult.Data;
            dataResult.Success = true;

            return(dataResult);
        }
Exemplo n.º 5
0
        public IResult ValidateExcelPages(ExcelWorksheets excelWorksheets)
        {
            IResult result = new Result()
            {
                Success = false
            };

            if (!excelWorksheets.Any())
            {
                result.Message = MessageHolder.GetErrorMessage
                                     (MessageType.DocumentIsEmpty);

                return(result);
            }
            result.Success = true;

            return(result);
        }
Exemplo n.º 6
0
        public IResult VolidateExcel
            (ExcelWorksheet excelWorksheet)
        {
            IResult result = new Result()
            {
                Success = false
            };

            if (excelWorksheet.Dimension.End.Row < 2)
            {
                result.Message = MessageHolder.GetErrorMessage
                                     (MessageType.DocumentIsEmpty);

                return(result);
            }
            result.Success = true;

            return(result);
        }
Exemplo n.º 7
0
        public IDataResult <string> NormalizeString(string data)
        {
            IDataResult <string> dataResult =
                new DataResult <string>()
            {
                Success = false
            };

            if (string.IsNullOrEmpty(data))
            {
                dataResult.Message = MessageHolder.
                                     GetErrorMessage(MessageType.IsNullOrEmpty);

                return(dataResult);
            }

            data = Remove(data, "/");
            data = Replace(data, " ");
            data = data.ToLower();
            dataResult.Success = true;
            dataResult.Data    = data;

            return(dataResult);
        }
Exemplo n.º 8
0
        public IDataResult <IColumnItem> ColumnParser
            (IExcelWorksheetEntity worksheetEntity, ExcelConfiguration excelConfiguration)
        {
            IDataResult <IColumnItem> dataResult =
                new DataResult <IColumnItem>()
            {
                Success = false
            };

            IColumnItem          columnItem  = new ColumnItem();
            int                  column      = worksheetEntity.CellNo;
            IDataResult <string> resultValue = _readExcelData.GetValue(worksheetEntity);
            int                  nomertitle  = excelConfiguration.DataRowIndex.Title;

            if (!resultValue.Success)
            {
                dataResult.Message = resultValue.Message;
            }

            IExcelWorksheetEntity tmpExcel = new ExcelWorksheetEntity();

            tmpExcel.RowNo          = nomertitle;
            tmpExcel.ExcelWorksheet = worksheetEntity.ExcelWorksheet;
            tmpExcel.CellNo         = column;

            IDataResult <string> resultNameTitle = _readExcelData.GetValue(tmpExcel);

            if (!resultNameTitle.Success)
            {
                dataResult.Message = MessageHolder.GetErrorMessage(MessageType.NotNameTitle);
            }

            string nameTitle = resultNameTitle.Data;

            nameTitle = _dataNormalization.NormalizeString(nameTitle).Data;

            string titleConfig = excelConfiguration.DataColumn.Datas?
                                 .FirstOrDefault(p => p.ColumnType == (int)ColumnType.Section)?.Name;

            titleConfig = _dataNormalization.NormalizeString(titleConfig).Data;
            ITranslationEntity translationEntity = new TranslationEntity();

            translationEntity.Value = resultValue.Data;
            string mainLanguage = excelConfiguration.NameColumnSection.MainLanguage;

            mainLanguage = _dataNormalization.NormalizeString(mainLanguage).Data;
            string excelLanguage = null;

            if (titleConfig != null)
            {
                excelLanguage = nameTitle.Replace(titleConfig, string.Empty);
            }


            if (nameTitle.Equals(titleConfig) || (excelLanguage != null && excelLanguage.Equals(mainLanguage)))
            {
                columnItem.ColumnType      = ColumnType.Section;
                translationEntity.Language =
                    LanguageHolder.GetISOCodes(mainLanguage, _dataNormalization);

                if (!resultValue.Success)
                {
                    dataResult.Message = resultValue.Message;

                    return(dataResult);
                }

                columnItem.BaseEntity = translationEntity;
            }
            else
            {
                columnItem.ColumnType = ColumnType.SectionTransfer;

                translationEntity.Language =
                    LanguageHolder.GetISOCodes(excelLanguage, _dataNormalization);

                if (!resultValue.Success)
                {
                    dataResult.Message = resultValue.Message;

                    return(dataResult);
                }

                columnItem.BaseEntity = translationEntity;
            }

            dataResult.Data    = columnItem;
            dataResult.Success = true;

            return(dataResult);
        }
Exemplo n.º 9
0
        public IDataResult <IDataSheetResulHolder> Processor(string path)
        {
            IDataResult <IDataSheetResulHolder> dataResult =
                new DataResult <IDataSheetResulHolder>()
            {
                Success = false
            };
            IDataSheetResulHolder dataSheetResulHolder = new DataSheetResulHolder();
            List <IDataSheet>     dataSheets           = new List <IDataSheet>();

            dataSheetResulHolder.ExcelDocumentType = ExcelDocumentType.WithoutIndexPage;
            IResult result = _validata.ValidataExcelPath(path);

            if (!result.Success)
            {
                dataResult.Message = result.Message;
                dataResult.Success = result.Success;

                return(dataResult);
            }

            dataSheetResulHolder.NameExcel = Path.GetFileName(path);

            using (var file = File.Open(path, FileMode.Open))
            {
                using (var xls = new ExcelPackage(file))
                {
                    ExcelWorksheets tempWorksheets = xls.Workbook.Worksheets;

                    IResult excelDocResult = _validata.ValidateExcelPages(tempWorksheets);

                    if (!excelDocResult.Success)
                    {
                        dataResult.Message += excelDocResult.Message;
                        dataResult.Success  = false;

                        return(dataResult);
                    }

                    foreach (var worksheet in tempWorksheets)
                    {
                        using (var sheet = worksheet)
                        {
                            _parser.RowCount        = sheet.Dimension.End.Row;
                            _parserSection.RowCount = sheet.Dimension.End.Row;
                            string sheetName = sheet.Name;

                            IResult isDataResult = _validata.VolidateExcel(sheet);
                            bool    success      = true;
                            dataResult.Message += MessageHolder.
                                                  GetErrorMessage(MessageType.NamePage) + sheetName +
                                                  MessageHolder.GetErrorMessage(MessageType.NewLine);

                            if (!isDataResult.Success)
                            {
                                dataResult.Message += isDataResult.Message;
                                success             = false;
                            }

                            string tmpSheetName = _dataNormalization.NormalizeString(sheetName).Data;
                            string configName   = _excelConfiguration.NamePage?.Section;
                            configName = _dataNormalization.NormalizeString(configName).Data;
                            IDataResult <IDataSheet> resultDataSheet = new DataResult <IDataSheet>();

                            if (tmpSheetName.Equals(configName))
                            {
                                dataSheetResulHolder.ExcelDocumentType = ExcelDocumentType.IndexPage;
                                IDataResult <Dictionary <ITranslationEntity, List <ITranslationEntity> > >
                                tempSectionTranslation = GetSectionTranslation(sheet);

                                if (tempSectionTranslation.Success)
                                {
                                    dataSheetResulHolder.IndexTranslates = tempSectionTranslation.Data;
                                    dataResult.Message += tempSectionTranslation.Message;
                                }
                                else
                                {
                                    dataResult.Message += tempSectionTranslation.Message;
                                }
                            }
                            else
                            {
                                IResult resultConfig = _excelSheetCongSection.GetExcelConfig(sheet);

                                if (!resultConfig.Success)
                                {
                                    IDataResult <ExcelConfiguration> excelDataResult =
                                        _excelSheetCongSection.GeneratExcelConfig(sheet);

                                    if (!excelDataResult.Success)
                                    {
                                        dataResult.Message += excelDataResult.Message +
                                                              MessageHolder.GetErrorMessage(MessageType.NameSheet) + sheetName;
                                        success = false;
                                    }

                                    _excelConfiguration = excelDataResult.Data;
                                    dataSheetResulHolder.ExcelConfiguration = excelDataResult.Data;
                                }

                                resultDataSheet = HelpProcessor(sheet, success);
                                ProcessErrors(resultDataSheet.Data.RowItemErrors,
                                              sheetName,
                                              Path.GetFileNameWithoutExtension(path)).Wait();
                                dataSheets.Add(resultDataSheet.Data);
                            }

                            dataResult.Message += resultDataSheet.Message;
                            dataResult.Message += MessageHolder.GetErrorMessage(MessageType.NewLine);;
                        }
                    }
                }
            }

            dataResult.Success = true;

            dataSheetResulHolder.DataSheets = dataSheets;
            dataResult.Data = dataSheetResulHolder;

            return(dataResult);
        }