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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }