public object Patch(UpdateUser request) { UpdateUserValidator.ValidateAndThrow(request); using (var session = NHibernateHelper.OpenSession()) { using (var transaction = session.BeginTransaction()) { var user = session.Get <UserModel>(request.UserId); if (request.FirstName.IsSet()) { user.FirstName = request.FirstName; } if (request.LastName.IsSet()) { user.LastName = request.LastName; } if (request.Nickname.IsSet()) { user.Nickname = request.Nickname; } if (request.PhoneNumber.IsSet()) { user.PhoneNumber = request.PhoneNumber; } if (request.Email.IsSet()) { user.Email = request.Email; } if (request.Password.IsSet()) { user.Password = request.Password; } session.SaveOrUpdate(user); transaction.Commit(); return(new UserDto(user)); } } }