예제 #1
0
        public IRequest Marshall(InitiateMultipartUploadRequest initiateMultipartUploadRequest)
        {
            //IL_0006: Unknown result type (might be due to invalid IL or missing references)
            //IL_000c: Expected O, but got Unknown
            IRequest val = new DefaultRequest(initiateMultipartUploadRequest, "AmazonS3");

            val.set_HttpMethod("POST");
            if (initiateMultipartUploadRequest.IsSetCannedACL())
            {
                val.get_Headers().Add("x-amz-acl", S3Transforms.ToStringValue(ConstantClass.op_Implicit(initiateMultipartUploadRequest.CannedACL)));
            }
            HeadersCollection headers = initiateMultipartUploadRequest.Headers;

            foreach (string key in headers.Keys)
            {
                val.get_Headers().Add(key, headers[key]);
            }
            HeaderACLRequestMarshaller.Marshall(val, initiateMultipartUploadRequest);
            if (initiateMultipartUploadRequest.IsSetServerSideEncryptionMethod())
            {
                val.get_Headers().Add("x-amz-server-side-encryption", S3Transforms.ToStringValue(ConstantClass.op_Implicit(initiateMultipartUploadRequest.ServerSideEncryptionMethod)));
            }
            if (initiateMultipartUploadRequest.IsSetServerSideEncryptionCustomerMethod())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-customer-algorithm", ConstantClass.op_Implicit(initiateMultipartUploadRequest.ServerSideEncryptionCustomerMethod));
            }
            if (initiateMultipartUploadRequest.IsSetServerSideEncryptionCustomerProvidedKey())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-customer-key", initiateMultipartUploadRequest.ServerSideEncryptionCustomerProvidedKey);
                if (initiateMultipartUploadRequest.IsSetServerSideEncryptionCustomerProvidedKeyMD5())
                {
                    val.get_Headers().Add("x-amz-server-side-encryption-customer-key-MD5", initiateMultipartUploadRequest.ServerSideEncryptionCustomerProvidedKeyMD5);
                }
                else
                {
                    val.get_Headers().Add("x-amz-server-side-encryption-customer-key-MD5", AmazonS3Util.ComputeEncodedMD5FromEncodedString(initiateMultipartUploadRequest.ServerSideEncryptionCustomerProvidedKey));
                }
            }
            if (initiateMultipartUploadRequest.IsSetServerSideEncryptionKeyManagementServiceKeyId())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-aws-kms-key-id", initiateMultipartUploadRequest.ServerSideEncryptionKeyManagementServiceKeyId);
            }
            if (initiateMultipartUploadRequest.IsSetStorageClass())
            {
                val.get_Headers().Add("x-amz-storage-class", S3Transforms.ToStringValue(ConstantClass.op_Implicit(initiateMultipartUploadRequest.StorageClass)));
            }
            if (initiateMultipartUploadRequest.IsSetWebsiteRedirectLocation())
            {
                val.get_Headers().Add("x-amz-website-redirect-location", S3Transforms.ToStringValue(initiateMultipartUploadRequest.WebsiteRedirectLocation));
            }
            if (initiateMultipartUploadRequest.IsSetRequestPayer())
            {
                val.get_Headers().Add(S3Constants.AmzHeaderRequestPayer, S3Transforms.ToStringValue(((object)initiateMultipartUploadRequest.RequestPayer).ToString()));
            }
            AmazonS3Util.SetMetadataHeaders(val, initiateMultipartUploadRequest.Metadata);
            val.set_ResourcePath(string.Format(CultureInfo.InvariantCulture, "/{0}/{1}", S3Transforms.ToStringValue(initiateMultipartUploadRequest.BucketName), S3Transforms.ToStringValue(initiateMultipartUploadRequest.Key)));
            val.AddSubResource("uploads");
            val.set_UseQueryString(true);
            return(val);
        }
예제 #2
0
 /// <summary>
 ///		Añade las cabeceras a una solicitud Web
 /// </summary>
 private void AddHeaders(HttpWebRequest objHttpRequest, HeadersCollection objColHeaders)
 {
     foreach (Header objHeader in objColHeaders)
     {
         objHttpRequest.Headers.Add(objHeader.Key, objHeader.Value);
     }
 }
