Exemple #1
0
        public DetailsPage()
        {
            InitializeComponent();

            _viewModel     = HeroesViewModel.Instance;
            BindingContext = _viewModel.HeroeSelected;
        }
Exemple #2
0
        public async Task <IActionResult> Heroes(string name         = "", string startTime = "", string finishTime = "", //фильтр
                                                 int page            = 1,                                                 //пагинация
                                                 SortState sortOrder = SortState.NameAsc)                                 //сортировка
        {
            var hero = _context.Heroes.ToList().FirstOrDefault(h => h.Id == GetHeroIdFromToken(Request.Cookies[_tokenName]));

            if (hero != null)//если удалось получить учетку пользователя
            {
                IQueryable <Hero> heroes = _context.Heroes;
                var selectedStartTime    = _context.Heroes.Min(h => h.CreationTime); //устанавливаем минимальное значение фильтра времени
                var selectedFinishTime   = _context.Heroes.Max(h => h.CreationTime); //устанавливаем максимальное значение фильтра времени
                //фильтрация
                if (!string.IsNullOrWhiteSpace(name))
                {
                    heroes = heroes.Where(p => p.Name.ToLower().StartsWith(name.ToLower()));//если имя начинается с указаной строки БЕЗ учета регистра
                }
                if (!string.IsNullOrEmpty(startTime))
                {
                    selectedStartTime = ParseStringTime(startTime);
                    heroes            = heroes.Where(p => DateTime.Compare(p.CreationTime, selectedStartTime) > 0);//если создание героя позже указаной даты
                }
                if (!string.IsNullOrEmpty(finishTime))
                {
                    selectedFinishTime = ParseStringTime(finishTime);
                    heroes             = heroes.Where(p => DateTime.Compare(p.CreationTime, selectedFinishTime) < 0);//если создание героя раньше указаной даты
                }
                // сортировка
                switch (sortOrder)
                {
                case SortState.NameDesc:
                    heroes = heroes.OrderByDescending(s => s.Name);
                    break;

                default:
                    heroes = heroes.OrderBy(s => s.Name);
                    break;
                }
                // пагинация
                var count = await heroes.CountAsync();

                var items = await heroes.Skip((page - 1) *PAGE_SIZE).Take(PAGE_SIZE).ToListAsync();

                // формируем модель представления
                HeroesViewModel viewModel = new HeroesViewModel
                {
                    PageViewModel   = new PageViewModel(count, page, PAGE_SIZE),
                    SortViewModel   = new SortModel(sortOrder),
                    FilterViewModel = new HeroFilterModel(name, selectedStartTime, selectedFinishTime),
                    Heroes          = items
                };
                ViewData["menu-title"] = "Герои";
                ViewData["hero"]       = hero;
                return(View(viewModel));
            }
            else
            {
                return(RedirectToAction("Index"));
            }
        }
Exemple #3
0
        public ActionResult Heroes()
        {
            ISteampoweredApi steam = new SteampoweredApi(_key);
            var heroes             = steam.EconomyDota2Api.GetHeroes();

            HeroesViewModel heroVms = _mapper.Map <HeroesViewModel>(heroes);

            return(View(heroVms));
        }
        public static HeroesViewModel ToViewModel(this Hero hero)
        {
            var vm = new HeroesViewModel
            {
                Id        = hero.Id,
                Name      = hero.Name,
                ValveName = hero.ValveName
            };

            return(vm);
        }
        public static HeroesViewModel ToViewModel(this Heroes hero)
        {
            var vm = new HeroesViewModel
            {
                Id            = hero.Id,
                Name          = hero.Name,
                ValveName     = hero.ValveHeroName,
                CloudinaryUrl = hero.HeroImage.SmaillImageCloudinaryUrl
            };

            return(vm);
        }
        public async Task <ActionResult> Index()
        {
            var heroesVm = new HeroesViewModel();

            try
            {
                heroesVm = await _heroService.GetAllHeroesAsync();
            }
            catch (Exception ex)
            {
                heroesVm.HasError     = true;
                heroesVm.ErrorMessage = ex.InnerException?.Message ?? ex.Message;
            }

            return(View(heroesVm));
        }
Exemple #7
0
        public async Task <HeroesViewModel> GetAllHeroesAsync()
        {
            var heroes = await _heroRepository.GetAllHeroesWithReviews().ConfigureAwait(false);

            var heroesDto = _mapper.Map <List <HeroDTO> >(heroes);
            await heroesDto.CalculateMedian();

            var sortedHeroes = heroesDto.OrderByDescending(h => h.Median).ToList();
            var vm           = _mapper.Map <List <HeroViewModel> >(sortedHeroes);

            var result = new HeroesViewModel()
            {
                HasError = false,
                Heroes   = vm
            };

            return(result);
        }
Exemple #8
0
 private void HeroesBtn_Click(object sender, RoutedEventArgs e)
 {
     DataContext = new HeroesViewModel();
 }
Exemple #9
0
        public MainPage()
        {
            InitializeComponent();

            BindingContext = _viewModel = HeroesViewModel.Instance;
        }