示例#1
0
        public async Task FetchData()
        {
            IsBusy = true;

            var items = new List <LogListItemViewModel>();
            var dtos  = await _logService.GetItems();

            foreach (var i in dtos.Where(x => x.JaktId == ID).ToList())
            {
                var vm = _logListItemViewModelFactory();
                vm.BeforeNavigate(i);
                await vm.OnAppearing();

                items.Add(vm);
            }
            items = items.OrderByDescending(o => o.Date).ToList();
            var groups     = items.GroupBy(g => g.Date.ToShortDateString()).OrderByDescending(o => o.Key);
            var groupItems = new ObservableCollection <LogGroup>();

            foreach (var g in groups)
            {
                var jg = new LogGroup(g.Key, "");
                foreach (var item in g.OrderByDescending(o => o.Date))
                {
                    jg.Add(items.Single(h => h.ID == item.ID));
                }
                groupItems.Add(jg);
            }

            LogListItemViewModels = groupItems;

            //items.ForEach(i => Items.Add(i));

            var hunters = await _huntFactory.CreateHunterPickerItems(_dto.JegerIds);

            var dogs = await _huntFactory.CreateDogPickerItems(_dto.DogIds);

            SelectedHuntersAndDogs = hunters.Where(h => h.Selected).ToList();
            SelectedHuntersAndDogs.AddRange(dogs.Where(h => h.Selected).ToList());

            IsBusy = false;
        }
示例#2
0
        public StatsFilterViewModel(INavigator navigator, IHuntFactory huntFactory)
        {
            _huntFactory = huntFactory;
            _navigator   = navigator;

            DateRangeCommand = new Command((obj) =>
            {
                SetDate(obj);
                FilterChangedAction?.Invoke();
            });

            FilterCommand = new Command(() =>
            {
                Visible = !Visible;
            });

            FilterHunterCommand = new Command(async() => {
                var selected = new List <string>();
                if (SelectedHunter != null)
                {
                    selected.Add(SelectedHunter.ID);
                }
                var hunterItems = await _huntFactory.CreateHunterPickerItems(selected);

                await _navigator.PushAsync <InputPickerViewModel>(
                    afterNavigate: async(arg) => await arg.InitializeAsync(
                        value: hunterItems,
                        completeAction: (obj) => {
                    SelectedHunter = obj?.FirstOrDefault(x => x.Selected);
                    FilterChangedAction?.Invoke();
                }
                        )
                    );
            });

            SetDate("Alle");
        }
示例#3
0
        private async Task PopulatePickers()
        {
            var jegerIds = new List <string> {
                _dto.JegerId
            };
            var dogIds = new List <string> {
                _dto.DogId
            };

            HuntersPickers = await _huntFactory.CreateHunterPickerItems(jegerIds, _dto.JaktId);

            DogsPickers = await _huntFactory.CreateDogPickerItems(dogIds, _dto.JaktId);

            SpeciesPickers = await _huntFactory.CreateSpeciePickerItems(_dto.ArtId);

            HitsPickers     = new List <PickerItem>();
            ShotsPickers    = new List <PickerItem>();
            ObservedPickers = new List <PickerItem>();

            int max = 100;

            for (var i = 1; i <= max; i++)
            {
                HitsPickers.Add(new PickerItem
                {
                    ID       = i.ToString(),
                    Title    = i.ToString(),
                    Selected = i == _dto.Treff
                });

                ObservedPickers.Add(new PickerItem
                {
                    ID       = i.ToString(),
                    Title    = i.ToString(),
                    Selected = i == _dto.Sett
                });

                ShotsPickers.Add(new PickerItem
                {
                    ID       = i.ToString(),
                    Title    = i.ToString(),
                    Selected = i == _dto.Skudd
                });
            }
            ////Add custom value pickers too
            //HitsPickers.Add(new PickerItem
            //{
            //    ID = _dto.Treff.ToString(),
            //    Title = _dto.Treff.ToString(),
            //    Selected = _dto.Treff > max,
            //    Custom = true
            //});

            //ObservedPickers.Add(new PickerItem
            //{
            //    ID = _dto.Sett.ToString(),
            //    Title = _dto.Sett.ToString(),
            //    Selected = _dto.Sett > max,
            //    Custom = true
            //});

            //ShotsPickers.Add(new PickerItem
            //{
            //    ID = _dto.Skudd.ToString(),
            //    Title = _dto.Skudd.ToString(),
            //    Selected = _dto.Skudd > max,
            //    Custom = true
            //});

            //Add hunter and dog
            if (!string.IsNullOrEmpty(_dto.JegerId))
            {
                HunterAndDog.Add(HuntersPickers.SingleOrDefault(h => h.Selected));
            }
            if (!string.IsNullOrEmpty(_dto.DogId))
            {
                HunterAndDog.Add(DogsPickers.SingleOrDefault(h => h.Selected));
            }
        }
示例#4
0
 private async Task GetHunters()
 {
     Hunters = await _huntFactory.CreateHunterPickerItems(_dto.JegerIds);
 }