Exemplo n.º 1
0
        public ClassifiedImageModel AddClassifiedImage(InputClassifiedImageModel inputModel)
        {
            using (var scope = new TransactionScope())
            {
                var classifiedImage = new ClassifiedImage()
                {
                    ClassifiedId   = inputModel.ClassifiedId,
                    ImageExtension = inputModel.ImageExtension,
                    ImageGuid      = inputModel.ImageGuid,
                    IsMainImage    = inputModel.IsMainImage
                };

                _unitOfWork.ClassifiedImageRepository.Add(classifiedImage);
                _unitOfWork.Save();
                scope.Complete();
                return(Mapper.Map <ClassifiedImage, ClassifiedImageModel>(classifiedImage));
            }
        }
Exemplo n.º 2
0
        public async Task <HttpResponseMessage> UploadImage(int id, string extension, bool?isMain = false)
        {
            string PATH = HttpContext.Current.Server.MapPath("~/" + BusinessSettings.ClassifiedImageFolderBase);
            //string rootUrl = Request.RequestUri.AbsoluteUri.Replace(Request.RequestUri.AbsolutePath, String.Empty);
            string imageData = await Request.Content.ReadAsStringAsync();

            byte[] bytes;
            try
            {
                bytes = Convert.FromBase64String(imageData);
            }
            catch (Exception)
            {
                throw new HttpResponseException(ErrorMessage("خطأ في عملية رفع الصورة"));
            }
            Image image;
            Guid  g = Guid.NewGuid();

            using (MemoryStream ms = new MemoryStream(bytes))
            {
                image = Image.FromStream(ms);
                switch (extension.ToLower())
                {
                case "jpg":
                    image.Save(PATH + "/" + g.ToString() + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
                    break;

                case "png":
                    image.Save(PATH + "/" + g.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);
                    break;

                case "gif":
                    image.Save(PATH + "/" + g.ToString() + ".gif", System.Drawing.Imaging.ImageFormat.Gif);
                    break;

                default:
                    break;
                }
            }
            var model = new InputClassifiedImageModel()
            {
                ClassifiedId   = id,
                ImageExtension = Path.GetExtension("." + extension.ToLower()),
                ImageGuid      = g.ToString(),
                IsMainImage    = isMain.HasValue ? isMain.Value : false
            };

            if (_classifiedService.AddClassifiedImage(model) == null)
            {
                throw new HttpResponseException(ErrorMessage("خطأ في عملية رفع الصورة"));
            }

            return(OkMessage("تم الرفع بنجاح"));

            //if (Request.Content.IsMimeMultipartContent())
            //{
            //    var streamProvider = new MyFormDataStreamProvider(PATH);
            //    await Request.Content.ReadAsMultipartAsync(streamProvider);
            //    if(!streamProvider.FileData.Any())
            //        throw new HttpResponseException(ErrorMessage("لا يمكن تحميل الملف المطلوب"));
            //    MultipartFileData file = streamProvider.FileData[0];
            //    var model = new InputClassifiedImageModel()
            //    {
            //        ClassifiedId = id,
            //        ImageExtension = Path.GetExtension(file.LocalFileName),
            //        ImageGuid =Path.GetFileNameWithoutExtension(file.LocalFileName),
            //        IsMainImage = isMain.HasValue ? isMain.Value : false
            //    };
            //    return _classifiedService.AddClassifiedImage(model);
            //}
            //else
            //{
            //    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
            //}
        }