public IActionResult Announce(AnnounceViewModel model) { var date = DateTime.Now; if (ModelState.IsValid) { string uniqueFileName = null; if (model.ImageFile != null) { uniqueFileName = Utils.FileProcess.UploadFile(model.ImageFile, hostingEnvironment); } var article = new Article { Name = model.Name, Category = model.getCategory(), Price = model.Price, Description = model.Description, SellerUserName = User.Identity.Name, ImageFilePath = uniqueFileName, }; context.Articles.Add(article); context.SaveChanges(); var announcement = new Announcement { Title = model.Title, Date = date, ArticleId = article.Id, }; context.Announcements.Add(announcement); context.SaveChanges(); return(RedirectToAction("Announcements")); } return(View(model)); }
public void ParticipantCanShowAnnounceForm() { ViewResult res = _controller.Announce(_ownerGranted, 4) as ViewResult; AnnounceViewModel vm = (AnnounceViewModel)res?.Model; Assert.Equal(_context.Label2, vm.Label); Assert.Equal("", vm.Message); }
public IActionResult Announce(Participant participant, int id) { // Show announce form var label = _labelRepository.GetByGroup(id); var vm = new AnnounceViewModel { Label = label, Message = "" }; return(View(vm)); }
public IActionResult AnnouncementDetails(AnnounceViewModel model) { var date = DateTime.Now; var comment = new Comment { Description = model.CommentFormDescription, UserId = User.Identity.Name, PubDate = date, AnnouncementId = model.Id, }; context.Comments.Add(comment); context.SaveChanges(); return(RedirectToAction("AnnouncementDetails", model.Id)); }
public IActionResult AnnouncementDetails(int?id) { var announcement = context.Announcements.FirstOrDefault(e => e.Id.Equals(id)); var article_ = context.Articles.FirstOrDefault(e => e.Id.Equals(announcement.ArticleId)); var comments = context.Comments.Where(e => e.AnnouncementId.Equals(id)).OrderByDescending(e => e.PubDate); var userArticles = from userArticle in context.ShoppingCar join article in context.Articles on userArticle.ArticleId equals article.Id select new { article.Id, article.Name, article.Price, article.Category, userArticle.UserName, article.SellerUserName }; userArticles = userArticles.Where(e => e.UserName.Equals(User.Identity.Name)); bool inCar = userArticles.FirstOrDefault(e => e.Id.Equals(id)) != null; var obj = new AnnounceViewModel { Id = announcement.Id, ArticleId = article_.Id, Title = announcement.Title, Date = announcement.Date, Name = article_.Name, SellerUserName = article_.SellerUserName, Category = article_.Category.ToString(), Description = article_.Description, Price = article_.Price, Comments = comments.ToList(), ImagePath = article_.ImageFilePath, InCar = inCar, Sold = article_.Sold, Owner = article_.Owner }; return(View(obj)); }
public IActionResult Announcements(double?maxPrice, double?minPrice, string searchText = "", string category = "", int page = 1, string seller = "", string state = "All") { var announcements = from announcement in context.Announcements join article in context.Articles on announcement.ArticleId equals article.Id select new AnnounceViewModel { Id = announcement.Id, ArticleId = article.Id, Title = announcement.Title, SellerUserName = article.SellerUserName, Date = announcement.Date, Name = article.Name, Category = article.Category.ToString(), Price = article.Price, Description = article.Description, Sold = article.Sold, Owner = article.Owner, }; // Filter by category if (!string.IsNullOrEmpty(category) && category.ToLower() != "all") { announcements = announcements.Where(e => e.getCategory() == AnnounceViewModel.getCategory(category)); } // Filter by price if (minPrice != null) { announcements = announcements.Where(e => e.Price >= minPrice); } if (maxPrice != null) { announcements = announcements.Where(e => e.Price <= maxPrice); } // Filter by text if (!string.IsNullOrEmpty(searchText)) { announcements = announcements.Where(e => e.Description.Contains(searchText, StringComparison.CurrentCultureIgnoreCase) || e.Title.Contains(searchText, StringComparison.CurrentCultureIgnoreCase) || e.SellerUserName.Contains(searchText, StringComparison.CurrentCultureIgnoreCase) ); } if (!string.IsNullOrEmpty(seller)) { announcements = announcements.Where(e => e.SellerUserName.Equals(seller)); } if (!User.IsInRole("Admin")) { announcements = announcements.Where(e => !e.Sold); } else { if (state.ToLower() == "free") { announcements = announcements.Where(e => !e.Sold); } else if (state.ToLower() == "sold") { announcements = announcements.Where(e => e.Sold); } } int amount = announcements.Count(); announcements = announcements.OrderByDescending(e => e.Date).Skip(4 * (page - 1)).Take(4); return(View(new AnnouncementsViewModel { Announcements = announcements, Page = page, SearchText = searchText, MinPrice = minPrice, MaxPrice = maxPrice, Category = category, TotalPages = (int)Math.Ceiling((decimal)amount / 4), Seller = seller, State = state })); }
public IActionResult Auctions(double?minPrice, double?maxPrice, string searchText = "", string aCategory = "All", string state = "", int page = 1) { var auctions = from article in context.Articles join auction in context.Auctions on article.Id equals auction.ArticleId select new { auction.Id, article.Name, article.Category, auction.Title, auction.Details, auction.SellerUserName, auction.CurrentPrice, auction.Begin, auction.End, auction.ArticleId }; if (minPrice != null) { auctions = auctions.Where(e => minPrice <= e.CurrentPrice); } if (maxPrice != null) { auctions = auctions.Where(e => e.CurrentPrice <= maxPrice); } if (!string.IsNullOrEmpty(searchText)) { auctions = auctions .Where(e => e.Title.Contains(searchText, StringComparison.CurrentCultureIgnoreCase) || e.Details.Contains(searchText, StringComparison.CurrentCultureIgnoreCase) || e.Name.Contains(searchText, StringComparison.CurrentCultureIgnoreCase) || e.Category.ToString().Contains(searchText, StringComparison.CurrentCultureIgnoreCase) || e.SellerUserName.ToString().Contains(searchText, StringComparison.CurrentCultureIgnoreCase) ); } if (!string.IsNullOrEmpty(aCategory) && aCategory.ToLower() != "all") { auctions = auctions.Where(e => AnnounceViewModel.getCategory(aCategory) == e.Category); } if (!string.IsNullOrEmpty(state) && state.ToLower() != "all") { DateTime now = DateTime.Now; if (state.ToLower() == "closed") { auctions = auctions.Where(e => e.End.CompareTo(now) == -1); } if (state.ToLower() == "coming") { auctions = auctions.Where(e => e.Begin.CompareTo(now) == 1); } if (state.ToLower() == "running") { auctions = auctions.Where(e => e.Begin.CompareTo(now) <= 0 && e.End.CompareTo(now) >= 0); } } int amount = auctions.Count(); auctions = auctions.OrderByDescending(e => e.Begin).Skip(4 * (page - 1)).Take(4); List <Auction> listAuctions = new List <Auction>(); foreach (var auction in auctions) { listAuctions.Add(new Auction { Id = auction.Id, ArticleId = auction.ArticleId, Title = auction.Title, Details = auction.Details, SellerUserName = auction.SellerUserName, CurrentPrice = auction.CurrentPrice, Begin = auction.Begin, End = auction.End }); } return(View(new AuctionsViewModel { Auctions = listAuctions, Page = page, SearchText = searchText, MinPrice = minPrice, MaxPrice = maxPrice, ACategory = aCategory, State = state, TotalPages = (int)Math.Ceiling((decimal)amount / 4) })); }