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)); }
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()); }