示例#1
0
        public FilterSessionsPage()
        {
            InitializeComponent();

            if (Device.RuntimePlatform != Device.iOS)
            {
                ToolbarDone.Icon = "toolbar_close.png";
            }

            ToolbarDone.Command = new Command(async() =>
            {
                Settings.Current.FavoritesOnly    = showFavorites.IsFiltered;
                Settings.Current.ShowPastSessions = showPast.IsFiltered;
                vm.Save();
                await Navigation.PopModalAsync();
                if (Device.RuntimePlatform == Device.Android)
                {
                    MessagingService.Current.SendMessage("filter_changed");
                }
            });

            BindingContext = vm = new FilterSessionsViewModel(Navigation);



            LoadCategories();
        }
        public ViewResult FilterUpcomingSessions()
        {
            var upcomingSessions = new List <Session>();

            if (User.IsInRole("Admin"))
            {
                upcomingSessions = _sessionManager.GetAllSessionsWithIncludes()
                                   .Where(n => n.StartDate > DateTime.Now)
                                   .ToList();
            }
            else
            {
                upcomingSessions = _sessionManager.GetAllSessionsWithIncludes()
                                   .Where(n => n.StartDate > DateTime.Now && n.IsOpenForExpressionOfInterest)
                                   .ToList();
            }

            var result = new FilterSessionsViewModel
            {
                Sessions = upcomingSessions
            };

            return(View(result));
        }
示例#3
0
        public FilterSessionsPage()
        {
            this.InitializeComponent();

            if (Device.RuntimePlatform != Device.iOS)
            {
                this.ToolbarDone.Icon = "toolbar_close.png";
            }

            this.ToolbarDone.Command = new Command(
                async() =>
            {
                this.filterSessionsViewModel.Save();
                await this.Navigation.PopModalAsync();
                if (Device.RuntimePlatform == Device.Android)
                {
                    MessagingService.Current.SendMessage("filter_changed");
                }
            });

            this.BindingContext = this.filterSessionsViewModel = new FilterSessionsViewModel(this.Navigation);

            this.LoadCategories();
        }
        public ViewResult FilterSessions(string searchString, string yearSlider, string hrPerson, string nameOfLocation)
        {
            IQueryable <Session> allSessions;

            if (string.IsNullOrEmpty(searchString))
            {
                allSessions = _sessionManager.GetAllSessionsWithIncludes();
            }
            else
            {
                allSessions =
                    _sessionManager.GetAllSessionsWithIncludes()
                    .Where(n => n.Name.Contains(searchString) || n.Activity.Name.Contains(searchString));
            }
            // TODO: Take 10?


            // If yearSlider is min & max, then dont sort by startdate!
            var yearStart = 0;
            var yearEnd   = 10000;

            if (!string.IsNullOrEmpty(yearSlider))
            {
                var years = yearSlider.Split(',');
                yearStart = int.Parse(years[0]);
                yearEnd   = int.Parse(years[1]);

                if ((yearStart != MinYear) || (yearEnd != DateTime.Now.AddYears(1).Year))
                {
                    allSessions =
                        allSessions.Where(
                            n => (n.StartDate.Value.Year >= yearStart) && (n.StartDate.Value.Year <= yearEnd));
                }
            }

            if (!string.IsNullOrEmpty(hrPerson))
            {
                var hrPersonAsInt = int.Parse(hrPerson);
                allSessions = allSessions.Where(n => n.HrPersonId == hrPersonAsInt); //TODO error handling
            }

            if (!string.IsNullOrEmpty(nameOfLocation))
            {
                allSessions = allSessions.Where(n => n.Location.Name == nameOfLocation);
            }


            var allHrPersons = _personManager.GetAllHrPersons().OrderBy(n => n.FirstName).ToList();
            var result       = new FilterSessionsViewModel
            {
                Sessions       = allSessions.ToList(),
                HrPersons      = new SelectList(allHrPersons, "Id", "FullName"),
                NameOfLocation = nameOfLocation,
                YearStart      = yearStart,
                YearEnd        = yearEnd,
                MinYear        = MinYear,
                MaxYear        = DateTime.Now.AddYears(1).Year // Maximum year set to this year + 1
            };

            return(View(result));
        }