Example #1
0
 public ActionResult Confirm(int id, int?currentCategoryId, PerformerSorts performersSort)
 {
     _userService.ConfirmPerformer(id);
     _unitOfWork.Save();
     return(RedirectToAction("Index", new
     {
         newApplications = _userService.GetAll().Count(u => !u.AdminStatus && u.IsPerformer) > 0,
         categoryId = currentCategoryId,
         sort = performersSort
     }));
 }
Example #2
0
        public ActionResult Reject(int id, int?currentCategoryId, PerformerSorts performersSort)
        {
            var pictureId = _userService.FindById(id).PictureId;

            _userService.RejectPerformer(id);
            _pictureService.Delete(pictureId);
            _unitOfWork.Save();
            return(RedirectToAction("Index", new
            {
                newApplications = _userService.GetAll().Count(u => !u.AdminStatus && u.IsPerformer) > 0,
                categoryId = currentCategoryId,
                sort = performersSort
            }));
        }
Example #3
0
        public ActionResult Index(int?page, int?categoryId, string searchName,
                                  bool newApplications = false, PerformerSorts sort = PerformerSorts.New)
        {
            var perfomersDto = _userService.GetAll().ToList().Where(p => p.IsPerformer);

            if (newApplications && !perfomersDto.Any(o => !o.AdminStatus))
            {
                ViewBag.AdminMessage = "No new performers";
            }

            ViewBag.NewPerformerssAmountString = string.Empty;
            var newPerformersAmount = perfomersDto.Count(model => !model.AdminStatus);

            if (newPerformersAmount > 0)
            {
                ViewBag.NewPerformersAmountString = " + " + newPerformersAmount;
            }

            ViewBag.IsNewPage = false;
            if (newApplications)
            {
                perfomersDto      = perfomersDto.Where(model => !model.AdminStatus);
                ViewBag.IsNewPage = true;
            }
            else
            {
                perfomersDto = perfomersDto.Where(model => model.AdminStatus);
            }

            ViewBag.ItemsAmount = perfomersDto.Count();
            var categoriesDto = _categoryService.GetAll().ToList();

            Mapper.Initialize(cfg => cfg.CreateMap <CategoryViewModelBLL, CategoryViewModel>()
                              .ForMember("ItemsAmount", opt => opt.MapFrom(c => c.Performers.Count(o =>
                                                                                                   o.IsPerformer && o.AdminStatus != newApplications
                                                                                                   )))
                              );
            var categories = Mapper.Map <List <CategoryViewModelBLL>, List <CategoryViewModel> >(categoriesDto);

            ViewBag.CategoriesList = categories;

            if (categoryId != null)
            {
                perfomersDto = perfomersDto.Where(o => o.CategoriesBll.Select(c => c.Id).Contains(categoryId.Value));
                ViewBag.CurrentCategoryId = categoryId;
            }

            if (searchName != null)
            {
                perfomersDto = perfomersDto.Where(o => o.Name.ToLower().Contains(searchName.ToLower()) ||
                                                  o.Surname.ToLower().Contains(searchName.ToLower()) || o.Company.ToLower().Contains(searchName.ToLower()));
            }
            ViewBag.SearchName = searchName;
            if (!perfomersDto.Any())
            {
                ViewBag.SearchMessage = "No performers found";
            }

            switch (sort)
            {
            case PerformerSorts.New:
                perfomersDto = perfomersDto.OrderByDescending(o => o.RegistrationDate);
                break;

            case PerformerSorts.Best:
                perfomersDto = perfomersDto.OrderBy(o => o.Rating);
                break;
            }
            ViewBag.Sort = sort;

            Mapper.Initialize(cfg => cfg.CreateMap <ClientViewModelBLL, IndexPerformerViewModel>()
                              .ForMember("Name", opt => opt.MapFrom(c => c.Surname + " " + c.Name))
                              .ForMember("Category", opt => opt.MapFrom(c => c.CategoriesBll.First().Name +
                                                                        (c.CategoriesBll.Count > 1 ? " + " + (c.CategoriesBll.Count - 1).ToString() + " more" : string.Empty)))
                              .ForMember("Image", opt => opt.MapFrom(c => c.PictureId == null
                    ? System.IO.File.ReadAllBytes(Server.MapPath(DefaultImageName))
                    : _pictureService.FindById(c.PictureId.Value).Image))
                              );
            var performers = Mapper.Map <IEnumerable <ClientViewModelBLL>, List <IndexPerformerViewModel> >(perfomersDto);

            var performerNames = performers.Select(o => o.Name).ToArray();
            var filteredNames  = performerNames.Where(o => o.IndexOf(searchName, StringComparison.InvariantCultureIgnoreCase) >= 0);

            ViewBag.Names = Json(filteredNames, JsonRequestBehavior.AllowGet);

            int pageSize   = 3;
            int pageNumber = (page ?? 1);

            return(View(performers.ToPagedList(pageNumber, pageSize)));
        }
