public async Task <HttpResponseMessage> UploadPromotionPhoto() { if (ModelState.IsValid) { var provider = new MultipartMemoryStreamProvider(); Claims claims = new Claims().Values(); NameValueCollection parameters = HttpContext.Current.Request.Params; try { //LogManager.Info(string.Concat(" PromotionProspectAdd ismimemultipart: ", Request.Content.IsMimeMultipartContent())); if (Request.Content.IsMimeMultipartContent()) { try { await Request.Content.ReadAsMultipartAsync(provider); fs = new List <FIleServer>(); int count = 0; //LogManager.Info(string.Concat("PromotionProspectAdd ismimemultipart: ", HttpContext.Current.Request.Files.Count)); string pathStorage = string.Empty; foreach (var file in HttpContext.Current.Request.Files) { var f = provider.Contents[count]; string fileName; if (f.Headers.ContentDisposition == null || f.Headers.ContentDisposition.FileName == null) { fileName = parameters["FileName"].ToString() + ".jpeg"; } else { fileName = f.Headers.ContentDisposition.FileName.ToString().Replace("\"", ""); } string mimeType = new MimeType().GetMimeType(fileName); var stream = (HttpContext.Current.Request.Files[count]).InputStream; byte[] bytesInStream = new byte[stream.Length]; stream.Read(bytesInStream, 0, bytesInStream.Length); Domain.ReadModel.FileTemp ft = new Domain.ReadModel.FileTemp(); ft.FileIntegrationCode = Guid.NewGuid(); pathStorage = _storage.UploadFile(_containerName, ft.FileIntegrationCode.ToString(), mimeType, bytesInStream); ft.FilePath = pathStorage; ft.OriginalName = fileName; try { using (Image img = Image.FromStream(stream: stream, useEmbeddedColorManagement: false, validateImageData: false)) { ft.Width = img.PhysicalDimension.Width.ToString(); ft.Height = img.PhysicalDimension.Height.ToString(); } count++; } catch (Exception ex) { LogManager.Error("Erro ao recuperar dimensoes da imagen", ex); } //salvo na tablea temporaria int fileId = _FileTemp.SaveFileTemp(ft); _listFileTemp.Add(fileId); PromotionPhotoInputDTO promotionPhoto = new PromotionPhotoInputDTO(); promotionPhoto.PromotionIntegrationCode = Guid.Parse(parameters["IntegrationCode"].ToString()); promotionPhoto.Active = true; promotionPhoto.FileId = fileId; promotionPhoto.IsDefault = (count == 1); promotionPhoto.PathImage = ft.FilePath; promotionPhoto.ShowOrder = (byte)count; promotionPhoto.UserSystemId = claims.userSystemId; var _clientPromotion = new HttpClient(); _clientPromotion.BaseAddress = new Uri(CustomConfiguration.WebApiPromotion); var resultTask = _clientPromotion.PostAsJsonAsync("api/Promotion/UploadPromotionPhoto", promotionPhoto).Result; if (!resultTask.IsSuccessStatusCode) { LogManager.Error("UploadPromotionPhoto Handler: Erro ao enviar web.api promotion: status: " + resultTask.StatusCode); } } return(Request.CreateResponse(HttpStatusCode.OK, pathStorage)); } catch (Exception ex) { LogManager.Error(string.Format("PromotionProspectAdd image Error:{0}", ex)); } } } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } } return(Request.CreateResponse(HttpStatusCode.OK, new { })); }
public async Task <HttpResponseMessage> EditPromotionPhoto() { PromotionPhotoInputDTO promotionPhoto = new PromotionPhotoInputDTO(); var provider = new MultipartMemoryStreamProvider(); Claims claims = new Claims().Values(); NameValueCollection parameters = HttpContext.Current.Request.Params; try { if (Request.Content.IsMimeMultipartContent()) { try { await Request.Content.ReadAsMultipartAsync(provider); fs = new List <FIleServer>(); int count = 0; foreach (var file in HttpContext.Current.Request.Files) { var f = provider.Contents[count]; string fileName; if (f.Headers.ContentDisposition == null || f.Headers.ContentDisposition.FileName == null) { fileName = parameters["FileName"].ToString() + ".jpeg"; } else { fileName = f.Headers.ContentDisposition.FileName.ToString().Replace("\"", ""); } string mimeType = new MimeType().GetMimeType(fileName); var stream = (HttpContext.Current.Request.Files[count]).InputStream; byte[] bytesInStream = new byte[stream.Length]; stream.Read(bytesInStream, 0, bytesInStream.Length); Domain.ReadModel.FileTemp ft = new Domain.ReadModel.FileTemp(); ft.FileIntegrationCode = Guid.NewGuid(); ft.FilePath = _storage.UploadFile(_containerName, ft.FileIntegrationCode.ToString(), mimeType, bytesInStream); ft.OriginalName = fileName; try { using (Image img = Image.FromStream(stream: stream, useEmbeddedColorManagement: false, validateImageData: false)) { ft.Width = img.PhysicalDimension.Width.ToString(); ft.Height = img.PhysicalDimension.Height.ToString(); } count++; } catch (Exception ex) { LogManager.Error("Erro ao recuperar dimensoes da imagen", ex); } //salvo na tablea temporaria int fileId = _FileTemp.SaveFileTemp(ft); _listFileTemp.Add(fileId); promotionPhoto.PromotionIntegrationCode = Guid.Parse(parameters["IntegrationCode"].ToString()); promotionPhoto.Active = true; promotionPhoto.FileId = fileId; promotionPhoto.IsDefault = true; promotionPhoto.PathImage = ft.FilePath; promotionPhoto.ShowOrder = (byte)count; promotionPhoto.UserSystemId = claims.userSystemId; var _clientPromotion = new HttpClient(); _clientPromotion.BaseAddress = new Uri(CustomConfiguration.WebApiPromotion); var resultTask = _clientPromotion.PostAsJsonAsync("api/Promotion/EditPromotionPhoto", promotionPhoto).Result; if (!resultTask.IsSuccessStatusCode) { LogManager.Error("EditPromotionPhoto Handler: Erro ao enviar web.api promotion: status: " + resultTask.StatusCode); } } } catch (Exception ex) { LogManager.Error(string.Format("PromotionProspectAdd image Error:{0}", ex)); } return(Request.CreateResponse(HttpStatusCode.OK, new { promotionPhoto.PathImage })); } } catch (System.Exception ex) { LogManager.Error(string.Format("ValidateUser Error:{0} : {1}", ex, ex.StackTrace)); LogManager.Error(string.Format("ValidateUser Error Parametros recebidos: Alert = {0}, normalPrice = {1} , discountPercent = {2} ,ExpertiseId = {3} ,Title = {4} ,ShortDescription = {5} ,FullDescription = {6} ,StartDateUTC = {7} ,ValidUntilUTC = {8} ,RequiredTimeForActivation = {9},PromotionTypeId = {10} ,PromotionBillingModelId = {11} ,PromotionRecurrenceId = {12} ,PromotionPaymentTypeId = {13} ,CurrencyId = {14} ,ExpertisePromotionCostReferenceId = {15},NumberOfAvailableCoupons = {16} ,PersonIntegrationID = {17}", parameters["Alert"], parameters["NormalPrice"], parameters["DiscountePercentege"], parameters["ExpertiseId"], parameters["Title"], parameters["ShortDescription"], parameters["FullDescription"], parameters["StartDateUTC"], parameters["ValidUntilUTC"], parameters["RequiredTimeForActivation"], parameters["PromotionTypeId"], parameters["PromotionBillingModelId"], parameters["PromotionRecurrenceId"], parameters["PromotionPaymentTypeId"], parameters["CurrencyId"], parameters["ExpertisePromotionCostReferenceId"], parameters["NumberOfAvailableCoupons"], parameters["PersonIntegrationID"].Replace(",", ""))); return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } return(Request.CreateResponse(HttpStatusCode.OK, new { })); }