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(); } }
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); }
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); }
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)); }
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); }
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()); }