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); }
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; }
private void EnsureAbsoluteUri(IStorageCommandRequest request) { if (request.Resource.IsAbsoluteUri) { return; } var relativeResourcePath = request.Resource; request.Resource = new Uri(new Uri(_baseUrl), relativeResourcePath); }
private void EnsureAbsoluteUri(IStorageCommandRequest request) { if (request.Resource.IsAbsoluteUri) return; var relativeResourcePath = request.Resource; request.Resource = new Uri(new Uri(_baseUrl), relativeResourcePath); }