Exemple #1
0
        public void InsertImage(long reviewId, ReviewImage reviewImage)
        {
            Image thumbnailImage = null;

            var imageBytes = Convert.FromBase64String(reviewImage.Image);

            using (var ms = new MemoryStream(imageBytes))
                thumbnailImage = Image.FromStream(ms).GetThumbnailImage(200, 200, null, new IntPtr(0));

            byte[] thumbnailImageArray = null;
            using (var ms = new MemoryStream())
            {
                thumbnailImage
                .Save(ms, thumbnailImage.RawFormat.Equals(ImageFormat.MemoryBmp) ?
                      GetImageFormatByMimeType(reviewImage.MimeType)
                        : thumbnailImage.RawFormat);

                thumbnailImageArray = ms.ToArray();
            }

            using (var db = GetDbConnection())
            {
                var cmd = db.CreateCommand();
                cmd.CommandText = SqlStrings.InsertReviewImage;
                cmd.AddParameter("@ReviewId", reviewId);
                cmd.AddParameter("@ImageMimeType", reviewImage.MimeType);
                cmd.AddParameter("@Image", imageBytes);
                cmd.AddParameter("@ThumbnailMimeType", reviewImage.MimeType);
                cmd.AddParameter("@ThumbnailImage", thumbnailImage);

                cmd.ExecuteNonQuery();
            }
        }
Exemple #2
0
        public void AddReview(
            string coverImageName,
            string coverImageExtension,
            string coverImageFilePath,
            object userId,
            string title,
            string videoUrl,
            string description)
        {
            this.CheckIfValidExtension(coverImageExtension);
            var user   = this.usersRepository.GetById(userId);
            var review = new Review
            {
                Author      = user,
                Description = description,
                Title       = title,
                VideoUrl    = this.GetVideoId(videoUrl)
            };
            var coverPicture = new ReviewImage
            {
                FileExtension     = coverImageExtension,
                FileName          = coverImageName,
                FileSystemUrlPath = coverImageFilePath,
                Review            = review
            };

            review.Picture = coverPicture;
            user.Reviews.Add(review);

            using (this.uow)
            {
                this.usersRepository.Update(user);
                this.uow.Commit();
            }
        }
        public int AddReviewImage(string path)
        {
            ReviewImage revImage = new ReviewImage();

            revImage.ImageLocation = path;
            revImage.ReviewId      = custrepo.dbContext.Reviews.Count();
            custrepo.dbContext.ReviewImages.Add(revImage);
            return(custrepo.dbContext.SaveChanges());
        }
        public ActionResult DeleteConfirmed(int id)
        {
            ReviewImage reviewImage = db.ReviewImages.Find(id);

            db.ReviewImages.Remove(reviewImage);
            db.SaveChanges();

            System.IO.File.Delete(HttpContext.Server.MapPath("~/Images/" + reviewImage.Image));
            return(RedirectToAction("Index"));
        }
        public void ShouldConstructWithParameterlessConstructor()
        {
            ReviewImage reviewImage = new ReviewImage();

            Assert.Null(reviewImage.Review);
            Assert.Null(reviewImage.FileName);
            Assert.Null(reviewImage.FilePath);
            Assert.Equal(Guid.Empty, reviewImage.Id);
            Assert.Equal(Guid.Empty, reviewImage.ReviewId);
        }
Exemple #6
0
        public void ShouldAddImage()
        {
            Review      review = new Review();
            ReviewImage image  = new ReviewImage("FILENAME", "FILEPATH");

            review.AddImage(image);

            Assert.Equal(image.FileName, review.Image.FileName);
            Assert.Equal(image.FilePath, review.Image.FilePath);
        }
        public void ShouldConstructWithFilenameFilepathConstructor()
        {
            string      filename    = "FILENAME";
            string      filepath    = "FILEPATH";
            ReviewImage reviewImage = new ReviewImage(filename, filepath);

            Assert.Null(reviewImage.Review);
            Assert.Equal(filename, reviewImage.FileName);
            Assert.Equal(filepath, reviewImage.FilePath);
            Assert.Equal(Guid.Empty, reviewImage.Id);
            Assert.Equal(Guid.Empty, reviewImage.ReviewId);
        }
Exemple #8
0
        private async Task <Review> InsertReviewOnDatabase(Guid userId)
        {
            _database.Database.EnsureCreated();
            ReviewImage image  = new ReviewImage("FILENAME", "FILEPATH");
            Review      review = new Review("TITLE", "TEXT", 1, userId);

            review.AddImage(image);
            await _database.Set <Review>().AddAsync(review);

            await _database.SaveChangesAsync();

            return(review);
        }
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ReviewImage reviewImage = db.ReviewImages.Find(id);

            if (reviewImage == null)
            {
                return(HttpNotFound());
            }
            return(View(reviewImage));
        }
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ReviewImage reviewImage = db.ReviewImages.Find(id);

            if (reviewImage == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ReviewId = new SelectList(db.Reviews, "Id", "Text", reviewImage.ReviewId);
            return(View(reviewImage));
        }
