コード例 #1
0
        public HttpWebRequest GenerateRequest(IStorageCommandRequest request, string userId, string requestMethod)
        {
            Validator.ValidateObject(request, new ValidationContext(request, null, null), true);

            var webRequest = (HttpWebRequest)WebRequest.Create(request.Resource);

            webRequest.Method      = requestMethod.ToString();
            webRequest.ContentType = "application/octet-stream";

            var requestType = request.GetType();
            var properties  = requestType.GetProperties(PropertyFilters)
                              .Where(
                p =>
                (p.GetValue(request, null) != null) &&
                (!string.IsNullOrWhiteSpace(p.GetValue(request, null).ToString())))
                              .Where(p => p.GetCustomAttributes(false).OfType <HeaderAttribute>().Where(h => h.Serialise).Any())
                              .Select(p => new
            {
                Name  = p.GetCustomAttributes(false).OfType <HeaderAttribute>().Select(h => h.Name).First(),
                Value = p.GetValue(request, null).ToString()
            }).ToList();

            properties.Add(new { Name = "x-emc-date", Value = DateTime.UtcNow.ToString("r") });
            properties.Add(new { Name = "x-emc-uid", Value = userId });

            foreach (var property in properties)
            {
                webRequest.Headers.Add(property.Name, property.Value);
            }

            return(webRequest);
        }
コード例 #2
0
        public HttpWebRequest GenerateRequest(IStorageCommandRequest request, string userId, string requestMethod)
        {
            Validator.ValidateObject(request, new ValidationContext(request, null, null), true);

            var webRequest = (HttpWebRequest) WebRequest.Create(request.Resource);
            webRequest.Method = requestMethod.ToString();
            webRequest.ContentType = "application/octet-stream";

            var requestType = request.GetType();
            var properties = requestType.GetProperties(PropertyFilters)
                .Where(
                    p =>
                    (p.GetValue(request, null) != null) &&
                    (!string.IsNullOrWhiteSpace(p.GetValue(request, null).ToString())))
                .Where(p => p.GetCustomAttributes(false).OfType<HeaderAttribute>().Where(h => h.Serialise).Any())
                .Select(p => new
                                 {
                                     Name = p.GetCustomAttributes(false).OfType<HeaderAttribute>().Select(h => h.Name).First(),
                                     Value = p.GetValue(request, null).ToString()
                                 }).ToList();

            properties.Add(new { Name = "x-emc-date", Value = DateTime.UtcNow.ToString("r") });
            properties.Add(new { Name = "x-emc-uid", Value = userId });

            foreach (var property in properties)
            {
                webRequest.Headers.Add(property.Name, property.Value);
            }

            return webRequest;
        }
コード例 #3
0
        private void EnsureAbsoluteUri(IStorageCommandRequest request)
        {
            if (request.Resource.IsAbsoluteUri)
            {
                return;
            }
            var relativeResourcePath = request.Resource;

            request.Resource = new Uri(new Uri(_baseUrl), relativeResourcePath);
        }
コード例 #4
0
 private void EnsureAbsoluteUri(IStorageCommandRequest request)
 {
     if (request.Resource.IsAbsoluteUri) return;
     var relativeResourcePath = request.Resource;
     request.Resource = new Uri(new Uri(_baseUrl), relativeResourcePath);
 }