public GenericStatusMessage ValidateUserData(ChangeUserDataPayload payload, bool required = true) { ValidationHelper helper = new ValidationHelper(); List <GenericStatusMessage> validations = new List <GenericStatusMessage> { helper.ValidateStringValue(payload.FirstName, "First name", 2, 20, required), helper.ValidateStringValue(payload.LastName, "Last name", 2, 20, required), helper.ValidateStringValue(payload.Country, "Country", 2, 20, required), helper.ValidateStringValue(payload.City, "City", 2, 20, required), helper.ValidateStringValue(payload.Street, "Street", 2, 50, required) }; bool buildingValueExists = required || payload.BuildingNumber.HasValue; if (buildingValueExists && payload.BuildingNumber <= 0) { validations.Add(new GenericStatusMessage(false, "Building number cannot be non positive.")); } if (validations.Any(x => !x.Success)) { return(validations.First(x => !x.Success)); } return(new GenericStatusMessage(true)); }
public GenericObjectResponse <UserResponse> ChangeUserData(ChangeUserDataPayload payload, long userId) { UserValidationService service = new UserValidationService(); GenericStatusMessage validationResponse = service.ValidateUserData(payload, false); if (validationResponse.Success) { using (ReservationDataContext context = new ReservationDataContext()) { User user = context.Users.Single(x => x.Id == userId); user.FirstName = payload.FirstName ?? user.FirstName; user.LastName = payload.LastName ?? user.LastName; user.Country = payload.Country ?? user.Country; user.City = payload.City ?? user.City; user.Street = payload.Street ?? user.Street; user.BuildingNumber = payload.BuildingNumber ?? user.BuildingNumber; context.SaveChanges(); return(new GenericObjectResponse <UserResponse>(ConvertUserToUserResponse(user))); } } else { return(new GenericObjectResponse <UserResponse>(validationResponse.Message)); } }
public GenericObjectResponse <UserResponse> ChangeUserData([FromBody] ChangeUserDataPayload payload) { long?userId = AuthenticationService.IsAuthorized(Request, UserRole.Coach, UserRole.RoomOwner); if (userId == null) { Response.StatusCode = 401; return(new GenericObjectResponse <UserResponse>("")); } else { UserManipulationService userManipulationService = new UserManipulationService(); return(userManipulationService.ChangeUserData(payload, userId.Value)); } }