public Personnelinfo(UserData user, PersonnelInfoViewModel personnel, ConnService Sservice) { InitializeComponent(); signalService = Sservice; UserList = new List <PersonnelData>(); this.user = user; persons = personnel; Task.Run(async delegate { var response = await StaticHelpers.httpclient.GetAsync(Environment.GetEnvironmentVariable("GamersServerUri") + "/personnelinfo"); var result = await response.Content.ReadAsStringAsync(); Dispatcher.Invoke(() => { UserList = JsonConvert.DeserializeObject <List <PersonnelData> >(result); Users.ItemsSource = UserList; CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(Users.ItemsSource); view.Filter = UseFilter; }); }); signalService.SendingSuccess += (string response, string view, string sender) => { if (sender == user.UserId && view == "Personnel") { MessageBox.Show(response); } }; }
public HistoryPage(ConnService signalr) { InitializeComponent(); historyContext = new HistoryViewModel(); this.DataContext = historyContext; sService = signalr; sService.HandleEventReceived += (Sender obj) => { historyContext.RefreshList(); }; }
public CasesPage(UserData userinfo, ConnService signalService) { InitializeComponent(); sService = signalService; Items = new CasesViewModel(userinfo, sService); User = userinfo; this.DataContext = Items; sService.AlertReceived += SService_AlertReceived; CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(cases.ItemsSource); sService.HandleEventReceived += SService_HandleEventReceived; }
public Home(UserData Userinfo, string uri) { InitializeComponent(); try { User = Userinfo; this.uri = uri; Loaded += Home_Loaded; string NameChip = "Hi, " + User.Firstname + " " + User.Surname; stat = new StatusModel { UserId = User.UserId, Status = "Active" }; connection = new HubConnectionBuilder() .WithUrl(uri + "/updates") .Build(); connection.Closed += async(error) => { await Task.Delay(5000); await ServerConnect(); await signalService.SendStatus(stat); CloseHomeWindow?.Invoke(); }; this.StateChanged += Home_StateChanged; signalService = new ConnService(connection); signalService.StatusReceived += Cos_StatusReceived; signalService.AlertReceived += CasesPage_AlertEvent; Task.Run(async() => { await ServerConnect(); }); persons = new PersonnelInfoViewModel(); schedule = new SchedulePage(); paypage = new PaymentPage(); loadingWindow = new LoadingWindow(); signalService.NewUserSync += async(string id) => { await signalService.ConnectionSync(User.UserId); }; signalService.DisconnectUser += (string obj) => { Task.Run(async() => { await signalService.SendStatus(stat); await signalService.UpdateStatus(stat.Status, stat.UserId); }); }; LoadMap(); HistoryPage.historyItem += (HistoryModel obj) => { MainHolder.Visibility = Visibility.Visible; browser.Visibility = Visibility.Collapsed; Dispatcher.Invoke(() => MainHolder.NavigationService.Navigate(new CaseDetails(obj))); }; this.Closing += MainWindow_Closing; sService = signalService; Respond += (string[] details) => { Dispatcher.Invoke(() => { ResponseView.Visibility = Visibility.Visible; browser.Visibility = Visibility.Collapsed; var rpage = new ResponsePage(User, signalService, details); Response.NavigationService.Navigate(rpage); rpage.BtnClicked += (string obj) => { switch (obj) { case "Close": ResponseView.Visibility = Visibility.Collapsed; browser.Visibility = Visibility.Visible; RestoreButton.Visibility = Visibility.Visible; break; case "restart": CasesModel alert = new CasesModel() { DateTime = Convert.ToDateTime(details[5]), Location = details[2], VHTCode = details[4], Description = details[6], Village = details[3], Status = "ongoing", CaseId = details[0], Category = details[7] }; Dispatcher.Invoke(async() => { await signalService.RestartResponse(details[0]); }); break; case "completed": Dispatcher.Invoke(() => { RadWindow.Confirm("Are you sure you want to mark case as completed?", async delegate { await signalService.CompletedCase(details[0]); RadWindow.Alert("This case has been marked as completed.", MarkCaseCompleted); }); }); break; } }; }); }; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public Dashboard(UserData Userinfo, StatusModel stat, ConnService signalService, string uri) { InitializeComponent(); status = stat; this.uri = uri; User = Userinfo; this.DataContext = User; _client = new HttpClient(); userRank = new UsersRank(); LoadAgents(); signalService.StatusReceived += (StatusModel obj) => { int index = AgentsList.FindIndex(agent => agent.UserId.Equals(obj.UserId, StringComparison.Ordinal)); if (obj.UserId == status.UserId) { status.Status = obj.Status; User.Status = obj.Status; AgentsList[index].Status = obj.Status; if (AgentsList[index].Status == "Active") { AgentsList[index].Background = Colors.LightGreen; } else { AgentsList[index].Background = Colors.LightPink; } } else { AgentsList[index].Status = obj.Status; if (AgentsList[index].Status == "Active") { AgentsList[index].Background = Colors.LightGreen; } else { AgentsList[index].Background = Colors.LightPink; } } }; signalService.Ranking += (List <UsersRank> obj) => { int index = obj.FindIndex(ag => ag.UserID.Equals(User.UserId, StringComparison.Ordinal)); User.Rank = obj[index].Position.ToString(); for (var i = 0; i < AgentsList.Count; i++) { int pos = obj.FindIndex(ag => ag.UserID.Equals(AgentsList[i].UserId, StringComparison.Ordinal)); AgentsList[i].Rank = obj[pos].Position; } }; StatusToggle.Unchecked += (o, e) => { status.UserId = User.UserId; status.Status = "Unavailable"; Task.Run(async() => { await signalService.SendStatus(status); await signalService.UpdateStatus(status.Status, status.UserId); userRank.Position = 0; await signalService.ReorderList("remove", User.UserId); User.Rank = ""; }); User.Status = status.Status; }; StatusToggle.Checked += (o, e) => { status.UserId = User.UserId; status.Status = "Active"; Task.Run(async() => { await signalService.SendStatus(status); await signalService.UpdateStatus("Active", status.UserId); await signalService.ReorderList("add", User.UserId); }); User.Status = status.Status; }; if (User.Status == "Active") { StatusToggle.IsChecked = true; } else { StatusToggle.IsChecked = false; } }