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); }