예제 #3
0
 private static void SetHeaders(HeadersCollection hc)
 {
     foreach (var kvp in headers)
     {
         hc[kvp.Key] = kvp.Value;
     }
 }
예제 #4
0
파일: Section.cs 프로젝트: jbautistam/Pop3
 public Section()
 {
     ContentType = new ContentType();
     ContentDisposition = new ContentDisposition();
     TransferEncoding = new ContentTransfer();
     Content = "";
     Headers = new HeadersCollection();
     Sections = new SectionsCollection();
 }
예제 #5
0
 /// <summary>
 ///		Normaliza una serie de cabeceras estándar para el correo y las secciones
 /// </summary>
 internal static void NormalizeHeaders(Section objSection, HeadersCollection objColHeaders)
 {
     foreach (Header objHeader in objColHeaders)
         if (objHeader.Name.Equals(Header.cnstStrContentType, StringComparison.CurrentCultureIgnoreCase))
             objSection.ContentType = ParseContentType(objHeader);
         else if (objHeader.Name.Equals(Header.cnstStrContentTransferEncoding, StringComparison.CurrentCultureIgnoreCase))
             objSection.TransferEncoding = ParseTransferEncoding(objHeader);
         else if (objHeader.Name.Equals(Header.cnstStrContentDisposition, StringComparison.CurrentCultureIgnoreCase))
             objSection.ContentDisposition = ParseContentDisposition(objHeader);
 }
예제 #6
0
        /// <summary>
        ///		Convierte una colección de cabeceras en una colección de parámetros
        /// </summary>
        private ParameterDataCollection Convert(HeadersCollection objColHeaders)
        {
            ParameterDataCollection objColParameters = new ParameterDataCollection();

                // Convierte las cabeceras
                    foreach (Header objHeader in objColHeaders)
                        objColParameters.Add(objHeader.Key, objHeader.Value);
                // Devuelve la colección de parámetros
                    return objColParameters;
        }
예제 #7
0
        /// <summary>
        ///		Convierte un diccionario a una colección de cabeceras
        /// </summary>
        private HeadersCollection ConvertToHeaders(Dictionary<string, string> dctParameters)
        {
            HeadersCollection objColHeaders = new HeadersCollection();

                // Asigna los parámetros
                    foreach (KeyValuePair<string, string> objParameter in dctParameters)
                        objColHeaders.Add(objParameter.Key, objParameter.Value);
                // Devuelve la colección
                    return objColHeaders;
        }
예제 #8
0
        public static HeadersCollection ToHeadersCollection(this ApiSession apiSession)
        {
            var collection = new HeadersCollection();

            if (apiSession != null && !apiSession.IsAnonymous && !apiSession.IsClosed)
            {
                collection.Add(ApiSession.AuthHeaderName, apiSession.AuthToken);
            }
            return(collection);
        }
예제 #9
0
        public static WebHeaderCollection ToWebHeaderCollection(this HeadersCollection headersCollection)
        {
            WebHeaderCollection webHeaderCollection = new WebHeaderCollection();

            foreach (var headerKey in headersCollection.Keys)
            {
                webHeaderCollection.Add(headerKey, headersCollection[headerKey]);
            }
            return(webHeaderCollection);
        }
예제 #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="UploadSettings" /> class.
        /// </summary>
        public UploadSettings()
        {
            CannedACL    = S3CannedACL.Private;
            StorageClass = S3StorageClass.Standard;

            KeyManagementServiceKeyId = "";

            Headers             = new HeadersCollection();
            GenerateContentType = true;
            GenerateETag        = true;
        }
예제 #11
0
        /// <summary>
        ///		Convierte una colección de cabeceras en una colección de parámetros
        /// </summary>
        private ParameterDataCollection Convert(HeadersCollection objColHeaders)
        {
            ParameterDataCollection objColParameters = new ParameterDataCollection();

            // Convierte las cabeceras
            foreach (Header objHeader in objColHeaders)
            {
                objColParameters.Add(objHeader.Key, objHeader.Value);
            }
            // Devuelve la colección de parámetros
            return(objColParameters);
        }
