public HomeViewModel() { Welcome = new WelcomeViewModel(); Sessions = new SessionsViewModel(); Twitter = new TwitterViewModel(); Favorites = new FavoritesViewModel(); }
/// <summary> /// Provides a deterministic way to create the Sessions property. /// </summary> public static void CreateSessions() { if (_sessions == null) { _sessions = new SessionsViewModel(); } }
public SessionsPage() { InitializeComponent(); //loggedIn = Settings.Current.Email; showFavs = Settings.Current.FavoritesOnly; showPast = Settings.Current.ShowPastSessions; showAllCategories = Settings.Current.ShowAllCategories; filteredCategories = Settings.Current.FilteredCategories; BindingContext = vm = new SessionsViewModel(Navigation); if (Device.OS == TargetPlatform.Windows || Device.OS == TargetPlatform.WinPhone) { ToolbarItems.Add(new ToolbarItem { Text = "Refresh", Icon = "toolbar_refresh.png", Command = vm.ForceRefreshCommand }); } filterItem = new ToolbarItem { Text = "Filter" }; if (Device.OS != TargetPlatform.iOS) { filterItem.Icon = "toolbar_filter.png"; } filterItem.Command = new Command(async() => { if (vm.IsBusy) { return; } App.Logger.TrackPage(AppPage.Filter.ToString()); await NavigationService.PushModalAsync(Navigation, new EvolveNavigationPage(new FilterSessionsPage())); }); ToolbarItems.Add(filterItem); ListViewSessions.ItemSelected += async(sender, e) => { var session = ListViewSessions.SelectedItem as Session; if (session == null) { return; } var sessionDetails = new SessionDetailsPage(session); App.Logger.TrackPage(AppPage.Session.ToString(), session.Title); await NavigationService.PushAsync(Navigation, sessionDetails); ListViewSessions.SelectedItem = null; }; }
public SessionsPage() { InitializeComponent(); sessionsViewModel = new SessionsViewModel(); BindingContext = sessionsViewModel; }
public void Init() { _webService = new Mock <IWebService>(); _navigationService = new Mock <INavigationService>(); viewModel = new SessionsViewModel(_webService.Object, _navigationService.Object); }
public async void Init_DataLoadsSuccessfully_LoadsTimeSlots() { var session = new Session { StartTime = DateTime.Now, EndTime = DateTime.Now, Id = 42, SpeakerId = 1 }; var data = new CampData { Sessions = new List <Session> { session }, Speakers = new List <Speaker> { new Speaker { Id = 1 } }, }; DataClient.GetDataBody = () => Task.FromResult(data); var viewModel = new SessionsViewModel(Messenger, CodeCampService); Assert.True(viewModel.IsLoading); await viewModel.Init(); Assert.AreEqual(1, viewModel.TimeSlots.Count); var slot = viewModel.TimeSlots.First(); Assert.AreEqual(session.StartTime, slot.StartTime); Assert.AreEqual(session.EndTime, slot.EndTime); Assert.AreEqual(1, slot.Sessions.Count); Assert.AreEqual(session, slot.Sessions.First()); Assert.False(viewModel.IsLoading); }
private void CloseSessionsButton_Click(object sender, RoutedEventArgs e) { sessionsViewModel = null; SessionsDataGrid.DataContext = null; TrackedGrid.RowDefinitions[2].Height = new GridLength(0); GC.Collect(); _trackedUsersManager.StopTrackingUserSession(); }
// GET: /<controller>/ public IActionResult Index() { var vm = new SessionsViewModel { Sessions = DataStore.Sessions.ToList() }; return(View(vm)); }
public SessionsPage() { Title = "Sessions"; this.BindingContext = viewModel = new SessionsViewModel(); NavigationPage.SetHasNavigationBar(this, true); var refresh = new ToolbarItem { Command = viewModel.LoadSessionsCommand, Icon = "refresh.png", Name = "refresh", Priority = 0 }; ToolbarItems.Add(refresh); listView = new ListView { RowHeight = 40 }; // see the SessionCell implementation for how the variable row height is calculated listView.HasUnevenRows = true; listView.ItemsSource = viewModel.SessionsGrouped; listView.IsGroupingEnabled = true; listView.GroupDisplayBinding = new Binding("Key"); //this is our key property on grouping. - See more at: http://motzcod.es/#sthash.QlKNtfa4.dpuf var cell = new DataTemplate(typeof(TextCell)); cell.SetBinding(TextCell.TextProperty, "Name"); cell.SetBinding(TextCell.DetailProperty, "MainPresenter.DisplayName"); listView.ItemTemplate = cell; listView.ItemSelected += (sender, e) => { if (listView.SelectedItem == null) { return; } var session = e.SelectedItem as Session; var sessionPage = new SessionPage(session); Navigation.PushAsync(sessionPage); listView.SelectedItem = null; }; var activityIndicator = new ActivityIndicator(); activityIndicator.SetBinding(ActivityIndicator.IsVisibleProperty, "IsBusy"); activityIndicator.SetBinding(ActivityIndicator.IsRunningProperty, "IsBusy"); Content = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Children = { activityIndicator, listView } }; }
private void btnClear_Click(object sender, System.EventArgs e) { var result = MessageBox.Show("Click okay and I'll totally nuke all your saved sessions. Is that what you really want?", "Srsly?", MessageBoxButton.OKCancel); if (result == MessageBoxResult.OK) { SessionsViewModel vm = this.DataContext as SessionsViewModel; vm.ClearSavedSessions(); } }
public async Task <IActionResult> Sessions() { var viewModel = new SessionsViewModel(); var response = await _adminService.GetSessions(new GetSessionsRequest()); viewModel.Sessions = response.Sessions; return(View(viewModel)); }
private void reinitializeChildViewModels() { OverviewViewModel = new OverviewViewModel(Messenger, _campService); OverviewViewModel.Init(); SessionsViewModel = new SessionsViewModel(Messenger, _campService); SessionsViewModel.Init(); SpeakersViewModel = new SpeakersViewModel(Messenger, _campService); SpeakersViewModel.Init(); SponsorsViewModel = new SponsorsViewModel(Messenger, _campService); SponsorsViewModel.Init(); }
public async void Init_ExceptionThrown_ReportsError() { DataClient.GetDataBody = delegate { throw new Exception(); }; string errorMessage = null; Messenger.Subscribe <ErrorMessage>(msg => errorMessage = msg.Message); var viewModel = new SessionsViewModel(Messenger, CodeCampService); await viewModel.Init(); Assert.NotNull(errorMessage); Assert.False(viewModel.IsLoading); Assert.Null(viewModel.TimeSlots); }
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { base.OnNavigatedTo(e); if (this.NavigationContext.QueryString.ContainsKey("parameter")) { string newparameter = this.NavigationContext.QueryString["parameter"]; if (newparameter.Equals("savedPivotItem")) { sessionPivot.SelectedItem = savedPivotItem; SessionsViewModel vm = this.DataContext as SessionsViewModel; vm.RefreshSavedSessions(null); } } }
public ActionResult Sessions(int?id) { var defaultEvent = service.GetDefaultEvent(); int eventid = defaultEvent.ID; ViewBag.Event = service.GetEvent(eventid); var sessions = service.GetSessions(eventid); var timeSlots = service.GetTimeslots(eventid); var viewModel = new SessionsViewModel(); foreach (var session in sessions) { if ((id == null) || (id == -1) || (session.TimeslotID == id)) { viewModel.Sessions.Add(new Session() { ID = session.ID, Name = session.Name, Description = session.Description, Speaker = session.Speaker, ImageUrl = session.ImageUrl, Image = session.Image, SpeakerID = session.SpeakerID, StartTime = session.StartTime.HasValue ? session.StartTime.Value.ToString() : string.Empty, EndTime = session.EndTime.HasValue ? session.EndTime.Value.ToString() : string.Empty, Status = session.Status, Location = string.IsNullOrEmpty(session.Location) ? string.Empty : session.Location }); } } foreach (var time in timeSlots) { viewModel.Timeslots.Add(new Timeslot() { ID = time.ID, EventID = time.EventID, StartTime = time.StartTime, EndTime = time.EndTime, Name = time.Name }); } return(View(viewModel)); }
public ActionResult Index() { var upcomingSessions = _context.Sessions .Include(s => s.GM) .Include(s => s.GameSystem) .Where(s => s.DateTime > DateTime.Now); var viewModel = new SessionsViewModel { UpcomingSessions = upcomingSessions, ShowActions = User.Identity.IsAuthenticated, Heading = "Upcoming Sessions" }; return(View("Sessions", viewModel)); }
private void ListBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (e.AddedItems.Count > 0) { SessionsViewModel vm = this.DataContext as SessionsViewModel; Session session = e.AddedItems[0] as Session; if (session != null) { _currentSessionId = session.SessionId; vm.SendSessionNavigatingMessage(session); } ListBox listbox = sender as ListBox; listbox.SelectedIndex = -1; NavigationService.Navigate(new System.Uri("/Views/SessionPage.xaml", System.UriKind.Relative)); } }
public ItineraryPage() { InitializeComponent(); viewModel = App.SimpleIoC.Resolve <SessionsViewModel>(); BindingContext = viewModel; //DS 010715 CodeSmell - Use Commanding ListSessions.ItemSelected += (sender, e) => { viewModel.CurrentSession = (Eventarin.Core.Models.Session)e.SelectedItem; var sessionID = 0; { if (viewModel.CurrentSession != null) { sessionID = viewModel.CurrentSession.Id; viewModel.SessionItemClicked.Execute(sessionID); } } }; // this.ToolbarItems.Add(new ToolbarItem { // Text = "Refresh", // Icon = "reload.png", // Command = viewModel.RefreshCommand // }); //this.ToolbarItems.Clear (); // var hamburgerItem = new ToolbarItem (); // hamburgerItem.Order = ToolbarItemOrder.Primary; // hamburgerItem.Priority = 0; // hamburgerItem.Text = "Back to sessions"; // //(TextCell = "Sessions", "hamburger_menu_icon.png", Action.Combine, ToolbarItemOrder.Primary, 0); // this.ToolbarItems.Add (hamburgerItem); // this.ToolbarItems.Add(new ToolbarItem { // Text = "", // // Icon = "hamburger_menu_icon.png", // // Command = viewModel.RefreshCommand // // }); // this.BackgroundColor = Color.White; }
public void ViewSessionCommand_NavigatesToSession() { var session = new Session { Id = 42 }; var viewModel = new SessionsViewModel(Messenger, CodeCampService); viewModel.ViewSessionCommand.Execute(session); Assert.AreEqual(1, Dispatcher.ShowViewModelRequests.Count); var request = Dispatcher.ShowViewModelRequests.Single(); var navParameters = request.ParameterValues.Read(typeof(SessionViewModel.NavigationParameters)) as SessionViewModel.NavigationParameters; Assert.NotNull(navParameters); Assert.AreEqual(session.Id, navParameters.Id); }
public async Task <IActionResult> Sessions(GetSessionsRequest request) { var viewModel = new SessionsViewModel(request); if (ModelState.IsValid) { var response = await _adminService.GetSessions(request); if (response.IsSuccessful) { viewModel.Sessions = response.Sessions; viewModel.SelectedFilter = response.SelectedFilter; return(View(viewModel)); } } AddNotifications(request); return(View(viewModel)); }
public ActionResult Create(SessionsViewModel viewModel) { if (ModelState.IsValid) { try { SessionManager.CreateSession(viewModel.TimeAndDate); DataContext.SaveChanges(); return(RedirectToAction("Index")); } catch (CinematicException ex) { ModelState.AddModelError(string.Empty, ex.Message); return(View(viewModel)); } } return(View(viewModel)); }
private void _trackedUsersManager_SessionUserUpdated(object sender, RLTracker.Models.Session.Session e) { var selectedItem = TrackedUserGrid.SelectedItem; if (selectedItem != null) { var record = selectedItem as TrackedUserViewModel; sessionsViewModel = new SessionsViewModel(); ViewModelMapper.SessionViewModel(e, sessionsViewModel, record.Name); SelectedPlayer.Content = record.Name; SessionsDataGrid.DataContext = sessionsViewModel.Sessions; SessionsDataGrid.Items.Refresh(); if (TrackedGrid.RowDefinitions[2].Height == new GridLength(0)) { TrackedGrid.RowDefinitions[2].Height = new GridLength(TrackedGrid.ActualHeight / 2 - 5); } } }
public SessionsPage() { InitializeComponent(); viewModel = App.SimpleIoC.Resolve <SessionsViewModel>(); BindingContext = viewModel; this.ToolbarItems.Add(new ToolbarItem { Name = "Refresh", Icon = "nav_refresh.png", Command = viewModel.RefreshCommand }); ListSessions.ItemSelected += (sender, e) => { viewModel.CurrentSession = (Eventarin.Core.Models.Session)e.SelectedItem; viewModel.SessionItemClicked.Execute(viewModel.CurrentSession.Id); }; }
public ActionResult Playing() { var userId = User.Identity.GetUserId(); var sessions = _context.Players .Where(p => p.PlayerId == userId) .Select(p => p.Session) .Include(g => g.GM) .Include(g => g.GameSystem) .ToList(); var viewModel = new SessionsViewModel() { UpcomingSessions = sessions, ShowActions = User.Identity.IsAuthenticated, Heading = "Sessions I'm Attending" }; return(View("Sessions", viewModel)); }
public SessionsPage() { InitializeComponent(); viewModel = App.SimpleIoC.Resolve <SessionsViewModel>(); BindingContext = viewModel; stackSessions.HeightRequest = 250 * viewModel.Sessions.Count; //DS 010715 CodeSmell - Use Commanding. Research why the EventarinCell Command is always null ListSessions.ItemSelected += (sender, e) => { viewModel.CurrentSession = (Eventarin.Core.Models.Session)e.SelectedItem; var sessionID = 0; { if (viewModel.CurrentSession != null) { sessionID = viewModel.CurrentSession.Id; viewModel.SessionItemClicked.Execute(sessionID); } } }; }
protected override void OnNavigatedTo(NavigationEventArgs e) { base.OnNavigatedTo(e); if (isNewInstance) { if (viewModel == null) { viewModel = new SessionsViewModel(); if (State.Count > 0) { viewModel = (SessionsViewModel)State["viewModel"]; } else { viewModel = new SessionsViewModel(); viewModel.Load(); } DataContext = viewModel; } } isNewInstance = false; }
public ActionResult Create(int?id, DateTime?SelectedDate) { // Return to Index if id is null if (id == null) { return(RedirectToAction("Index")); } // Get the dining type matching the id var diningType = DbContext.DiningType.FirstOrDefault(x => x.Id == id); // If no dining type was found return error if (diningType == null) { return(HttpNotFound()); } ViewBag.Id = id; //if (Date != null) // ViewBag.Date = Date; // Load all reservations for upcoming dates or for a specific date List <Reservation> reservations; if (SelectedDate == null) { reservations = DbContext.Reservation.Include(x => x.Table).Where(x => x.StartTime >= DateTime.Now && x.EndTime >= DateTime.Now).ToList(); } else { DateTime tempDate = SelectedDate.Value; reservations = DbContext.Reservation.Include(x => x.Table).AsEnumerable().Where(x => x.StartTime <= /*>=*/ DateTime.Now && x.EndTime >= DateTime.Now /*&& x.StartTime.Date == tempDate.Date*/).ToList(); } // Length of the dining type var length = new TimeSpan(diningType.Length.Hour, diningType.Length.Minute, diningType.Length.Second); // Extra time of the dining type var extra = new TimeSpan(diningType.ExtraTime.Hour, diningType.ExtraTime.Minute, diningType.ExtraTime.Second); // List for all available sessions var list = new List <Session>(); // Loop through and add all available dining sessions for (DateTime time = diningType.StartTime; time < diningType.EndTime; time = time.Add(length).Add(extra)) { list.Add(new Session() { StartTime = time, EndTime = time.Add(length).Add(extra) }); } // Get all tables List <Table> Tables; Tables = DbContext.Table.Include(x => x.Reservations.Select(r => r.Orders)).ToList(); //if (Date == null) // Tables = DbContext.Table.Include(x => x.Reservations).ToList().Where(r => r.Reservations.se >= DateTime.Now && r.EndTime >= DateTime.Now).ToList(); //else // Tables = DbContext.Table.Include(x => x.Reservations.Where(r => r.StartTime >= DateTime.Now && r.EndTime >= DateTime.Now && Date == r.StartTime.Date)).ToList(); // List of table viewmodel var TablesModel = new List <TableViewModel>(); // Loop through the tables foreach (var table in Tables) { var sessions = new List <Session>(); // Loop through all sessions foreach (var s in list) { // Check if session is available for the table var available = table.Reservations.FirstOrDefault(x => x.StartTime >= s.StartTime && x.EndTime <= s.StartTime) == null; // Add the session to the list sessions.Add(new Session() { StartTime = s.StartTime, EndTime = s.EndTime, Available = available }); } // Add the table with session data to the list TablesModel.Add(new TableViewModel() { Session = sessions, Table = table }); } // Create viewmodel var viewModel = new SessionsViewModel() { SelectedDate = SelectedDate, Sessions = list, Tables = TablesModel, }; // Return view with a viewmodel holding all the data return(View(viewModel)); }
// GET: Sessions/Create public ActionResult Create() { var viewModel = new SessionsViewModel(); return(View(viewModel)); }
public SessionPage() { InitializeComponent(); viewModel = App.SimpleIoC.Resolve <SessionsViewModel> (); BindingContext = viewModel; }
/// <summary> /// Provides a deterministic way to delete the Sessions property. /// </summary> public static void ClearSessions() { _sessions.Cleanup(); _sessions = null; }