Exemple #1
0
        //
        // TODO AJAX => упростит всЁ
        //
        public bool ListAdd(ScheduleTableCreate table, StudGroup studgroup)
        {
            // Валидация// Перенос
            //var group = _ctx.StudGroups.Find(table.GroupId);
            //if (group == null || (!Roles.IsUserInRole(group.FacultId.ToString(CultureInfo.InvariantCulture)) && !Roles.IsUserInRole("Admin")))
            //    return false;
            if (studgroup == null)
            {
                return(false);
            }

            // Старая таблица - для сравнения по изменению
            var oldids   = table.ScheduleTableRows.Select(x => x.ScheduleTableId);
            var oldTable = (from x in _ctx.ScheduleTables
                            where studgroup.GroupId == x.GroupId &&
                            table.IsWeekOdd == x.IsWeekOdd &&
                            oldids.All(i => i != x.ScheduleTableId)
                            select x).ToList();

            foreach (var tRow in table.ScheduleTableRows)
            {
                //// Убираем
                //var updatedItem = oldTable.SingleOrDefault(x => x.ScheduleTableId == tRow.ScheduleTableId);
                //oldTable.Remove(updatedItem);

                // Если ID == 0, то у нас новый экземпляр - Добавляем
                if (tRow.ScheduleTableId == 0)
                {
                    _ctx.ScheduleTables.Add(tRow);
                }
                else // Иначе изменяем по ID
                {
                    var old = _ctx.ScheduleTables.Find(tRow.ScheduleTableId);
                    old.LectorName  = tRow.LectorName;
                    old.SubjectName = tRow.SubjectName;
                    old.Auditory    = tRow.Auditory;
                    old.LessonType  = tRow.LessonType;
                }
            }

            // Очистить удалённые
            foreach (var t in oldTable)
            {
                _ctx.ScheduleTables.Remove(t);
            }

            // Обновление данных для экспорта
            var facult = _ctx.Facults.Find(studgroup.FacultId);

            facult.IsReady = false;

            // Все этапы пройдены успешно
            return(true);
        }
Exemple #2
0
        public ScheduleTableCreate FormToTable(FormCollection scheduleRows, out bool isValid)
        {
            var result = new ScheduleTableCreate
            {
                IsWeekOdd         = bool.Parse(scheduleRows[2]),
                GroupId           = int.Parse(scheduleRows[1]),
                ScheduleTableRows = new List <ScheduleTable>()
            };

            isValid = true;

            for (var i = 3; i < scheduleRows.Count; i++)
            {
                //if (scheduleRows.GetKey(i).EndsWith("ScheduleTableId")) i++;
                var id = 0; // * 0 == id -> не существует *
                if (scheduleRows.GetKey(i).EndsWith("ScheduleTableId"))
                {
                    int.TryParse(scheduleRows[i++], out id);
                }

                var item = new ScheduleTable
                {
                    ScheduleTableId = id,

                    Date = DateTime.Now,

                    Auditory    = scheduleRows[i++].Trim(),
                    LectorName  = scheduleRows[i++].Trim(),
                    SubjectName = scheduleRows[i++].Trim(),
                    LessonType  = int.Parse(scheduleRows[i++]),
                    LessonId    = int.Parse(scheduleRows[i++]),
                    GroupId     = int.Parse(scheduleRows[i++]),
                    WeekdayId   = int.Parse(scheduleRows[i]),
                    IsWeekOdd   = result.IsWeekOdd
                };

                if (item.Auditory.Trim() == string.Empty || item.SubjectName.Trim() == string.Empty)
                {
                    isValid = false;
                }

                result.ScheduleTableRows.Add(item);
            }

            return(result);
        }
Exemple #3
0
        public ScheduleTableCreate ListForCreate(StudGroup group, bool week)
        {
            //var group = _ctx.StudGroups.Find(groupId);
            //if (group == null || (!Roles.IsUserInRole(group.FacultId.ToString(CultureInfo.InvariantCulture)) && !Roles.IsUserInRole("Admin")))
            //    return null;
            if (group == null)
            {
                return(null);
            }

            var result = new ScheduleTableCreate
            {
                GroupId           = group.GroupId,
                GroupName         = group.Name,
                IsWeekOdd         = week,
                Lessons           = _ctx.Lessons.OrderBy(x => x.Time.Hour).ToList(),
                Weekdays          = _ctx.Weekdays.OrderBy(x => x.WeekdayId).ToList(),
                ScheduleTableRows = List(group.GroupId, week)
            };

            return(result);
        }