예제 #12
0
        /// <summary>
        ///		Convierte un diccionario a una colección de cabeceras
        /// </summary>
        private HeadersCollection ConvertToHeaders(Dictionary <string, string> dctParameters)
        {
            HeadersCollection objColHeaders = new HeadersCollection();

            // Asigna los parámetros
            foreach (KeyValuePair <string, string> objParameter in dctParameters)
            {
                objColHeaders.Add(objParameter.Key, objParameter.Value);
            }
            // Devuelve la colección
            return(objColHeaders);
        }
            public static NameValueCollection ToNameValueCollection(HeadersCollection headersCollection)
            {
                NameValueCollection collection = new NameValueCollection();

                if (headersCollection != null)
                {
                    foreach (var item in headersCollection.Keys)
                    {
                        collection.Add(item, headersCollection[item]);
                    }
                }
                return(collection);
            }
예제 #14
0
        public static IDictionary <string, string> GetCombinedMetadata(HeadersCollection headers, MetadataCollection metadata)
        {
            var result = new Dictionary <string, string>();

            foreach (var key in headers.Keys.Where(SupportedSpecialHeaders.ContainsKey))
            {
                result.Add(key, SupportedSpecialHeaders[key](headers));
            }

            foreach (var key in metadata.Keys)
            {
                result.Add(key, metadata[key]);
            }

            return(result);
        }
예제 #15
0
        private static void SetHeaders(HeadersCollection hc, Hashtable headers)
        {
            if (headers == null || headers.Count == 0)
            {
                return;
            }

            foreach (var key in headers.Keys)
            {
                var value = headers[key];

                var keyString   = key as string;
                var valueString = value as string;
                hc[keyString] = valueString;
            }
        }
        private string TransferFile(
            TEnum fileType,
            string fileName,
            byte[] buffer,
            long dateTicks,
            bool isPublic)
        {
            var key = string.Format(
                CultureInfo.InvariantCulture,
                "{0}/{1}/{2}",
                fileType,
                dateTicks,
                fileName);

            using (var stream = new MemoryStream(buffer))
            {
                var headers = new HeadersCollection();
                headers.ContentType  = this.GetContentType(fileName);
                headers.CacheControl = string.Format("max-age={0}, must-revalidate", MAX_AGE);

                var request = new TransferUtilityUploadRequest();
                request.Key         = key;
                request.BucketName  = this.BucketName;
                request.InputStream = stream;

                if (isPublic)
                {
                    request.CannedACL = S3CannedACL.PublicRead;
                }

                var transferUtility = NewTransferUtility();

                transferUtility.Upload(request);
            }
            return(key);
        }
