Example #1
0
        public async Task <ResultWithError <ErrorData> > Handle(UpdateUserDetailsCommand request, CancellationToken cancellationToken)
        {
            var result = await this.Process(request, cancellationToken);

            var dbResult = await this._userRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);

            if (!dbResult)
            {
                return(ResultWithError.Fail(new ErrorData(
                                                ErrorCodes.SavingChanges, "Failed To Save Database")));
            }

            return(result);
        }
Example #2
0
        private async Task <ResultWithError <ErrorData> > Process(UpdateUserDetailsCommand request, CancellationToken cancellationToken)
        {
            var whenHappened = this._clock.GetCurrentInstant().ToDateTimeUtc();
            var userMaybe    = await this._userRepository.Find(request.UserId, cancellationToken);

            if (userMaybe.HasNoValue)
            {
                return(ResultWithError.Fail(new ErrorData(ErrorCodes.UserNotFound)));
            }

            var user = userMaybe.Value;

            user.UpdateProfile(request.FirstName, request.LastName, request.EmailAddress);
            user.SetAdminStatus(request.IsAdmin);
            user.SetLockableStatus(request.IsLockable);
            user.SetRoles(request.Roles);

            this._userRepository.Update(user);
            return(ResultWithError.Ok <ErrorData>());
        }