public ApiResponse SaveUser(UserPostedModel postedModel) { if (!ModelState.IsValid) { return(new ApiResponse("Validation errors occured.")); } var user = RavenSession.Load <User>("users/" + postedModel.Id); if (user == null || user.AccountId != Account.Id) { return(new ApiResponse("User not found")); } if (!Ownership.Owns(user, this)) { return(new ApiResponse("User not found")); } user.Name = postedModel.Name; user.Email = postedModel.Email; RavenSession.SaveChanges(); return(new ApiResponse(success: string.Format("User {0} edited", user.Email))); }
public ApiResponse AddUser(UserPostedModel postedModel) { var existingUserWithSameEmail = RavenSession.Query <User>() .Any(x => x.AccountId == LoggedInUser.AccountId && x.Email == postedModel.Email); if (existingUserWithSameEmail) { return(new ApiResponse(error: "A user with this email already exists")); } var user = new User() { Name = postedModel.Name, Status = UserStatus.Invited, Email = postedModel.Email, ClinicIds = new List <int>() { postedModel.ClinicId }, CreatedOn = DateTime.Now, AccountId = LoggedInUser.AccountId }; RavenSession.Store(user); var invitation = new UserInvitation() { ClinicId = postedModel.ClinicId, ToUserId = user.Id, Created = DateTime.Now }; Ownership.Assign(invitation, this); invitation.ClinicId = postedModel.ClinicId; RavenSession.Store(invitation); RavenSession.SaveChanges(); SendInvitation(invitation, user); return(new ApiResponse(success: "User created") { Model = user }); }
public ApiResponse ResendInvitation(UserPostedModel postedModel) { var invitation = RavenSession.Query <UserInvitation>().FirstOrDefault(x => x.ToUserId == postedModel.Id); if (invitation == null) { return(new ApiResponse("Invitation not sent yet or can't be found.")); } var user = RavenSession.Load <User>("users/" + invitation.ToUserId); if (user == null) { return(new ApiResponse("Invited user can't be found")); } if (!Ownership.Owns(user, this)) { return(new ApiResponse("User not found")); } SendInvitation(invitation, user); return(new ApiResponse(success: "Invitation email resent successfuly")); }