예제 #17
0
파일: Header.cs 프로젝트: jbautistam/Pop3
 public Header(string strName, string strValue)
 {
     Name = string.IsNullOrEmpty(strName) ? "" : strName.Trim();
     Value = string.IsNullOrEmpty(strValue) ? "" : strValue.Trim();
     SubHeaders = new HeadersCollection();
 }
        public IRequest Marshall(PutObjectRequest putObjectRequest)
        {
            //IL_0006: Unknown result type (might be due to invalid IL or missing references)
            //IL_000c: Expected O, but got Unknown
            //IL_02b8: Unknown result type (might be due to invalid IL or missing references)
            //IL_02bf: Expected O, but got Unknown
            IRequest val = new DefaultRequest(putObjectRequest, "AmazonS3");

            val.set_HttpMethod("PUT");
            if (putObjectRequest.IsSetCannedACL())
            {
                val.get_Headers().Add("x-amz-acl", S3Transforms.ToStringValue(ConstantClass.op_Implicit(putObjectRequest.CannedACL)));
            }
            HeadersCollection headers = putObjectRequest.Headers;

            foreach (string key in headers.Keys)
            {
                val.get_Headers()[key] = headers[key];
            }
            if (putObjectRequest.IsSetMD5Digest())
            {
                val.get_Headers()["Content-MD5"] = putObjectRequest.MD5Digest;
            }
            HeaderACLRequestMarshaller.Marshall(val, putObjectRequest);
            if (putObjectRequest.IsSetServerSideEncryptionMethod())
            {
                val.get_Headers().Add("x-amz-server-side-encryption", S3Transforms.ToStringValue(ConstantClass.op_Implicit(putObjectRequest.ServerSideEncryptionMethod)));
            }
            if (putObjectRequest.IsSetStorageClass())
            {
                val.get_Headers().Add("x-amz-storage-class", S3Transforms.ToStringValue(ConstantClass.op_Implicit(putObjectRequest.StorageClass)));
            }
            if (putObjectRequest.IsSetWebsiteRedirectLocation())
            {
                val.get_Headers().Add("x-amz-website-redirect-location", S3Transforms.ToStringValue(putObjectRequest.WebsiteRedirectLocation));
            }
            if (putObjectRequest.IsSetServerSideEncryptionCustomerMethod())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-customer-algorithm", ConstantClass.op_Implicit(putObjectRequest.ServerSideEncryptionCustomerMethod));
            }
            if (putObjectRequest.IsSetServerSideEncryptionCustomerProvidedKey())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-customer-key", putObjectRequest.ServerSideEncryptionCustomerProvidedKey);
                if (putObjectRequest.IsSetServerSideEncryptionCustomerProvidedKeyMD5())
                {
                    val.get_Headers().Add("x-amz-server-side-encryption-customer-key-MD5", putObjectRequest.ServerSideEncryptionCustomerProvidedKeyMD5);
                }
                else
                {
                    val.get_Headers().Add("x-amz-server-side-encryption-customer-key-MD5", AmazonS3Util.ComputeEncodedMD5FromEncodedString(putObjectRequest.ServerSideEncryptionCustomerProvidedKey));
                }
            }
            if (putObjectRequest.IsSetServerSideEncryptionKeyManagementServiceKeyId())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-aws-kms-key-id", putObjectRequest.ServerSideEncryptionKeyManagementServiceKeyId);
            }
            if (putObjectRequest.IsSetRequestPayer())
            {
                val.get_Headers().Add(S3Constants.AmzHeaderRequestPayer, S3Transforms.ToStringValue(((object)putObjectRequest.RequestPayer).ToString()));
            }
            if (putObjectRequest.IsSetTagSet())
            {
                val.get_Headers().Add(S3Constants.AmzHeaderTagging, AmazonS3Util.TagSetToQueryString(putObjectRequest.TagSet));
            }
            AmazonS3Util.SetMetadataHeaders(val, putObjectRequest.Metadata);
            val.set_ResourcePath(string.Format(CultureInfo.InvariantCulture, "/{0}/{1}", S3Transforms.ToStringValue(putObjectRequest.BucketName), S3Transforms.ToStringValue(putObjectRequest.Key)));
            if (putObjectRequest.InputStream != null)
            {
                Stream streamWithLength = GetStreamWithLength(putObjectRequest.InputStream, putObjectRequest.Headers.ContentLength);
                if (streamWithLength.Length > 0)
                {
                    val.set_UseChunkEncoding(true);
                }
                long num = streamWithLength.Length - streamWithLength.Position;
                if (!val.get_Headers().ContainsKey("Content-Length"))
                {
                    val.get_Headers().Add("Content-Length", num.ToString(CultureInfo.InvariantCulture));
                }
                MD5Stream val2 = putObjectRequest.InputStream = (Stream) new MD5Stream(streamWithLength, (byte[])null, num);
            }
            val.set_ContentStream(putObjectRequest.InputStream);
            if (!val.get_Headers().ContainsKey("Content-Type"))
            {
                val.get_Headers().Add("Content-Type", "text/plain");
            }
            return(val);
        }
