public async Task <TypedResult <UserOutDto> > CreateUser(UpdateUserDtoIn updateUserIn) { try { var newUser = new UserEntity() { UserId = Guid.NewGuid(), Email = updateUserIn.Email, ReportingTo = updateUserIn.ReportingTo, Name = new NameEntity() { FirstName = updateUserIn.Name.FirstName, LastName = updateUserIn.Name.LastName, MiddleName = updateUserIn.Name.MiddleName, Salutation = updateUserIn.Name.Salutation, PreferredFirstName = updateUserIn.Name.PreferredFirstName }, Roles = updateUserIn.Roles.Select(x => x.ToString()), Status = updateUserIn.Status }; await UserCollection.InsertOneAsync(newUser); return(new SuccessfulTypedResult <UserOutDto>(UserOutDto.EntityToOutDto(newUser))); } catch (Exception e) { return(new FailedTypedResult <UserOutDto>(e)); } }
public async Task <TypedResult <UserOutDto> > UpdateUser(Guid userId, UpdateUserDtoIn newUserId) { try { var foundUser = (await UserCollection.FindAsync(c => c.UserId == userId)).FirstOrDefault(); if (foundUser == null) { return(new NotFoundTypedResult <UserOutDto>()); } foundUser.Name = new NameEntity() { FirstName = newUserId.Name.FirstName, LastName = newUserId.Name.LastName, MiddleName = newUserId.Name.MiddleName, Salutation = newUserId.Name.Salutation, PreferredFirstName = newUserId.Name.PreferredFirstName }; foundUser.Email = newUserId.Email; foundUser.ReportingTo = newUserId.ReportingTo; foundUser.Status = newUserId.Status; foundUser.Roles = newUserId.Roles.Select(x => x.ToString()); await UserCollection.ReplaceOneAsync(u => u.UserId == userId, foundUser, new ReplaceOptions() { IsUpsert = false }); return(new SuccessfulTypedResult <UserOutDto>(UserOutDto.EntityToOutDto(foundUser))); } catch (Exception e) { return(new FailedTypedResult <UserOutDto>(e)); } }