public IActionResult Add(MonumentAddViewModel model) { if (!this.ModelState.IsValid) { return(base.RedirectToAction("Add")); } int monumentId = this.monumentsService.Add(model); return(base.RedirectToAction("Details", new { monumentId })); }
public IActionResult Add() { var oblasts = this.oblastsService.GetAllOrderedByName() .Select(x => new SelectListItem(x.Name, x.Id.ToString())) .ToList(); var viewModel = new MonumentAddViewModel { Oblasts = oblasts }; return(base.View(viewModel)); }
public int Add(MonumentAddViewModel model) { if (!this.oblastsService.CheckExistById(model.SelectedOblastId)) { throw new OblastNullException(); } Monument monument = this.mapper.Map <Monument>(model); monument.ImageUrl = this.imagesUploader.Upload(model.Photo, ImagesDirectory, ImagesFolderName); this.dbContext.Monuments.Add(monument); this.dbContext.SaveChanges(); return(monument.Id); }
public void Add_ShouldCreateNewMonumentCorrectly() { string description = "testDescription"; string name = "testName"; int oblastId = 1; this.dbContext.Oblasts.Add(new Oblast { Id = oblastId }); this.dbContext.SaveChanges(); var model = new MonumentAddViewModel { Description = description, Name = name, SelectedOblastId = oblastId, }; string imageUrl = "testUrl"; string imagesDirectory = "wwwroot/images/monuments/"; string imagesFolderName = "monuments"; var mockedImagesUploader = new Mock<ImagesUploader>(null); mockedImagesUploader .Setup(x => x.Upload(null, imagesDirectory, imagesFolderName)) .Returns(imageUrl); typeof(MonumentsService) .GetFields(BindingFlags.NonPublic | BindingFlags.Instance) .First(x => x.FieldType == typeof(ImagesUploader)) .SetValue(this.monumentsService, mockedImagesUploader.Object); this.monumentsService.Add(model); Monument result = this.dbContext.Monuments.First(); result.ShouldSatisfyAllConditions ( () => result.Description.ShouldBe(description), () => result.Name.ShouldBe(name), () => result.OblastId.ShouldBe(oblastId), () => result.ImageUrl.ShouldBe(imageUrl) ); }
public void Add_ThrowExceptionIfOblastWithGivenIdDoNotExist() { var model = new MonumentAddViewModel { SelectedOblastId = 1 }; Action testCode = () => this.monumentsService.Add(model); testCode.ShouldThrow<OblastNullException>(); }