public async Task <ActionResult> CreateGroup(GroupVM group) { if (!ModelState.IsValid) { return(PartialView("_AjaxValidation", "Could not create the group.")); } var existingGroup = await storyUnitOfWork.Groups.FindByTitleAsync(group.Title); if (existingGroup != null) { ModelState.AddModelError("GroupTitle", "A group with that title already exists."); return(PartialView("_AjaxValidation", "Could not create the group.")); } var groupInfo = Mapper.Map <Group>(group); storyUnitOfWork.Groups.InsertOrUpdate(groupInfo); var existingHashtag = await storyUnitOfWork.Hashtags.FindByValueAsync(group.Title); if (existingHashtag != null) { storyUnitOfWork.Hashtags.Remove(existingHashtag); } await storyUnitOfWork.CompleteAsync(); return(Json(new { location = Url.Action("Dashboard") })); }
public async Task <ActionResult> AddInterest(int interestId) { var currentUserProfile = await userProfileUOW.UserProfiles.GetUserProfileAsync(userService.GetUserId()); var checkInterest = (await userProfileUOW.Interests.GetAsync(i => i.Id == interestId)).FirstOrDefault(); if (checkInterest == null) { ModelState.AddModelError("Interest", "The provided interest does not exist."); return(View()); } var userInterest = new UserInterest { InterestId = interestId, UserProfileId = currentUserProfile.Id, State = Core.Models.ModelState.Added }; currentUserProfile.Interests.Add(userInterest); userProfileUOW.UserProfiles.InsertOrUpdateGraph(currentUserProfile); var grp = (await storyUOW.Groups.GetAsync(g => g.InterestId == interestId)).FirstOrDefault(); var groupMember = new GroupMember { UserProfileId = currentUserProfile.Id, GroupId = grp.Id, State = Core.Models.ModelState.Added }; grp.Members.Add(groupMember); storyUOW.Groups.InsertOrUpdateGraph(grp); await userProfileUOW.CompleteAsync(); await storyUOW.CompleteAsync(); return(RedirectToAction("Index")); }