예제 #19
0
		/// <summary>Creates new instance of the class.</summary>
		public TreeGX()
		{
			ColorFunctions.Initialize();

			this.SetStyle(ControlStyles.UserPaint, true);
			this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
			this.SetStyle(ControlStyles.Opaque, true);
			this.SetStyle(ControlStyles.ResizeRedraw, true);
			this.SetStyle(ControlStyles.DoubleBuffer, true);
			this.SetStyle(ControlStyles.Selectable, true);

			// This call is required by the Windows.Forms Form Designer.
			InitializeComponent();
			
			m_BackgroundStyle.StyleChanged+=new EventHandler(ElementStyleChanged);
			m_BackgroundStyle.TreeControl=this;

			// Setup layout helper
			//m_NodeLayout=new NodeTreeLayout(this,this.ClientRectangle);
			//m_NodeLayout=new NodeListLayout(this,this.ClientRectangle);
			//m_NodeLayout=new NodeDiagramLayout(this,this.ClientRectangle);
			m_NodeLayout=new NodeMapLayout(this,this.ClientRectangle);
			m_NodeLayout.NodeHorizontalSpacing=m_NodeHorizontalSpacing;
			m_NodeLayout.NodeVerticalSpacing=m_NodeVerticalSpacing;

			m_NodeLayout.LeftRight=this.RtlTranslateLeftRight(LeftRightAlignment.Left);

#if TRIAL
			NodeOperations.ColorExpAlt();
#endif
			// Setup display helper
			m_NodeDisplay=new NodeTreeDisplay(this);

			m_Headers=new HeadersCollection();

			m_Nodes.TreeControl=this;
			m_Styles.TreeControl=this;

			m_ColorScheme=new ColorScheme(eColorSchemeStyle.Office2003);

			m_SelectionBoxBorderColor=GetDefaultSelectionBoxBorderColor();
			m_SelectionBoxFillColor=GetDefaultSelectionBoxFillColor();

			m_ExpandButtonSize=GetDefaultExpandButtonSize();

			this.AllowDrop = true;
		}
