public bool SaveTemplate()
        {
            var template = GetSession();

            if (template.RosterTemplateId == Guid.Empty)
            {
                var model = new RosterTemplate
                {
                    RosterName = template.TemplateName,
                };
                db.RosterTemplate.Add(model);
                db.SaveChanges();
                template.RosterTemplateId = model.RosterTemplateId;
                foreach (var timeSlot in template.TimeSlots)
                {
                    timeSlot.RosterTemplateId = model.RosterTemplateId;
                    db.TimeSlotTemplate.Add(timeSlot);
                }
                db.SaveChanges();
            }
            else
            {
                var model = new RosterTemplate
                {
                    RosterTemplateId = template.RosterTemplateId,
                    RosterName       = template.TemplateName,
                };
                db.Entry(model).State = EntityState.Modified;
                db.SaveChanges();
                foreach (var oldTimeSlot in db.TimeSlotTemplate.Where(x => x.RosterTemplateId == template.RosterTemplateId))
                {
                    db.Entry(oldTimeSlot).State = EntityState.Deleted;
                }

                foreach (var newTimeSlot in template.TimeSlots)
                {
                    var timeSlotModel = new TimeSlotTemplate
                    {
                        RosterTemplateId = template.RosterTemplateId,
                        GameName         = newTimeSlot.GameName,
                        Length           = newTimeSlot.Length,
                        Offset           = newTimeSlot.Offset,
                        NumberOfPlayers  = newTimeSlot.NumberOfPlayers,
                        IsSteamGame      = newTimeSlot.IsSteamGame,
                    };
                    db.TimeSlotTemplate.Add(timeSlotModel);
                }
                db.SaveChanges();
            }
            template.Edited = false;

            SetSession(template);
            return(true);
        }
 public ActionResult Delete(Guid id)
 {
     if (id != null)
     {
         RosterTemplate template = new RosterTemplate
         {
             RosterTemplateId = id
         };
         db.Entry(template).State = EntityState.Deleted;
         db.SaveChanges();
     }
     return(RedirectToAction("Index", "RosterTemplateManagement"));
 }
        public ActionResult Edit(Guid?id)
        {
            RosterTemplate template = db.RosterTemplate.SingleOrDefault(m => m.RosterTemplateId == id);

            if (template != null)
            {
                RosterTemplateManagementViewModel model = new RosterTemplateManagementViewModel
                {
                    RosterTemplateId = template.RosterTemplateId,
                    TemplateName     = template.RosterName,
                    TimeSlots        = template.TimeSlots.ToList(),
                };
                SetSession(model);
                return(View("~/Modules/Content/RosterTemplateManagement/RosterTemplateManagementForm.cshtml", model));
            }
            return(View("~/Modules/Content/RosterTemplateManagement/RosterTemplateManagementIndex.cshtml"));
        }