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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 6
0
        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);
            });
        }
Ejemplo n.º 9
0
        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;
 }
Ejemplo n.º 13
0
 // 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());
 }
Ejemplo n.º 14
0
        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));
        }
Ejemplo n.º 15
0
        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);
        }
Ejemplo n.º 18
0
        /// <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));
        }
Ejemplo n.º 20
0
        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);
            });
        }
Ejemplo n.º 22
0
        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));
        }
Ejemplo n.º 23
0
        /// <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);
        }
Ejemplo n.º 25
0
        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);
        }
Ejemplo n.º 27
0
        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);
            });
        }