Exemple #11
0
        public void ShouldConvertReviewToReviewResponseModel()
        {
            User        user        = new User(Guid.NewGuid(), "name", "*****@*****.**", "password");
            Review      review      = new Review(Guid.NewGuid(), "title", "text", 5, Guid.NewGuid());
            ReviewImage reviewImage = new ReviewImage("filename", "filepath");

            review.AddImage(reviewImage);
            review.UpdateCreator(user);
            _fileUploadUtilsMock.GenerateImageUrl(Arg.Any <string>()).Returns("imageurl");

            ReviewResponseModel responseModel = _converter.ConvertReviewToReviewResponseModel(review);

            Assert.Equal(review.Title, responseModel.Title);
            Assert.Equal(review.Text, responseModel.Text);
            Assert.Equal(review.Stars, responseModel.Stars);
            Assert.Equal(review.Creator.Name, responseModel.Creator);
            Assert.Equal("imageurl", responseModel.Image);
        }
Exemple #12
0
        protected static void PostImage()
        {
            var data = new ReviewImage
            {
                MimeType = "image/bmp",
                Image    = Convert.ToBase64String(new byte[]
                {
                    0x42, 0x4D, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00,
                    0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x00, 0x00, 0x00, 0xC4, 0x0E, 0x00, 0x00, 0x00, 0x00,
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
                })
            };

            var facade = new InfrastructureObjectReviewImagesFacade();

            facade.InsertImage(8, data);
        }
        public ActionResult Edit([Bind(Include = "Id,ReviewId,Image")] ReviewImage reviewImage)
        {
            HttpPostedFileBase file = Request.Files["Image"];

            if (file != null && file.ContentLength > 0)
            {
                reviewImage.Image = file.FileName;
            }
            ModelState.Clear();
            TryValidateModel(reviewImage);
            if (ModelState.IsValid)
            {
                file.SaveAs(HttpContext.Server.MapPath("~/Images/" + reviewImage.Image));

                db.Entry(reviewImage).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.ReviewId = new SelectList(db.Reviews, "Id", "Text", reviewImage.ReviewId);
            return(View(reviewImage));
        }
        public IActionResult Post1([FromForm] PostReviewWithFiles model)
        {
            var userId = _http.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier) ?? "00000000-0000-0000-0000-000000000000";

            var authenticated = _http.HttpContext.User.Identity.IsAuthenticated;

            if (model == null)
            {
                return(BadRequest());
            }

            if (model.AuthorId != userId || !authenticated)
            {
                return(BadRequest());
            }

            var biz    = _db.Users.Find(model.BusinessId);
            var author = _db.Users.Find(userId);

            if (biz == null || author == null)
            {
                return(BadRequest());
            }

            biz.TotalReviewsCount = biz.TotalReviewsCount + 1;
            var totalRate = biz.TotalRatingCount + model.Rating;

            biz.TotalRatingCount = totalRate;
            biz.Rating           = totalRate / biz.TotalReviewsCount;

            Review review = new Review
            {
                AuthorId   = author.Id,
                Id         = Guid.NewGuid().ToString(),
                BusinessId = biz.Id,
                Date       = Tools.GetLocalTime(biz.TimeZone),
                Rating     = model.Rating,
                Text       = model.Text,
                City       = biz.City,
            };

            string contentPath = Environment.ContentRootPath;

            if (model.Image1 != null)
            {
                ReviewImage image = new ReviewImage
                {
                    AuthorId   = review.AuthorId,
                    BusinessId = review.BusinessId,
                    Id         = Guid.NewGuid().ToString(),
                    ReviewId   = review.Id,
                };

                string fileName = $"yaillo-review-{image.Id}.jpg";

                image.imageUrl = Tools.SaveImageProduction(model.Image1, fileName);
                image.Name     = fileName;

                _db.ReviewsImages.Add(image);

                _db.SaveChanges();
            }

            if (model.Image2 != null)
            {
                ReviewImage image = new ReviewImage
                {
                    AuthorId   = review.AuthorId,
                    BusinessId = review.BusinessId,
                    Id         = Guid.NewGuid().ToString(),
                    ReviewId   = review.Id
                };

                string fileName = $"yaillo-review-{image.Id}.jpg";

                image.imageUrl = Tools.SaveImageProduction(model.Image1, fileName);
                image.Name     = fileName;

                _db.ReviewsImages.Add(image);

                _db.SaveChanges();
            }

            _db.Reviews.Add(review);
            _db.SaveChanges();
            _db.Users.Update(biz);
            _db.SaveChanges();

            return(Ok());
        }