Пример #1
0
 public ScheduleItemListitemViewmodel(ScheduleItem that)
 {
     this.Id = that.Id;
     this.StartTime = that.StartTime;
     this.EndTime = that.EndTime;
     this.Description = that.Description;
     this.WeekDays = "";
     foreach (var day in that.WeekDays)
     {
         this.WeekDays += day.Description.Substring(0, 3) + ", ";
     }
 }
        public ActionResult Edit([Bind(Include = "Id,StartTime,EndTime,ScheduleId,Description")] ScheduleItemEditViewmodel model, int[] weekDays)
        {
            var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
            var currentUser = userManager.FindById(User.Identity.GetUserId());
            if (ModelState.IsValid && User.Identity.IsAuthenticated)
            {
                if (model.Id == 0)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                ScheduleItem dbScheduleItem = db.ScheduleItems.Find(model.Id);
                if (dbScheduleItem == null)
                {
                    return HttpNotFound();
                }
                if (dbScheduleItem.Schedule.Department.Bosses.Contains(currentUser))
                {
                    db.Entry(dbScheduleItem).State = EntityState.Detached;

                    ScheduleItem scheduleItem = new ScheduleItem(model);
                    db.Entry(scheduleItem).State = EntityState.Modified;
                    db.SaveChanges();

                    db.Entry(scheduleItem).State = EntityState.Detached;
                    scheduleItem = db.ScheduleItems.Find(scheduleItem.Id);
                    scheduleItem.WeekDays.Clear();

                    scheduleItem.WeekDays = db.ScheduleWeekDays.Where(q => weekDays.Contains(q.Id)).ToList();
                    db.Entry(scheduleItem).State = EntityState.Modified;
                    db.SaveChanges();
                    return RedirectToAction("Index", new { scheduleItem.ScheduleId });
                }
                else
                {
                    return new HttpStatusCodeResult(HttpStatusCode.Unauthorized);
                }
            }

            //ViewBag.ScheduleId = new SelectList(db.Schedules, "Id", "Id", model.ScheduleId);
            ViewBag.ScheduleId = db.Schedules.ToList().Select(q => new SelectListItem()
            {
                Value = q.Id.ToString(),
                //Text = q.StartTime.ToShortDateString() + " : " + (q.EndTime == null ? "Ongoing" : q.EndTime.GetValueOrDefault().ToShortDateString()),
                Text = q.Department.Name + ((q.Group == null) ? "" : ":" + q.Group.Name) + " - " + q.StartTime.ToShortDateString() + " : " + (q.EndTime == null ? "Ongoing" : q.EndTime.GetValueOrDefault().ToShortDateString()),
                Selected = (q.Id == model.ScheduleId)
            });
            model.WeekDays = new List<ScheduleItemWeekday>();
            foreach (var weekDay in db.ScheduleWeekDays)
            {
                model.WeekDays.Add(new ScheduleItemWeekday() { Id = weekDay.Id, Checked = weekDays.Contains(weekDay.Id), Name = weekDay.Description });
            }
            return View(model);
        }
Пример #3
0
 public ScheduleItemEditViewmodel(ScheduleItem that)
 {
     this.Id = that.Id;
     this.StartTime = that.StartTime;
     this.EndTime = that.EndTime;
     this.Description = that.Description;
     this.ScheduleId = that.ScheduleId;
     this.WeekDays = new List<ScheduleItemWeekday>();
 }