public async Task <HttpResponseMessage> Post()
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }
            string root     = HttpContext.Current.Server.MapPath("~/App_Data");
            var    provider = new MultipartFormDataStreamProvider(root);

            try
            {
                await Request.Content.ReadAsMultipartAsync(provider);

                var trainingRequest = new TrainingRequestModel()
                {
                    FileBytes = File.ReadAllBytes(provider.FileData.FirstOrDefault()?.LocalFileName),
                    Name      = provider.FormData.Get("name"),
                    Language  = provider.FormData.Get("language"),
                };
                return(Request.CreateResponse(HttpStatusCode.OK, await clasifierService.PostTrainingData(trainingRequest, default(CancellationToken))));
            }
            catch (Exception)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError));
            }
        }
        public async Task <TrainingResponse> PostTrainingData(TrainingRequestModel trainingRequest, CancellationToken cancellationToken)
        {
            var requestContent = new MultipartFormDataContent
            {
                {
                    new StreamContent(new MemoryStream(trainingRequest.FileBytes)), "training_data"
                },
                {
                    new StringContent(JsonConvert.SerializeObject(new TrainingRequest()
                    {
                        Language = trainingRequest.Language, Name = trainingRequest.Name
                    })),
                    "training_metadata"
                }
            };

            return(await httpRequester.Post <TrainingResponse>($"{endPoint}/classifiers", requestContent));
        }