예제 #20
0
        public IRequest Marshall(CopyObjectRequest copyObjectRequest)
        {
            //IL_0006: Unknown result type (might be due to invalid IL or missing references)
            //IL_000c: Expected O, but got Unknown
            IRequest val = new DefaultRequest(copyObjectRequest, "AmazonS3");

            val.set_HttpMethod("PUT");
            if (copyObjectRequest.IsSetCannedACL())
            {
                val.get_Headers().Add("x-amz-acl", S3Transforms.ToStringValue(ConstantClass.op_Implicit(copyObjectRequest.CannedACL)));
            }
            HeadersCollection headers = copyObjectRequest.Headers;

            foreach (string key in headers.Keys)
            {
                val.get_Headers()[key] = headers[key];
            }
            HeaderACLRequestMarshaller.Marshall(val, copyObjectRequest);
            if (copyObjectRequest.IsSetSourceBucket())
            {
                val.get_Headers().Add("x-amz-copy-source", ConstructCopySourceHeaderValue(copyObjectRequest.SourceBucket, copyObjectRequest.SourceKey, copyObjectRequest.SourceVersionId));
            }
            if (copyObjectRequest.IsSetETagToMatch())
            {
                val.get_Headers().Add("x-amz-copy-source-if-match", S3Transforms.ToStringValue(copyObjectRequest.ETagToMatch));
            }
            if (copyObjectRequest.IsSetModifiedSinceDate())
            {
                val.get_Headers().Add("x-amz-copy-source-if-modified-since", S3Transforms.ToStringValue(copyObjectRequest.ModifiedSinceDate));
            }
            if (copyObjectRequest.IsSetETagToNotMatch())
            {
                val.get_Headers().Add("x-amz-copy-source-if-none-match", S3Transforms.ToStringValue(copyObjectRequest.ETagToNotMatch));
            }
            if (copyObjectRequest.IsSetUnmodifiedSinceDate())
            {
                val.get_Headers().Add("x-amz-copy-source-if-unmodified-since", S3Transforms.ToStringValue(copyObjectRequest.UnmodifiedSinceDate));
            }
            if (copyObjectRequest.IsSetTagSet())
            {
                val.get_Headers().Add(S3Constants.AmzHeaderTagging, AmazonS3Util.TagSetToQueryString(copyObjectRequest.TagSet));
                val.get_Headers().Add(S3Constants.AmzHeaderTaggingDirective, TaggingDirective.REPLACE.get_Value());
            }
            else
            {
                val.get_Headers().Add(S3Constants.AmzHeaderTaggingDirective, TaggingDirective.COPY.get_Value());
            }
            val.get_Headers().Add("x-amz-metadata-directive", S3Transforms.ToStringValue(copyObjectRequest.MetadataDirective.ToString()));
            if (copyObjectRequest.IsSetServerSideEncryptionMethod())
            {
                val.get_Headers().Add("x-amz-server-side-encryption", S3Transforms.ToStringValue(ConstantClass.op_Implicit(copyObjectRequest.ServerSideEncryptionMethod)));
            }
            if (copyObjectRequest.IsSetServerSideEncryptionCustomerMethod())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-customer-algorithm", ConstantClass.op_Implicit(copyObjectRequest.ServerSideEncryptionCustomerMethod));
            }
            if (copyObjectRequest.IsSetServerSideEncryptionCustomerProvidedKey())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-customer-key", copyObjectRequest.ServerSideEncryptionCustomerProvidedKey);
                if (copyObjectRequest.IsSetServerSideEncryptionCustomerProvidedKeyMD5())
                {
                    val.get_Headers().Add("x-amz-server-side-encryption-customer-key-MD5", copyObjectRequest.ServerSideEncryptionCustomerProvidedKeyMD5);
                }
                else
                {
                    val.get_Headers().Add("x-amz-server-side-encryption-customer-key-MD5", AmazonS3Util.ComputeEncodedMD5FromEncodedString(copyObjectRequest.ServerSideEncryptionCustomerProvidedKey));
                }
            }
            if (copyObjectRequest.IsSetCopySourceServerSideEncryptionCustomerMethod())
            {
                val.get_Headers().Add("x-amz-copy-source-server-side-encryption-customer-algorithm", ConstantClass.op_Implicit(copyObjectRequest.CopySourceServerSideEncryptionCustomerMethod));
            }
            if (copyObjectRequest.IsSetCopySourceServerSideEncryptionCustomerProvidedKey())
            {
                val.get_Headers().Add("x-amz-copy-source-server-side-encryption-customer-key", copyObjectRequest.CopySourceServerSideEncryptionCustomerProvidedKey);
                if (copyObjectRequest.IsSetCopySourceServerSideEncryptionCustomerProvidedKeyMD5())
                {
                    val.get_Headers().Add("x-amz-copy-source-server-side-encryption-customer-key-MD5", copyObjectRequest.CopySourceServerSideEncryptionCustomerProvidedKeyMD5);
                }
                else
                {
                    val.get_Headers().Add("x-amz-copy-source-server-side-encryption-customer-key-MD5", AmazonS3Util.ComputeEncodedMD5FromEncodedString(copyObjectRequest.CopySourceServerSideEncryptionCustomerProvidedKey));
                }
            }
            if (copyObjectRequest.IsSetServerSideEncryptionKeyManagementServiceKeyId())
            {
                val.get_Headers().Add("x-amz-server-side-encryption-aws-kms-key-id", copyObjectRequest.ServerSideEncryptionKeyManagementServiceKeyId);
            }
            if (copyObjectRequest.IsSetStorageClass())
            {
                val.get_Headers().Add("x-amz-storage-class", S3Transforms.ToStringValue(ConstantClass.op_Implicit(copyObjectRequest.StorageClass)));
            }
            if (copyObjectRequest.IsSetWebsiteRedirectLocation())
            {
                val.get_Headers().Add("x-amz-website-redirect-location", S3Transforms.ToStringValue(copyObjectRequest.WebsiteRedirectLocation));
            }
            if (copyObjectRequest.IsSetRequestPayer())
            {
                val.get_Headers().Add(S3Constants.AmzHeaderRequestPayer, S3Transforms.ToStringValue(((object)copyObjectRequest.RequestPayer).ToString()));
            }
            AmazonS3Util.SetMetadataHeaders(val, copyObjectRequest.Metadata);
            string value = copyObjectRequest.DestinationKey.StartsWith("/", StringComparison.Ordinal) ? copyObjectRequest.DestinationKey.Substring(1) : copyObjectRequest.DestinationKey;

            val.set_ResourcePath(string.Format(CultureInfo.InvariantCulture, "/{0}/{1}", S3Transforms.ToStringValue(copyObjectRequest.DestinationBucket), S3Transforms.ToStringValue(value)));
            val.set_UseQueryString(true);
            return(val);
        }
