public ActionResult AddEditGroup(int? groupId) { var model = new GroupViewModel { Id = 0 }; if (groupId.HasValue && groupId.Value > 0) { var group = _groupStore.GetGroupsWithStories(s => s.Id == groupId.Value).FirstOrDefault(); if (group != null) { model.Id = group.Id; model.Title = group.Title; model.Description = group.Description; model.Content = group.Content; model.Stories = new List<StoryViewModel>((group.Stories ?? new List<Story>()).Select(s => new StoryViewModel { Id = s.Id, Title = s.Title, Description = s.Description, Content = s.Content ?? string.Empty, Groups = null })); } } return View("_AddEditGroup", model); }
public ActionResult SaveGroup(GroupViewModel model) { if (!ModelState.IsValid) { return RedirectToAction("AddEditGroup", "Home", new { groupId = model.Id }); } var userId = User.Identity.GetUserId(); if (model.Id > 0) { var groupExistent = _groupStore.GetGroup(model.Id, true); if (groupExistent != null) { groupExistent.Id = model.Id; groupExistent.Title = model.Title; groupExistent.Description = model.Description; groupExistent.Content = model.Content; if (groupExistent.Stories == null) groupExistent.Stories = new List<Story>(); _groupStore.UpdateGroup(groupExistent); } } else { var group = new Group { Id = model.Id, Title = model.Title, Description = model.Description, Content = model.Content, Stories = new List<Story>() }; _groupStore.AddGroup(group); } return RedirectToAction("GroupList", "Home"); }