/**
         * Set user address.
         */
        private async Task <APIGatewayProxyResponse> SetUserAddress(IDataStores dataStores,
                                                                    IDictionary <string, string> requestHeaders,
                                                                    JObject requestBody)
        {
            Debug.Untested();
            Debug.AssertValid(dataStores);
            Debug.AssertValid(requestHeaders);
            Debug.AssertValidOrNull(requestBody);

            try {
                // Log call
                LoggingHelper.LogMessage($"UserIdentityService::SetUserAddress()");

                // Get the NoSQL DB client
                AmazonDynamoDBClient dbClient = (AmazonDynamoDBClient)dataStores.GetNoSQLDataStore().GetDBClient();
                Debug.AssertValid(dbClient);

                // Check inputs
                SetUserAddressRequest setUserAddressRequest = UserIdentityService_SetUserAddress_LogicLayer.CheckValidSetUserAddressRequest(requestBody);
                Debug.AssertValid(setUserAddressRequest);

                // Check authenticated endpoint security
                string loggedInUserId = await APIHelper.CheckLoggedIn(dbClient, requestHeaders);

                Debug.AssertID(loggedInUserId);

                // Perform logic
                await UserIdentityService_SetUserAddress_LogicLayer.SetUserAddress(dbClient, loggedInUserId, setUserAddressRequest);

                // Respond
                return(new APIGatewayProxyResponse {
                    StatusCode = APIHelper.STATUS_CODE_NO_CONTENT
                });
            } catch (Exception exception) {
                Debug.Tested();
                return(APIHelper.ResponseFromException(exception));
            }
        }
示例#2
0
        /**
         * Set user address.
         */
        public static async Task SetUserAddress(AmazonDynamoDBClient dbClient, string loggedInUserId, SetUserAddressRequest setUserAddressRequest)
        {
            Debug.Tested();
            Debug.AssertValid(dbClient);
            Debug.AssertID(loggedInUserId);
            Debug.AssertValid(setUserAddressRequest);
            Debug.AssertString(setUserAddressRequest.address1);
            Debug.AssertString(setUserAddressRequest.country);
            Debug.AssertString(setUserAddressRequest.postalCode);

            // Load the user
            User user = await IdentityServiceLogicLayer.FindUserByID(dbClient, loggedInUserId);

            Debug.AssertValid(user);

            // Make changes (if necessary)
            if ((user.Address1 != setUserAddressRequest.address1) ||
                (user.Address2 != setUserAddressRequest.address2) ||
                (user.Address3 != setUserAddressRequest.address3) ||
                (user.Address4 != setUserAddressRequest.address4) ||
                (user.City != setUserAddressRequest.city) ||
                (user.Region != setUserAddressRequest.region) ||
                (user.Country != setUserAddressRequest.country) ||
                (user.PostalCode != setUserAddressRequest.postalCode))
            {
                user.Address1   = setUserAddressRequest.address1;
                user.Address2   = setUserAddressRequest.address2;
                user.Address3   = setUserAddressRequest.address3;
                user.Address4   = setUserAddressRequest.address4;
                user.City       = setUserAddressRequest.city;
                user.Region     = setUserAddressRequest.region;
                user.Country    = setUserAddressRequest.country;
                user.PostalCode = setUserAddressRequest.postalCode;

                // Save the user
                await IdentityServiceDataLayer.SaveUser(dbClient, user);
            }
        }