예제 #21
0
        /// <summary>
        ///		Lee las cabeceras
        /// </summary>
        private static HeadersCollection ReadHeaders(ParserLines objParser)
        {
            HeadersCollection objColHeaders = new HeadersCollection();
            string strLine = "----";

                // Interpreta las líneas de cabecera
                    while (!objParser.IsEof && !string.IsNullOrEmpty(strLine))
                        { // Obtiene la línea
                                strLine = objParser.ReadLineContinuous();
                            // Interpreta la cabecera (si la hay)
                                if (!string.IsNullOrEmpty(strLine))
                                    { Header objHeader = ParseHeader(strLine);

                                            // Añade la cabecera
                                                objColHeaders.Add(objHeader);
                                    }
                        }
                // Devuelve la colección de cabeceras
                    return objColHeaders;
        }
        public static bool EqualsRequest(this InitiateMultipartUploadRequest request, InitiateMultipartUploadRequest other)
        {
            bool propsEq =
                other.BucketName == request.BucketName &&
                other.Key == request.Key &&

                other.StorageClass == request.StorageClass &&
                other.WebsiteRedirectLocation == request.WebsiteRedirectLocation &&
                other.RequestPayer?.Value == request.RequestPayer?.Value &&

                other.CannedACL == request.CannedACL &&

                other.ServerSideEncryptionMethod.Value == request.ServerSideEncryptionMethod.Value &&
                other.ServerSideEncryptionCustomerProvidedKey == request.ServerSideEncryptionCustomerProvidedKey &&
                other.ServerSideEncryptionCustomerMethod == request.ServerSideEncryptionCustomerMethod &&
                other.ServerSideEncryptionCustomerProvidedKeyMD5 == request.ServerSideEncryptionCustomerProvidedKeyMD5 &&
                other.ServerSideEncryptionKeyManagementServiceKeyId == request.ServerSideEncryptionKeyManagementServiceKeyId;

            if (!propsEq)
            {
                return(false);
            }

            // Check if metadata include the same keys with the same values
            MetadataCollection otherMeta = other.Metadata;
            MetadataCollection thisMeta  = request.Metadata;
            bool metadataCountEq         = (otherMeta.Count == thisMeta.Count);

            if (!metadataCountEq)
            {
                return(false);
            }
            string[] commonKeys = otherMeta.Keys.Intersect(thisMeta.Keys).ToArray();
            if (commonKeys.Length != otherMeta.Count)
            {
                return(false);
            }
            bool metadataEq = commonKeys.All(k => otherMeta[k] == thisMeta[k]);

            if (!metadataEq)
            {
                return(false);
            }

            // Check if content headers include the same headers with the same values
            HeadersCollection otherHeaders = other.Headers;
            HeadersCollection thisHeaders  = request.Headers;
            bool headerCountEq             = (otherHeaders.Count == thisHeaders.Count);

            if (!headerCountEq)
            {
                return(false);
            }
            string[] commonHeaders = otherHeaders.Keys.Intersect(thisHeaders.Keys).ToArray();
            if (commonHeaders.Length != otherHeaders.Count)
            {
                return(false);
            }
            bool headersEq = commonHeaders.All(k => otherHeaders[k] == thisHeaders[k]);

            if (!headersEq)
            {
                return(false);
            }

            // Check if grants include the same grantees with the same permissions
            List <S3Grant> otherGrants  = other.Grants;
            List <S3Grant> thisGrants   = request.Grants;
            bool           grantCountEq = (otherGrants.Count == thisGrants.Count);

            if (!grantCountEq)
            {
                return(false);
            }
            S3Grant[] commonGrants = otherGrants.Intersect(thisGrants).ToArray();
            if (commonGrants.Length != otherGrants.Count)
            {
                return(false);
            }

            return(true);
        }
예제 #23
0
 /// <summary>
 ///		Añade las cabeceras a una solicitud Web
 /// </summary>
 private void AddHeaders(HttpWebRequest objHttpRequest, HeadersCollection objColHeaders)
 {
     foreach (Header objHeader in objColHeaders)
         objHttpRequest.Headers.Add(objHeader.Key, objHeader.Value);
 }