private void SetCellData(DataTable setDataTable, string setValue, DayPeriodModel dayPeriod)
        {
            switch (dayPeriod.Day)
            {
            case DayOfWeek.Monday:
                setDataTable.Rows[dayPeriod.Period]["星期一"] = setValue;
                break;

            case DayOfWeek.Tuesday:
                setDataTable.Rows[dayPeriod.Period]["星期二"] = setValue;
                break;

            case DayOfWeek.Wednesday:
                setDataTable.Rows[dayPeriod.Period]["星期三"] = setValue;
                break;

            case DayOfWeek.Thursday:
                setDataTable.Rows[dayPeriod.Period]["星期四"] = setValue;
                break;

            case DayOfWeek.Friday:
                setDataTable.Rows[dayPeriod.Period]["星期五"] = setValue;
                break;

            case DayOfWeek.Saturday:
                setDataTable.Rows[dayPeriod.Period]["星期六"] = setValue;
                break;

            case DayOfWeek.Sunday:
                setDataTable.Rows[dayPeriod.Period]["星期日"] = setValue;
                break;
            }
        }
        public static string GetDateInfo(DayPeriodModel dayPeriod)
        {
            string dayPeriodString = string.Empty;

            if (dayPeriod != null)
            {
                switch (dayPeriod.Day)
                {
                case DayOfWeek.Sunday:
                    dayPeriodString = "星期日";
                    break;

                case DayOfWeek.Monday:
                    dayPeriodString = "星期一";
                    break;

                case DayOfWeek.Tuesday:
                    dayPeriodString = "星期二";
                    break;

                case DayOfWeek.Wednesday:
                    dayPeriodString = "星期三";
                    break;

                case DayOfWeek.Thursday:
                    dayPeriodString = "星期四";
                    break;

                case DayOfWeek.Friday:
                    dayPeriodString = "星期五";
                    break;

                case DayOfWeek.Saturday:
                    dayPeriodString = "星期六";
                    break;

                default:
                    break;
                }

                dayPeriodString = dayPeriodString + dayPeriod.PeriodName;
            }

            return(dayPeriodString);
        }
Exemple #3
0
        /// <summary>
        /// 验证当前调整课程-佟良远
        /// </summary>
        /// <param name="localID">本地方案ID</param>
        /// <param name="classID">班级ID</param>
        /// <param name="item">调整的项</param>
        /// <returns></returns>
        public static Tuple <List <DayPeriodModel>, List <PostionWithWarningInfo> > CheckCanAdjustPosition(string localID, string classID, List <ResultDetailModel> item, ResultModel resultModel)
        {
            var positions = GetMovablePositons(localID, classID, item, resultModel);
            //单向检查结果
            List <DayPeriodModel> oneWayPositions = positions.Item1;
            //双向校验
            List <DayPeriodModel> twoWayPositions = new List <DayPeriodModel>();

            oneWayPositions?.ForEach(x =>
            {
                List <ResultDetailModel> targetItem = resultModel.ResultClasses.Where(rc => rc.ClassID == classID)?
                                                      .SelectMany(rc => rc.ResultDetails)?.ToList()?
                                                      .Where(rd => rd.DayPeriod.Day == x.Day && rd.DayPeriod.PeriodName == x.PeriodName)?.ToList();

                if ((targetItem?.Count() ?? 0) == 0)
                {
                    twoWayPositions.Add(x);
                }
                else
                {
                    Tuple <bool, string> checkresult = CanReplacePosition(localID, classID, item, targetItem, resultModel);
                    if (checkresult.Item1)
                    {
                        twoWayPositions.Add(x);
                    }
                }
            });

            #region 在返回结果中增加当前课位
            DayPeriodModel currentPosition = item?.FirstOrDefault()?.DayPeriod;
            if (currentPosition != null)
            {
                twoWayPositions = TimeOperation.TimeSlotUnion(twoWayPositions, new List <DayPeriodModel>()
                {
                    currentPosition
                });
            }
            #endregion

            return(Tuple.Create(twoWayPositions, positions.Item2));
        }
Exemple #4
0
        public static Tuple <bool, string> CanReplacePosition(string localID, string classID, List <ResultDetailModel> sourceItem, List <ResultDetailModel> targetItem, ResultModel resultModel)
        {
            ICommonDataManager commonDataManager = CacheManager.Instance.UnityContainer.Resolve <ICommonDataManager>();
            var cp   = commonDataManager.GetCPCase(localID);
            var rule = commonDataManager.GetAminRule(localID);
            var algo = commonDataManager.GetAminAlgoRule(localID);

            var positionsSource = GetMovablePositons(localID, classID, sourceItem, resultModel);
            var positionsTarget = GetMovablePositons(localID, classID, targetItem, resultModel);

            DayPeriodModel dpSource = sourceItem.FirstOrDefault().DayPeriod;
            DayPeriodModel dpTarget = targetItem.FirstOrDefault().DayPeriod;

            if (dpTarget != null && positionsSource.Item1.Exists(dp => dp.Day == dpTarget.Day && dp.PeriodName == dpTarget.PeriodName) &&
                dpSource != null && positionsTarget.Item1.Exists(dp => dp.Day == dpSource.Day && dp.PeriodName == dpSource.PeriodName))
            {
                return(Tuple.Create(true, string.Empty));
            }
            else
            {
                var sourceToTargetWarning = positionsSource.Item2.Where(dp => dp.DayPeriod.Day == dpTarget.Day && dp.DayPeriod.PeriodName == dpTarget.PeriodName).ToList();
                var targetToSourceWarning = positionsTarget.Item2.Where(dp => dp.DayPeriod.Day == dpSource.Day && dp.DayPeriod.PeriodName == dpSource.PeriodName).ToList();

                StringBuilder sb = new StringBuilder(100);

                sourceToTargetWarning?.ForEach(w =>
                {
                    sb.AppendLine(w.WaringMessage);
                });

                targetToSourceWarning?.ForEach(w =>
                {
                    sb.AppendLine(w.WaringMessage);
                });

                return(Tuple.Create(false, sb.ToString()));
            }
        }