Beispiel #1
0
        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 { }));
        }
Beispiel #2
0
        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 { }));
        }