Example #1
0
        private List <TemplateTime> ParseTemplateTimeTable(List <List <object> > table)
        {
            List <TemplateTime> templateTimeList = new List <TemplateTime>();

            for (int i = 0; i < table.Count; i++)
            {
                try
                {
                    templateTimeList.Add(ParseTemplateTime(table[i]));
                }
                catch (Exception e)
                {
                    CommUtils.Assert(false, "模板时间文件解析错误(Row:" + (i + 1).ToString() + "):" + e.Message);
                }
            }
            for (int i = 0; i < templateTimeList.Count; i++)
            {
                try
                {
                    var rowInfo = "(Row:" + (i + 1).ToString() + ")";
                    CommUtils.Assert(DateUtils.CheckIsLetterFormat(templateTimeList[i].TemplateTimeName.ToString()),
                                     "模板时间文件解析错误{0}:模板时间名称必须由字母组成,不能包含数字和特殊符号", rowInfo);
                    CommUtils.Assert(DateUtils.CheckIsNumberFormat(templateTimeList[i].TimeSpan.ToString()),
                                     "模板时间文件解析错误{0}:时间间隔必须由数字组成,不能包含字母和特殊符号", rowInfo);
                    CommUtils.Assert(templateTimeList[i].BeginTime <= templateTimeList[i].EndTime,
                                     "模板时间文件解析错误{0}:结束时间不能小于开始时间", rowInfo);
                }
                catch (Exception e)
                {
                    CommUtils.Assert(false, e.Message);
                }
            }
            return(templateTimeList);
        }
Example #2
0
        private List <TemplateTask> ParseTemplateTaskTable(List <List <object> > table)
        {
            var excelIds       = table.ConvertAll(x => x[1].ToString());
            var excelTaskNames = table.ConvertAll(x => x[2].ToString());
            var excelPrevids   = table.ConvertAll(x => x[5].ToString());

            excelPrevids = excelPrevids.Distinct().ToList();

            for (int i = 0; i < excelTaskNames.Count; i++)
            {
                CommUtils.Assert(excelTaskNames[i].Length <= 30, "模板任务文件解析错误(Row:{0}):模板工作名称[{1}]的最大长度为30字符数", (i + 1), excelTaskNames[i]);
            }
            //检查模板工作ID只能由数字组成
            for (int i = 0; i < excelIds.Count; i++)
            {
                CommUtils.Assert(DateUtils.CheckIsNumberFormat(excelIds[i]), "模板任务文件解析错误(Row:{0}):模板工作ID必须由数字组成,不能包含字母和特殊符号", (i + 1));
            }

            //检查模板工作ID中是否存在前置模板工作ID
            for (int i = 0; i < excelPrevids.Count; i++)
            {
                if (!string.IsNullOrEmpty(excelPrevids[i].ToString()))
                {
                    var Previde          = excelPrevids[i].ToString().Split(new char[] { ',', '|' }, StringSplitOptions.RemoveEmptyEntries);
                    var differentPrevide = Previde.Except(excelIds).ToList();
                    CommUtils.Assert(differentPrevide.Count == 0, "模板任务文件解析错误(Row:{0}):前置模板工作ID({1})在模板工作ID中不存在。"
                                     + Environment.NewLine +
                                     "注:因为逗号分隔会被Excel识别为金额格式,从而造成前置模板工作ID解析错误,当前系统也支持竖线“|”分隔,并建议使用竖线分割。",
                                     (i + 1), CommUtils.Join(differentPrevide));
                }
            }

            List <TemplateTask> templateTaskList = new List <TemplateTask>();

            for (int i = 0; i < table.Count; i++)
            {
                try
                {
                    templateTaskList.Add(ParseTemplateTask(table[i]));
                }
                catch (Exception e)
                {
                    throw new ApplicationException("模板任务文件解析错误(Row:" + (i + 1).ToString() + "):" + e.Message);
                }
            }

            for (int i = 0; i < templateTaskList.Count; i++)
            {
                try
                {
                    CommUtils.Assert(!string.IsNullOrEmpty(templateTaskList[i].TemplateTaskName), "模板任务文件解析错误(Row:" + (i + 1) + "):" + "模板工作名称不能为空");
                }
                catch (Exception e)
                {
                    throw new ApplicationException(e.Message);
                }
            }

            return(templateTaskList);
        }