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); }
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>(); }