Example #4
0
        public ActionResult Details(int id, int?categoryId, bool?newApplications,
                                    PerformerSorts sort = PerformerSorts.New, bool emptyComment = false)
        {
            var performerDto = _userService.FindById(id);

            if (performerDto == null)
            {
                return(HttpNotFound());
            }

            var commentsDto = _commentService.GetAllForPerformer(id);

            Mapper.Initialize(cfg => cfg.CreateMap <CommentViewModelBLL, IndexCommentViewModel>()
                              .ForMember("CustomerName", opt => opt.MapFrom(c => _userService.FindById(c.CustomerId).Surname
                                                                            + " " + _userService.FindById(c.CustomerId).Name))
                              .ForMember("Image", opt => opt.MapFrom(c => _userService.FindById(c.CustomerId).PictureId == null ||
                                                                     (_userService.FindById(c.CustomerId).PictureId != null &&
                                                                      (!_userService.FindById(c.CustomerId).AdminStatus || !_userService.FindById(c.CustomerId).IsPerformer))
                    ? System.IO.File.ReadAllBytes(Server.MapPath(DefaultImageName))
                    : _pictureService.FindById(_userService.FindById(c.CustomerId).PictureId.Value).Image))
                              );
            var comments        = Mapper.Map <IEnumerable <CommentViewModelBLL>, List <IndexCommentViewModel> >(commentsDto);
            var currentCustomer = _userService.FindById(User.Identity.GetUserId <int>());

            ViewBag.CustomerImage = currentCustomer?.PictureId == null || (currentCustomer?.PictureId != null &&
                                                                           (!currentCustomer.AdminStatus || !currentCustomer.IsPerformer))
                ? System.IO.File.ReadAllBytes(Server.MapPath(DefaultImageName))
                : _pictureService.FindById(_userService.FindById(User.Identity.GetUserId <int>()).PictureId.Value).Image;

            var categoriesDto =
                _categoryService.GetAll().Where(c => c.Performers.Select(p => p.Id).Contains(id)).ToList();

            Mapper.Initialize(cfg => cfg.CreateMap <CategoryViewModelBLL, CategoryViewModel>()
                              .ForMember("ItemsAmount", opt => opt.MapFrom(c => c.Performers.Count(o =>
                                                                                                   o.IsPerformer && o.AdminStatus != newApplications
                                                                                                   )))
                              );
            var categories = Mapper.Map <List <CategoryViewModelBLL>, List <CategoryViewModel> >(categoriesDto);

            Mapper.Initialize(cfg => cfg.CreateMap <ClientViewModelBLL, DetailsPerformerViewModel>()
                              .ForMember("Categories", opt => opt.MapFrom(c => categories))
                              .ForMember("Comments", opt => opt.MapFrom(c => comments))
                              .ForMember("Name", opt => opt.MapFrom(c => c.Surname + " " + c.Name))
                              .ForMember("CustomersId", opt => opt.MapFrom(c => c.CommentsBll.Select(m => m.CustomerId)))
                              .ForMember("Image", opt => opt.MapFrom(c => c.PictureId == null
                    ? System.IO.File.ReadAllBytes(Server.MapPath(DefaultImageName))
                    : _pictureService.FindById(c.PictureId.Value).Image))
                              );
            DetailsPerformerViewModel performer = Mapper.Map <ClientViewModelBLL, DetailsPerformerViewModel>(performerDto);

            ViewBag.CurrentCategoryId = categoryId;
            ViewBag.IsNewPage         = newApplications;
            ViewBag.CommentIsEmpty    = emptyComment;
            ViewBag.Sort         = sort;
            ViewBag.ShowContacts = Request.IsAuthenticated && (_userService.FindById(User.Identity.GetUserId <int>())
                                                               .OrdersBll.SelectMany(o => o.Responses)
                                                               .Count(o => o.UserId == id) != 0 ||
                                                               User.Identity.GetUserId <int>() == id);
            ViewBag.Rating = new SelectList(new List <string>()
            {
                "☆☆☆☆☆", "★☆☆☆☆", "★★☆☆☆", "★★★☆☆", "★★★★☆", "★★★★★"
            });

            return(View(performer));
        }