Пример #1
0
        /// <summary>
        /// 初始化表格,并对数据进行校验
        /// </summary>
        /// <param name="aggregateExcelMessage"></param>
        public virtual void InitAndCheck(TaskManagerInfoArg taskManagerInfoArg)
        {
            try
            {
                AggregateExcelMessage aggregateExcelMessage = taskManagerInfoArg.AggregateExcelMessage;

                BeforeInit(taskManagerInfoArg);
                if (hasErrorOrException(aggregateExcelMessage))
                {
                    return;
                }

                initCheck(taskManagerInfoArg);
                if (hasErrorOrException(aggregateExcelMessage))
                {
                    return;
                }

                initMgExcel(taskManagerInfoArg);
                if (hasErrorOrException(aggregateExcelMessage))
                {
                    return;
                }

                AfterInit(taskManagerInfoArg);
                if (hasErrorOrException(aggregateExcelMessage))
                {
                    return;
                }

                CheckMgRow(taskManagerInfoArg);
                if (hasErrorOrException(aggregateExcelMessage))
                {
                    return;
                }

                Dtos = ConvertToDto(taskManagerInfoArg);
                if (hasErrorOrException(aggregateExcelMessage))
                {
                    return;
                }

                CheckDto(taskManagerInfoArg);
            }
            catch (AggregateErrorException aggregateErrorException)
            {
                //Excel表格校验失败
                taskManagerInfoArg.AggregateExcelMessage.AddRange(aggregateErrorException.ErrorMessages, ExcelMessageType.Exception, FileExcelTaskTypeInfo);
            }
            catch (MgException mgException)
            {
                log.Error(mgException.Message);
                taskManagerInfoArg.AggregateExcelMessage.Add(new ExcelMessage(mgException.Message, "", ExcelMessageType.Exception, FileExcelTaskTypeInfo));
            }
            catch (Exception exception)
            {
                log.Error(exception.Message + "\n" + exception.StackTrace);
                taskManagerInfoArg.AggregateExcelMessage.Add(exception.Message, exception.StackTrace, ExcelMessageType.Exception, FileExcelTaskTypeInfo);
            }
        }
Пример #2
0
        private void import(FileExcelTaskTypeInfo fileExcelTaskType, AggregateExcelMessage aggregateExcelMessage)
        {
            //var excelTaskManager = lifetimeScope.ResolveNamed<IExcelTaskManager>(fileExcelTaskType.TaskManagerName);
            var excelTaskManager = fileExcelTaskType.TaskManager;
            TaskManagerInfoArg taskManagerInfoArg = new TaskManagerInfoArg(excelTaskManager.MgExcel, fileExcelTaskType, aggregateExcelMessage);

            excelTaskManager.Do(taskManagerInfoArg);
        }
Пример #3
0
        private void writeExceptionLog(AggregateExcelMessage result)
        {
            var exceptionMessage = result.ExcelMessages.Where(p => p.MessageType == ExcelMessageType.Exception).ToList();

            foreach (var message in exceptionMessage)
            {
                log.Error(message.Message + "\r\n" + message.Detail);
            }
        }
Пример #4
0
        public virtual AggregateExcelMessage Import(List <FileExcelTaskTypeInfo> fileExcelTaskTypes)
        {
            AggregateExcelMessage aggregateExcelMessage = new AggregateExcelMessage();

            foreach (var fileExcelTaskType in fileExcelTaskTypes)
            {
                import(fileExcelTaskType, aggregateExcelMessage);
            }
            return(aggregateExcelMessage);
        }
Пример #5
0
        public AggregateExcelMessage InitAndCheck(List <FileExcelTaskTypeInfo> fileExcelTaskTypes)
        {
            AggregateExcelMessage result = new AggregateExcelMessage();

            foreach (var fileExcelTaskType in fileExcelTaskTypes)
            {
                AggregateExcelMessage aggregateExcelMessage = new AggregateExcelMessage();
                TaskManagerInfoArg    taskManagerInfoArg    = new TaskManagerInfoArg(null, fileExcelTaskType, aggregateExcelMessage);
                var socpe            = lifetimeScope.BeginLifetimeScope();
                var excelTaskManager = socpe.ResolveNamed <IExcelTaskManager>(taskManagerInfoArg.FileExcelTaskTypeInfo.TaskManagerName);

                fileExcelTaskType.SetTaskManagerInstance(excelTaskManager);
                excelTaskManager.InitAndCheck(taskManagerInfoArg);
                result.Add(aggregateExcelMessage);
            }
            //把错误日志写入到日志
            writeExceptionLog(result);
            return(result);
        }
Пример #6
0
 protected TaskManagerInfoArg GetTaskManagerInfoArg(AggregateExcelMessage aggregateExcelMessage)
 {
     return(new TaskManagerInfoArg(MgExcel, FileExcelTaskTypeInfo, aggregateExcelMessage));
 }
Пример #7
0
 private bool hasErrorOrException(AggregateExcelMessage aggregateExcelMessage)
 {
     return(aggregateExcelMessage.HasError() || aggregateExcelMessage.HasException());
 }
Пример #8
0
 public abstract void DoTaskManagers(List <FileExcelTaskTypeInfo> fileExcelTaskTypes, AggregateExcelMessage aggregateExcelMessage);