Upload() статический приватный Метод

Upload a bulk location file to S3.
static private Upload ( BlipRequest blipRequest, string brandKey, string filePath ) : BlipResponse
blipRequest BlipRequest A credentialed BlipRequest object.
brandKey string The unique identifier for a single brand.
filePath string The path to the file to be uploaded.
Результат BlipResponse
Пример #1
0
        /// <summary>
        /// Load a bulk location file into BLIP.
        /// </summary>
        /// <param name="brandKey">The unique identifier for a single brand.</param>
        /// <param name="source">The unique identifier for the data source.</param>
        /// <param name="filePath">The full path to the bulk location file.</param>
        /// <param name="implicitDelete">Whether or not to delete locations from BLIP if they're missing from the file.</param>
        /// <param name="expectedRecordCount">The number of location records to expect in the file.</param>
        /// <param name="successEmail">An optional email address to notify upon success. Can be a comma-delimited list.</param>
        /// <param name="failEmail">An optional email address to notify upon failure. Can be a comma-delimited list.</param>
        /// <param name="successCallbackUrl">An optional URL to call upon success.</param>
        /// <param name="failCallbackUrl">An optional URL to call upon failure.</param>
        /// <returns>BlipResponse object with a status code and body text if applicable.</returns>
        public BlipResponse BulkLoad(string brandKey, string source, string filePath, bool implicitDelete,
                                     int expectedRecordCount, string successEmail = null, string failEmail = null,
                                     string successCallbackUrl = null, string failCallbackUrl = null)
        {
            // Validate optional parameters
            var optionalParams = "";

            if (!string.IsNullOrEmpty(successEmail))
            {
                if (IsValidEmail(successEmail))
                {
                    optionalParams += $"&successEmail={successEmail}";
                }
                else
                {
                    return(new BlipResponse(400, $"Error: successEmail is not valid. {successEmail}"));
                }
            }
            if (!string.IsNullOrEmpty(failEmail))
            {
                if (IsValidEmail(failEmail))
                {
                    optionalParams += $"&failEmail={failEmail}";
                }
                else
                {
                    return(new BlipResponse(400, $"Error: failEmail is not valid. {failEmail}"));
                }
            }
            if (!string.IsNullOrEmpty(successCallbackUrl))
            {
                if (IsValidUrl(successCallbackUrl))
                {
                    optionalParams += $"&successCallback={successCallbackUrl}";
                }
                else
                {
                    return(new BlipResponse(400, $"Error: successCallbackUrl is not valid. {successCallbackUrl}"));
                }
            }
            if (!string.IsNullOrEmpty(failCallbackUrl))
            {
                if (IsValidUrl(failCallbackUrl))
                {
                    optionalParams += $"&failCallback={failCallbackUrl}";
                }
                else
                {
                    return(new BlipResponse(400, $"Error: failCallbackUrl is not valid. {failCallbackUrl}"));
                }
            }

            // Use pre-seigned auth from BLIP to upload the file to S3
            var blipRequest      = new BlipRequest(Credentials, Endpoint);
            var s3UploadResponse = S3Request.Upload(blipRequest, brandKey, filePath);

            // Return error response if S3 upload fails
            if (s3UploadResponse.StatusCode != 204)
            {
                return(s3UploadResponse);
            }

            // Build query string
            var path   = $"/brand/{brandKey}/bulkLoad?";
            var s3Path = s3UploadResponse.Body;
            var delete = implicitDelete.ToString().ToLower();
            var count  = expectedRecordCount.ToString();

            path += $"s3Path={s3Path}&source={source}&implicitDelete={delete}&expectedRecordCount={count}";
            if (!string.IsNullOrEmpty(optionalParams))
            {
                path += optionalParams;
            }

            // Ask BLIP to load the file from S3 and return its response (success of failure)
            return(blipRequest.ExecuteCommand(BlipRequest.Command.Get, path).Result);
        }