public IHttpActionResult SignOut(UserApiModel model)
    {
      if (!this.ModelState.IsValid)
      {
        return this.BadRequest(this.ModelState);
      }

      var logout = _membershipService.LogoutUser(model.Email);
      return this.Ok(logout);
    }
 public IHttpActionResult SingIn(UserApiModel model)
 {
   if (this.ModelState.IsValid)
   {
     try
     {
       var login = _membershipService.LoginUser(model.Email, model.Password);
       return this.Ok(login);
     }
     catch (Exception e)
     {
       return this.BadRequest();
     }
   }
   else
   {
     return this.BadRequest(this.ModelState);
   }
 }
 public IHttpActionResult SignUp(UserApiModel user)
 {
   //validation: IValidatableObject, attribute validation
   if (this.ModelState.IsValid)
   {
     try
     {
       var mappedUser = _mapper.Map(user);
       var registeredUser = _membershipService.RegisterUser(mappedUser);
       return this.Ok(registeredUser);
     }
     catch (Exception e)
     {
       return this.BadRequest();
     }
   }
   else
   {
     return this.BadRequest(this.ModelState);
   }
 }