示例#1
0
        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));
            }
        }
示例#3
0
        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));
            }
        }