Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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
            });
        }
Ejemplo n.º 3
0
        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"));
        }