public async Task <IActionResult> CreateMember([FromBody] MemberBindingModel bindingModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var member = await this.membersRepository.AddAsync(
                bindingModel.FirstName,
                bindingModel.LastName);

            return(this.Created("api/members", member));
        }
Ejemplo n.º 2
0
        public IHttpActionResult Invite(int id, MemberBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var houseHold = Context
                            .HouseHolds
                            .FirstOrDefault(p => p.Id == id);

            if (houseHold == null)
            {
                return(NotFound());
            }

            var userId = User
                         .Identity
                         .GetUserId();

            if (userId != houseHold.OwnerId)
            {
                ModelState.AddModelError("Not the Owner", "Only the owner can invite members");
                return(BadRequest(ModelState));
            }

            var user = Context
                       .Users
                       .FirstOrDefault(p => p.Email == model.UserEmail);

            if (user == null)
            {
                ModelState.AddModelError("Not Found", "User does not exist");
                return(BadRequest(ModelState));
            }

            houseHold.InvitedUsers.Add(user);
            Context.SaveChanges();

            EmailService emailInvitation = new EmailService();

            emailInvitation.Send(model.UserEmail, "You have been invited to a new House Hold.", "Invitation");

            return(Ok());
        }
        public async Task <IActionResult> Delete(Guid memberId, [FromBody] MemberBindingModel bindingModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState));
            }

            var member = await this.membersRepository.UpdateAsync(
                memberId,
                bindingModel.FirstName,
                bindingModel.LastName);

            if (member == null)
            {
                return(this.BadRequest(memberId));
            }

            return(this.Ok(member));
        }