Exemplo n.º 1
0
        public IActionResult BikesOfCurrentProvider(string providerId)
        {
            var res = _bikeService.GetBikesOfCurrentProvider(providerId);

            return(View(res));
        }
Exemplo n.º 2
0
        public IActionResult Index(string name, int page = 1, SortState sortOrder = SortState.NameAsc)
        {
            var currentUserName = User.Identity.Name;
            var userId          = _userManagerService.GetUserByName(currentUserName);

            int pageSize = 10;

            var source = _bikeService.GetBikesOfCurrentProvider(userId.Result.Id);

            if (!String.IsNullOrEmpty(name))
            {
                source = source.Where(p => p.Name.Contains(name));
            }

            switch (sortOrder)
            {
            case SortState.NameDesc:
                source = source.OrderByDescending(s => s.Name);
                break;

            case SortState.MaxSpeedAsc:
                source = source.OrderBy(s => s.MaxSpeed);
                break;

            case SortState.MaxSpeedDesc:
                source = source.OrderByDescending(s => s.MaxSpeed);
                break;

            case SortState.TypeEngineAsc:
                source = source.OrderBy(s => s.TypeEngine);
                break;

            case SortState.TypeEngineDesc:
                source = source.OrderByDescending(s => s.TypeEngine);
                break;

            case SortState.PowerAsc:
                source = source.OrderBy(s => s.Power);
                break;

            case SortState.PowerDesc:
                source = source.OrderByDescending(s => s.Power);
                break;

            case SortState.FuelAsc:
                source = source.OrderBy(s => s.Fuel);
                break;

            case SortState.FuelDesc:
                source = source.OrderByDescending(s => s.Fuel);
                break;

            case SortState.PriceAsc:
                source = source.OrderBy(s => s.Price);
                break;

            case SortState.PriceDesc:
                source = source.OrderByDescending(s => s.Price);
                break;

            default:
                source = source.OrderBy(s => s.Name);
                break;
            }

            var count = source.Count();
            var items = source.Skip((page - 1) * pageSize).Take(pageSize).ToList();

            PageViewModel pageViewModel = new PageViewModel(count, page, pageSize);
            BikeViewModel viewModel     = new BikeViewModel
            {
                PageViewModel       = pageViewModel,
                BikeFilterViewModel = new BikeFilterViewModel(name),
                BikeSortViewModel   = new BikeSortViewModel(sortOrder),
                Bikes = items
            };

            return(View(viewModel));
        }