Exemple #1
0
        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") }));
        }
Exemple #2
0
        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"));
        }