예제 #1
0
        //public string ErrorMessage(string message)
        //{
        //    StringBuilder sb = new StringBuilder();
        //    int i = 1;

        //    while(message!=null)
        //    {
        //        if (message.Contains("(" + i + ")"))
        //        {

        //        }
        //        else
        //        {
        //            i++;
        //        }
        //    }
        //}

        public IDataResult <string> GetColorValue
            (IExcelWorksheetEntity excelWorksheetEntity)
        {
            IDataResult <string> dataResult =
                new DataResult <string>()
            {
                Success = false
            };

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

            string colorName = excelWorksheetEntity.ExcelWorksheet.
                               Cells[rowNo, cellNo].Style.Fill.BackgroundColor.Rgb;

            if (string.IsNullOrEmpty(colorName))
            {
                dataResult.Success = false;

                return(dataResult);
            }

            dataResult.Success = true;
            dataResult.Data    = colorName;

            return(dataResult);
        }
예제 #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);
        }
예제 #3
0
        private IDataResult <Data> HelperGenerat
            (Data data, IExcelWorksheetEntity tmpEntity, int endColumn)
        {
            IDataResult <Data> dataResult =
                new DataResult <Data>()
            {
                Success = false
            };
            string nameTitle = data.Name;

            nameTitle =
                _dataNormalization.NormalizeString(nameTitle).Data;

            for (int i = 1; i <= endColumn; i++)
            {
                tmpEntity.CellNo = i;
                IDataResult <string> tmpDataResultValue =
                    _readExcelData.GetValue(tmpEntity);

                if (!tmpDataResultValue.Success)
                {
                    continue;
                }

                string nameExcelTitle = tmpDataResultValue.Data;
                nameExcelTitle = _dataNormalization.NormalizeString(nameExcelTitle).Data;
                nameTitle      =
                    _dataNormalization.NormalizeString(nameTitle).Data;


                if (nameExcelTitle.Equals(nameTitle))
                {
                    data.Nomer         = i;
                    dataResult.Success = true;
                    dataResult.Data    = data;

                    return(dataResult);
                }
            }

            return(dataResult);
        }
예제 #4
0
        private IBaseEntity GetBaseEntity(IExcelWorksheetEntity excelWorksheet,
                                          string data, int column, ExcelConfiguration excelConfiguration)
        {
            IBaseEntity baseEntity = new BaseEntity()
            {
                Value = data
            };

            if (column == excelConfiguration.DataColumn
                .Datas.FirstOrDefault(p => p.ColumnType == (int)ColumnType.Section)?.Nomer ||
                column == excelConfiguration.DataColumn.Datas
                .FirstOrDefault(p => p.ColumnType == (int)ColumnType.Language)?.Nomer)
            {
                string             name   = excelConfiguration.NameColumnSection.MainLanguage;
                ITranslationEntity entity = new TranslationEntity();
                entity.Language = LanguageHolder.GetISOCodes(name, _dataNormalization);
                entity.Value    = data;

                return(entity);
            }

            if (column == excelConfiguration.DataColumn.Datas
                .FirstOrDefault(p => p.ColumnType == (int)ColumnType.Picture)?.Nomer)
            {
                IDataResult <string> colorNameResult =
                    _readExcelData.GetColorValue(excelWorksheet);
                IExcelColor excelColor = new ExcelColor();
                if (colorNameResult.Success)
                {
                    Color color = ColorTranslator.FromHtml("#" + colorNameResult.Data);
                    excelColor.R = color.R;
                    excelColor.G = color.G;
                    excelColor.B = color.B;
                }

                return(excelColor);
            }

            return(baseEntity);
        }
예제 #5
0
        private IResult HelpGetConfig
            (Data data, IExcelWorksheetEntity tmpEntity)
        {
            IResult result = new Result()
            {
                Success = false
            };
            IDataResult <string> tmpDataResultValue =
                _readExcelData.GetValue(tmpEntity);
            string nameTitle = tmpDataResultValue.Data;

            nameTitle =
                _dataNormalization.NormalizeString(nameTitle).Data;
            string congiTitle =
                _dataNormalization.NormalizeString(data.Name).Data;

            if (congiTitle.Equals(nameTitle))
            {
                result.Success = true;
            }

            return(result);
        }
예제 #6
0
        public IDataResult <IColumnItem> ColumnParser
            (IExcelWorksheetEntity excelWorksheet, ExcelConfiguration excelConfiguration)
        {
            IDataResult <IColumnItem> dataResult =
                new DataResult <IColumnItem>()
            {
                Success = false
            };

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

            IExcelWorksheetEntity tmpExcel = new ExcelWorksheetEntity();

            tmpExcel.RowNo          = nomertitle;
            tmpExcel.ExcelWorksheet = excelWorksheet.ExcelWorksheet;
            tmpExcel.CellNo         = column;
            string nameTitle         = _readExcelData.GetValue(tmpExcel).Data;
            string configNameSection = excelConfiguration.DataColumn.Datas
                                       .FirstOrDefault(p => p.ColumnType == (int)ColumnType.Section)?.Name;

            configNameSection     = _dataNormalization.NormalizeString(configNameSection).Data;
            columnItem.BaseEntity = new BaseEntity();
            bool isResult = false;

            foreach (var data in excelConfiguration.DataColumn.Datas)
            {
                if (column == data.Nomer)
                {
                    if (!resultValue.Success)
                    {
                        if (data.MustExist)
                        {
                            dataResult.Message += resultValue.Message;
                        }
                    }

                    columnItem.ColumnType = (ColumnType)data.ColumnType;
                    columnItem.BaseEntity = GetBaseEntity
                                                (excelWorksheet, resultValue.Data, column, excelConfiguration);
                    isResult = true;
                }
            }
            if (!isResult)
            {
                nameTitle = _dataNormalization.NormalizeString(nameTitle).Data;


                if (nameTitle == null)
                {
                    //TODO
                    dataResult.Success = true;

                    return(dataResult);
                }

                if (nameTitle.Contains(configNameSection))
                {
                    columnItem.ColumnType = ColumnType.SectionTransfer;
                    nameTitle             = nameTitle.Replace(configNameSection, string.Empty);
                }
                else
                {
                    columnItem.ColumnType = ColumnType.WorldSection;
                }
                dataResult.Message += resultValue.Message;
                string language = LanguageHolder.GetISOCodes(nameTitle, _dataNormalization);

                ITranslationEntity entity = new TranslationEntity();
                entity.Language       = language;
                entity.Value          = resultValue.Data;
                columnItem.BaseEntity = entity;
            }

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


            return(dataResult);
        }
예제 #7
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);
        }