Пример #1
0
        internal DotNetRequest(RestApiCredentials credentials, DotNetOptions options) : base(credentials, options)
        {
            DllFile = new ApiFileInfo
            {
                FileName     = Path.GetFileName(options.DllFilePath),
                FileData     = File.ReadAllBytes(options.DllFilePath),
                FileMimeType = MimeMapping.MimeUtility.GetMimeMapping(options.DllFilePath)
            };

            XmlFile = new ApiFileInfo
            {
                FileName     = Path.GetFileName(options.XmlFilePath),
                FileData     = File.ReadAllBytes(options.XmlFilePath),
                FileMimeType = MimeMapping.MimeUtility.GetMimeMapping(options.XmlFilePath)
            };
        }
        public static void UploadApiReferences(this ICakeContext context, RestApiCredentials credentials, DotNetOptions options)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            var request = new DotNetRequest(credentials, options);

            context.Log.Write(Verbosity.Normal, LogLevel.Information, "Uploading API Refs for {0}-{1} at {2}",
                              request.ProductKey, request.SectionKey, credentials.Uri);

            var multipartContent = new MultipartFormDataContent();
            var json             = JsonConvert.SerializeObject(request,
                                                               new JsonSerializerSettings {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            });

            multipartContent.Add(new StringContent(json, Encoding.UTF8, "application/json"), request.ContentName);

            var dllContent = new ByteArrayContent(request.DllFile.FileData);

            dllContent.Headers.ContentType = new MediaTypeHeaderValue(request.DllFile.FileMimeType);
            multipartContent.Add(dllContent, "dllFile", request.DllFile.FileName);

            var xmlContent = new ByteArrayContent(request.XmlFile.FileData);

            xmlContent.Headers.ContentType = new MediaTypeHeaderValue(request.XmlFile.FileMimeType);
            multipartContent.Add(xmlContent, "xmlFile", request.XmlFile.FileName);

            PostContent(context, credentials, multipartContent);
        }