示例#1
0
        public IHttpActionResult Create(HouseholdBindingModel formData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId    = User.Identity.GetUserId();
            var houseHold = Mapper.Map <HouseHold>(formData);

            houseHold.Created = DateTime.Now;
            houseHold.OwnerId = User.Identity.GetUserId();

            DbContext.HouseHolds.Add(houseHold);
            DbContext.SaveChanges();

            var houseHoldUser = new HouseHoldUser();

            houseHoldUser.HouseHoldId = houseHold.Id;
            houseHoldUser.UserId      = houseHold.OwnerId;
            DbContext.HouseHoldUsers.Add(houseHoldUser);
            DbContext.SaveChanges();

            var model = Mapper.Map <HouseHoldViewModel>(houseHold);

            return(Ok(model));
        }
示例#2
0
        public IHttpActionResult AcceptInvitaion(int id)
        {
            var isHouseHoldExit = Validation.IsHouseHoldExist(id);

            if (!isHouseHoldExit)
            {
                ModelState.AddModelError("HouserHoldId", "Sorry, The household does not exist on the database");
                return(BadRequest(ModelState));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userEmail = User.Identity.GetUserName();
            var userId    = User.Identity.GetUserId();

            var invitationExist = DbContext.Invitations.Any(p => p.HouseHoldId == id && p.UserEmail == userEmail);

            if (!invitationExist)
            {
                ModelState.AddModelError("UserInvite", "Sorry, User was not invited to this houseHold");
                return(BadRequest(ModelState));
            }

            var invitation = DbContext.Invitations.FirstOrDefault(p => p.HouseHoldId == id && p.UserEmail == userEmail);

            var isUserMemberOfHouseHold = Validation.IsMemberOfHouseHold(id, userId);

            if (isUserMemberOfHouseHold)
            {
                DbContext.Invitations.Remove(invitation);
                DbContext.SaveChanges();

                ModelState.AddModelError("UserId", "You are the member of this houseHold");
                return(BadRequest(ModelState));
            }

            var model = new HouseHoldUser();

            model.HouseHoldId = id;
            model.UserId      = userId;

            DbContext.HouseHoldUsers.Add(model);
            DbContext.Invitations.Remove(invitation);
            DbContext.SaveChanges();

            return(Ok());
        }