public JsonResult GetAllAdverts() { var adverts = this.advertService.GetAllAdverts().ToList(); var model = new AllAdvertsViewModel { AllAdverts = new Collection <AdvertViewModel>() }; foreach (var advert in adverts) { var modelAdvert = new AdvertViewModel { Title = advert.Title, Price = advert.Price, Description = advert.Description, Year = advert.Year, Id = advert.Id, Power = advert.Power, DistanceCoverage = advert.DistanceCoverage }; model.AllAdverts.Add(modelAdvert); } return(Json(model.AllAdverts, JsonRequestBehavior.AllowGet)); }
//[ValidateAntiForgeryToken] public ActionResult Update(AdvertViewModel model) { Guard.WhenArgument(model, nameof(model)).IsNull().Throw(); if (!ModelState.IsValid) { return(RedirectToAction("Index", "AjaxAdvert")); } var advert = this.advertService.GetById(model.Id); advert.Title = model.Title; advert.VehicleModelId = model.VehicleModelId; advert.Year = model.Year; advert.Price = model.Price; advert.Power = model.Power; advert.DistanceCoverage = model.DistanceCoverage; advert.CityId = model.CityId; advert.Description = model.Description; advert.Id = model.Id; advert.UserId = model.UserId; this.advertService.Update(advert); return(Json(model, JsonRequestBehavior.AllowGet)); }
public void Create_InvalidModelState_POST() { var categories = GetCatList(); var subcategories = GetSubCatList(); AdvertViewModel model = new AdvertViewModel { CategoryID = 2, ParentID = 1 }; Expression <Func <Category, bool> > where = c => c.ParentID == null; Expression <Func <Category, bool> > subwhere = x => x.ParentID == 1; var controller = new ClassifiedsController(mockAdvertService.Object, mockCatService.Object, mapper); controller.ModelState.AddModelError("category", "please select category");//set ModelState to be invalid var result = controller.Create(model) as ViewResult; var list = result.ViewData["Categories"] as IEnumerable <SelectListItem>; var subs = result.ViewData["SubCategories"] as IEnumerable <SelectListItem>; Assert.Equal(3, list.Count()); Assert.Equal(2, subs.Count()); Assert.True(subs.FirstOrDefault(x => x.Value.Equals("2")).Selected); Assert.True(list.FirstOrDefault(x => x.Value.Equals("1")).Selected); }
public IActionResult Edit(AdvertViewModel model) { if (ModelState.IsValid) { string[] includes = new string[] { "Detail" }; //remove pictures int count = advertService.RemoveAllPictures(model.ID); int changed = advertService.Update(mapper.Map <Advert>(model), keyValues: new object[] { model.ID }, includes: includes); HttpContext.Response.StatusCode = (int)HttpStatusCode.Created; if (changed > 0) { return(new JsonResult("Ádvert Updated!")); } else { return(new JsonResult("Process completed but no rows were affected")); } } //model.ParentID = model.ParentID; ViewBag.Categories = CatSelectListItems(model.ParentID); ViewBag.SubCategories = SubCatSelectListItems(model.ParentID, model.CategoryID); HttpContext.Response.StatusCode = (int)HttpStatusCode.OK; return(PartialView(model)); }
public void Update_Advert_Should_CallUpdateAdvertMethodOnce_WhenViewModelAreNotNull() { // Arrange var mockedAdvertService = new Mock <IAdvertService>(); var advertViewModel = new AdvertViewModel { Id = 15, Description = "Yoloolol", DistanceCoverage = 123321, Power = 123, Price = 1323, Title = "Best", Year = 2017 }; mockedAdvertService.Setup(a => a.GetById(It.IsAny <int>())).Returns(new Advert()); var adminController = new AdminController(mockedAdvertService.Object); // Act adminController.UpdateAdvert(advertViewModel); // Assert mockedAdvertService.Verify(a => a.UpdateAdvert(It.IsAny <Advert>()), Times.Once); }
public AdvertViewModel Get(int id) { var list = _categoryRepository.GetList(); var advert = ef.Adverts.Select(x => new { AdvertId = x.Id, AdvertTitle = x.Title, AdvertDescription = x.Desсription, AuthorUserName = x.User.Login, CategoryId = x.CategoryId, CategoruList = list }).FirstOrDefault(x => x.AdvertId == id); if (advert == null) { return(null); } AdvertViewModel model = new AdvertViewModel { Id = advert.AdvertId, Title = advert.AdvertTitle, Description = advert.AdvertDescription, AuthorName = advert.AuthorUserName, CategoryId = advert.CategoryId, CategoryList = list }; return(model); }
public void Updates_Advert_Should_CallUpdateMethodOnce_WhenViewModelAreNotNull() { // Arrange var mockedAdvertService = new Mock <IAdvertService>(); var advert = new Advert { Id = 15, Description = "Yoloolol", DistanceCoverage = 123321, Power = 123, Price = 1323, Title = "Best", Year = 2017 }; var advertViewModel = new AdvertViewModel(); mockedAdvertService.Setup(a => a.GetById(It.IsAny <int>())).Returns(advert); var adminController = new AdminController(mockedAdvertService.Object); // Act adminController.UpdateAdvert(advertViewModel); // Assert Assert.AreEqual(advertViewModel.Description, advert.Description); Assert.AreEqual(advertViewModel.DistanceCoverage, advert.DistanceCoverage); Assert.AreEqual(advertViewModel.Power, advert.Power); Assert.AreEqual(advertViewModel.Price, advert.Price); Assert.AreEqual(advertViewModel.Title, advert.Title); Assert.AreEqual(advertViewModel.Year, advert.Year); }
public void ReturnDefaultView_WithCorrectModel_WhenAdvertIsFinded() { // Arrange var createdOn = DateTime.Now; Advert advert = new Advert() { Id = 1, Title = "Title", CreatedOn = createdOn }; var advertViewModel = new AdvertViewModel() { Id = advert.Id, Title = advert.Title, CreatedOn = advert.CreatedOn }; var advertService = new Mock <IAdvertService>(); advertService.Setup(a => a.GetById(It.IsAny <int?>())).Returns(advert); var advertController = new AdvertController(advertService.Object); // Act and Assert advertController .WithCallTo(c => c.Detail(1)) .ShouldRenderDefaultView() .WithModel <AdvertViewModel>(x => { Assert.AreEqual(x.Id, advertViewModel.Id); Assert.AreEqual(x.Title, advertViewModel.Title); Assert.AreEqual(x.CreatedOn, advertViewModel.CreatedOn); }); }
public IActionResult Advert(Advert advert) { var userId = User.GetUserId(); advert.UserId = userId; if (!ModelState.IsValid) { var vm = new AdvertViewModel() { Advert = advert, Categories = _categoryService.GetCategories(), Heading = advert.Id == 0 ? "nowe ogłoszenie" : "edycja ogłoszenia" }; return(View("Advert", vm)); } if (advert.Id == 0) { _advertService.AddAdvert(advert); } else { _advertService.UpdateAdvert(advert, userId); } return(RedirectToAction("Adverts", "Advert")); }
public void InvokeAdvertServiceMethod_Update_Once_WhennModelStateIsValid() { // Arrange var advertViewModel = new AdvertViewModel() { Title = "advert", VehicleModelId = 1, UserId = "user id", Year = 100, Price = 100m, Power = 100, DistanceCoverage = 100, CityId = 1, Description = "ani description", CreatedOn = DateTime.Now }; var advertService = new Mock <IAdvertService>(); advertService.Setup(x => x.GetById(It.IsAny <int>())).Returns(new Advert()); var ajaxAdvertController = new CarAdverts.Web.Areas.Administrator.Controllers.AjaxAdvertController(advertService.Object); // Act ajaxAdvertController.Update(advertViewModel); // Assert advertService.Verify(a => a.Update(It.IsAny <Advert>()), Times.Once); }
//[ValidateAntiForgeryToken] public ActionResult Add(AdvertViewModel model) { Guard.WhenArgument(model, nameof(model)).IsNull().Throw(); if (!ModelState.IsValid) { return(RedirectToAction("Index", "AjaxAdvert")); } var advert = new Advert() { Title = model.Title, VehicleModelId = model.VehicleModelId, UserId = this.User.Identity.GetUserId(), Year = model.Year, Price = model.Price, Power = model.Power, DistanceCoverage = model.DistanceCoverage, CityId = model.CityId, Description = model.Description, CreatedOn = DateTime.Now }; this.advertService.CreateAdvert(advert, null); return(Json(model, JsonRequestBehavior.AllowGet)); }
private void ConvertToAdvert(AdvertViewModel advertViewModel, Advert advert) { advert.Title = advertViewModel.Title; advert.Price = advertViewModel.Price; advert.Description = advertViewModel.Description; advert.Year = advertViewModel.Year; advert.Power = advertViewModel.Power; advert.DistanceCoverage = advertViewModel.DistanceCoverage; }
// GET: DataShow public ActionResult Index() { using (var dbContext = new AdScoreShowDbContext()) { AdvertViewModel viewModel = new AdvertViewModel(); var datas = dbContext.Advertisements.Include(b => b.Brand).Include(s => s.Segment).ToList(); } return(View()); }
public async Task <IActionResult> Advert(AdvertViewModel advert) { #region Existing advert // Check if advert exists var adv = advertRepository.Adverts.FirstOrDefault(a => a.Id == advert.Id); if (adv != null) { //Authorize landlord var isAuthorized = await authorizationService.AuthorizeAsync(User, adv, "CanAccessAdvert"); if (!isAuthorized.Succeeded) { return(RedirectToAction("AccessDenied", "Account")); } //Check advert status if (adv.Status == AdvertStatus.Approved || adv.Status == AdvertStatus.Rejected) { ModelState.AddModelError("Status", "This advert has already been reviewed and can not be changed."); } } #endregion var photoIsValid = PhotoIsValid(advert.Photo); if (ModelState.IsValid) { // Get application Id from current user var userId = HttpContext.User.Claims .FirstOrDefault(c => c.Type == "UniAccomodationId")?.Value; // Create/overwrite advert var newAdvert = new Advert() { Id = advert.Id, Title = advert.Title, Description = advert.Description, MonthlyPrice = advert.MonthlyPrice, LandlordId = Int32.Parse(userId), PhotoUrl = (adv != null) ? adv.PhotoUrl : string.Empty, Status = (adv != null) ? adv.Status : AdvertStatus.Pending }; // Save advert advertRepository.SaveAdvert(newAdvert); // Upload photo and update advert photo url if valid if (photoIsValid) { newAdvert.PhotoUrl = await SavePhoto(advert.Photo, userId, newAdvert.Id.ToString()); advertRepository.SaveAdvert(newAdvert); } TempData["Message"] = $"Advert \"{advert.Title}\" was saved"; return(RedirectToAction("Index")); } return(View(advert)); }
public async Task <IActionResult> MyAdverts(string name) { Users user = await _userManager.FindByNameAsync(name); AdvertViewModel advertViewModel = new AdvertViewModel(); advertViewModel.allAdverts = _repositoryWrapper.Advert.FindByCondition(i => i.IdUser == user.Id); var AllAdvertses = _context.AllAdverts.Include(i => i.IdUserNavigation).Include(i => i.IdAdvertsNavigation) .Include(i => i.IdApartamentNavigation).Where(i => i.IdUser == user.Id); return(View(AllAdvertses)); }
public void CreateValidModelState_POST() { AdvertViewModel model = GetAdvert(); var controller = new ClassifiedsController(mockAdvertService.Object, mockCatService.Object, mapper); var result = controller.Create(model) as RedirectToActionResult; Assert.Equal("Index", result.ActionName); Assert.Equal("Classifieds", result.ControllerName); mockAdvertService.Verify(m => m.Create(It.IsAny <Advert>()), Times.Once()); mockAdvertService.Verify(m => m.Save(), Times.Once()); }
/// <summary> /// Create Advert object /// </summary> /// <returns></returns> private AdvertViewModel GetAdvert() { var category = new CategoryViewModel { ID = 6, Name = "subcat2", ParentID = 2 }; AdPictureViewModel picture1 = new AdPictureViewModel { ID = 1, Uuid = "0b83b507-8c11-4c0e-96d2-5fd773d525f7", CdnUrl = "https://ucarecdn.com/0b83b507-8c11-4c0e-96d2-5fd773d525f7/", Name = "about me sample 3.PNG", Size = 135083 }; AdPictureViewModel picture2 = new AdPictureViewModel { ID = 2, Uuid = "c1df9f17-61ad-450a-87f9-d846c312dae0", CdnUrl = "https://ucarecdn.com/c1df9f17-61ad-450a-87f9-d846c312dae0/", Name = "about me sample 4.PNG", Size = 146888 }; List <AdPictureViewModel> pictures = new List <AdPictureViewModel> { picture1, picture2 }; AdvertDetailViewModel advertDetail = new AdvertDetailViewModel { ID = 8, Title = "Black Toyota for sale", Body = "Black 4x4 Toyota cruiser", Email = "pearl@email", GroupCdn = "GroupCdnValue", GroupCount = 2, GroupSize = 2048, GroupUuid = "GroupUuidValue", Location = "Gaborone", AdPictures = pictures }; AdvertViewModel advert = new AdvertViewModel { ID = 8, Status = EnumTypes.AdvertStatus.SUBMITTED.ToString(), CategoryID = 6, Detail = advertDetail, Category = category }; return(advert); }
/// <summary> /// Return advert details /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult Detail(long id) { Expression <Func <Advert, object> >[] include = { a => a.Detail, a => a.Detail.AdPictures, a => a.Category, a => a.User, a => a.User.UserDetail }; AdvertViewModel model = mapper.Map <AdvertViewModel>(advertService.Find(id, include)); return(PartialView(model)); }
/// <summary> /// Redirects user to Buy View /// </summary> /// <param name="advert">The advert that a certain advertiser wishes to buy</param> /// <returns>Returns different views depending on the situation</returns> public async Task <IActionResult> Buy(Advert advert = null) { User user = _SessionHelper.GetSessionUser(HttpContext); if (user == null) { return(RedirectToAction("Index", "Home")); } AdvertViewModel advertViewModel = new AdvertViewModel() { User = user, Advert = await _Adhelper.ShowAd(), advert = advert }; return(View(advertViewModel)); }
public IActionResult Create() { var model = new AdvertViewModel(); var userId = HttpContext.User.Claims.FirstOrDefault(u => u.Type == "UserId").Value; model.UserID = long.Parse(userId); //Initially there's no selected item ViewBag.Categories = CatSelectListItems(-1); ViewBag.SubCategories = new List <SelectListItem>();//empty initially return(View(model)); }
public void ReturnJsonWithCorrectModel_WhennModelStateIsValid() { // Arrange // This code mock User.Identity.GetUserId() var context = new Mock <HttpContextBase>(); var identity = new GenericIdentity("*****@*****.**"); identity.AddClaim(new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "1")); var principal = new GenericPrincipal(identity, new[] { "user" }); context.Setup(s => s.User).Returns(principal); // var advertViewModel = new AdvertViewModel() { Title = "advert", VehicleModelId = 1, Year = 100, Price = 100m, Power = 100, DistanceCoverage = 100, CityId = 1, Description = "ani description", CreatedOn = DateTime.Now }; var advertService = new Mock <IAdvertService>(); var ajaxAdvertController = new CarAdverts.Web.Areas.Administrator.Controllers.AjaxAdvertController(advertService.Object); ajaxAdvertController.ControllerContext = new ControllerContext(context.Object, new RouteData(), ajaxAdvertController); // Act and Arrange ajaxAdvertController .WithCallTo(x => x.Add(advertViewModel)) .ShouldReturnJson(data => { Assert.AreEqual(data.Title, advertViewModel.Title); Assert.AreEqual(data.VehicleModelId, advertViewModel.VehicleModelId); Assert.AreEqual(data.Year, advertViewModel.Year); Assert.AreEqual(data.Price, advertViewModel.Price); Assert.AreEqual(data.Power, advertViewModel.Power); Assert.AreEqual(data.DistanceCoverage, advertViewModel.DistanceCoverage); Assert.AreEqual(data.CityId, advertViewModel.CityId); Assert.AreEqual(data.Description, advertViewModel.Description); Assert.AreEqual(data.CreatedOn, advertViewModel.CreatedOn); }); }
public IActionResult Create(AdvertViewModel model) { if (ModelState.IsValid) { model.SubmittedDate = DateTime.Now; model.Status = EnumTypes.AdvertStatus.SUBMITTED.ToString(); advertService.Create(mapper.Map <Advert>(model)); advertService.Save(); return(RedirectToAction("Index", "Classifieds")); } ViewBag.Categories = CatSelectListItems(model.ParentID); ViewBag.SubCategories = SubCatSelectListItems(model.ParentID, model.CategoryID); return(View(model)); }
/// <summary> /// Edit advert GET /// </summary> /// <param name="id"></param> /// <returns></returns> public IActionResult Edit(long id) { //get advert Expression <Func <Advert, object> >[] include = { a => a.Detail, a => a.Detail.AdPictures, a => a.Category }; AdvertViewModel model = mapper.Map <AdvertViewModel>(advertService.Find(id, include)); model.ParentID = (int)model.Category.ParentID; ViewBag.Categories = CatSelectListItems(model.ParentID); ViewBag.SubCategories = SubCatSelectListItems(model.ParentID, model.CategoryID); return(PartialView(model)); }
public string UpdateAdvert(AdvertViewModel advertViewModel) { var advert = this.advertService.GetById(advertViewModel.Id); this.ConvertToAdvert(advertViewModel, advert); var msg = "Update Advert Successfully!"; if (ModelState.IsValid) { this.advertService.UpdateAdvert(advert); } else { msg = "Invalid Model State!!!"; } return(msg); }
public BookPage(String BookName, String BookAuthor, String BookCategory, String Condition, String ShareType, String Description, String PublisherEmail, byte[] image) { InitializeComponent(); BindingContext = new AdvertViewModel(); var back_tap = new TapGestureRecognizer(); back_tap.Tapped += async(s, e) => { await Navigation.PopAsync(); }; back.GestureRecognizers.Add(back_tap); if (ShareType == "Donate") { imageBG.BackgroundColor = Color.FromHex("#1B9101"); } if (ShareType == "Exchange") { imageBG.BackgroundColor = Color.FromHex("#00B5B9"); } if (ShareType == "Donate") { BgMessage.BackgroundColor = Color.FromHex("#1B9101"); } if (ShareType == "Exchange") { BgMessage.BackgroundColor = Color.FromHex("#00B5B9"); } bookName.Text = BookName; bookAuthor.Text = BookAuthor; bookCategory.Text = BookCategory; condition.Text = Condition; shareType.Text = ShareType; description.Text = Description; adImage.Source = ImageSource.FromStream(() => new MemoryStream(image)); getPublisherInfo(PublisherEmail); }
public string DeleteAdvert(AdvertViewModel advertViewModel) { var advert = this.advertService.GetById(advertViewModel.Id); this.ConvertToAdvert(advertViewModel, advert); var msg = "Deleted Advert Succefully"; if (ModelState.IsValid) { this.advertService.DeleteAdvertById(advert.Id); } else { msg = "nvalid Model State!!!"; } return(msg); }
public IActionResult Advert(int id = 0) { var userId = User.GetUserId(); var advert = id == 0 ? new Advert { Id = 0, UserId = userId, StartDate = DateTime.Now, IsActive = true } : _advertService.GetAdvert(id); var vm = new AdvertViewModel() { Advert = advert, Categories = _categoryService.GetCategories(), Heading = id == 0 ? "nowe ogłoszenie" : "edycja ogłoszenia" }; return(View(vm)); }
public void ReturnJsonWithCorrectModel_WhennModelStateIsValid() { // Arrange var advertViewModel = new AdvertViewModel() { Title = "advert", VehicleModelId = 1, Year = 100, Price = 100m, Power = 100, DistanceCoverage = 100, CityId = 1, Description = "ani description", CreatedOn = DateTime.Now }; var advertService = new Mock <IAdvertService>(); advertService.Setup(x => x.GetById(It.IsAny <int>())).Returns(new Advert()); var ajaxAdvertController = new CarAdverts.Web.Areas.Administrator.Controllers.AjaxAdvertController(advertService.Object); // Act and Arrange ajaxAdvertController .WithCallTo(x => x.Update(advertViewModel)) .ShouldReturnJson(data => { Assert.AreEqual(data.Title, advertViewModel.Title); Assert.AreEqual(data.VehicleModelId, advertViewModel.VehicleModelId); Assert.AreEqual(data.Year, advertViewModel.Year); Assert.AreEqual(data.Price, advertViewModel.Price); Assert.AreEqual(data.Power, advertViewModel.Power); Assert.AreEqual(data.DistanceCoverage, advertViewModel.DistanceCoverage); Assert.AreEqual(data.CityId, advertViewModel.CityId); Assert.AreEqual(data.Description, advertViewModel.Description); Assert.AreEqual(data.CreatedOn, advertViewModel.CreatedOn); }); }