public void SetErrorStyle(ISheet sheet, IResultSheet sheetModel)
        {
            var commentDrawing = sheet.CreateDrawingPatriarch();

            if (sheetModel.ErrorRows?.Any() ?? false)
            {
                this.SetDataErrorStyle(sheet, commentDrawing, sheetModel.ErrorRows);
            }

            if (!sheetModel.IsUniqueValidated)
            {
                this.SetRowRepeatedErrorStyle(sheet, commentDrawing, sheetModel.RepeatedRowIndexes, sheetModel.UniqueValidationPrompt);
            }
        }
Пример #2
0
        private IResultSheet ParseSheetToModel(ISheet sheet, IResultSheet sheetModel)
        {
            var sheetModelType      = sheetModel.GetType();
            var validateSheetMethod = this.GetType().GetMethod(nameof(this.ValidateSheetFormat), BindingFlags.NonPublic | BindingFlags.Instance).MakeGenericMethod(sheetModelType.GetGenericArguments()[0]);
            var validateSheetResult = validateSheetMethod.Invoke(this, new object[] { sheet, sheetModel.HeaderRowIndex }).ToString();

            if (!string.IsNullOrWhiteSpace(validateSheetResult))
            {
                sheetModel.SheetFormatErrorMessage = validateSheetResult;
                return(sheetModel);
            }

            var sheetToModelMethod = this.GetType().GetMethod(nameof(this.FillSheetRow), BindingFlags.NonPublic | BindingFlags.Instance).MakeGenericMethod(sheetModelType.GetGenericArguments()[0]);
            var data = sheetToModelMethod.Invoke(this, new object[] { sheet, sheetModel.HeaderRowIndex });

            sheetModelType.GetMethod("SetData", BindingFlags.Public | BindingFlags.Instance).Invoke(sheetModel, new object[] { data });

            sheetModel.Validate();
            return(sheetModel);
        }