public async Task <IActionResult> Tracker(string id) { var model = new TrackerViewModel(); var tag = Utils.LinkIdToTag(id); logger.LogInformation("Tracker {0}", id); try { if (!string.IsNullOrEmpty(tag)) { var clan = db.Clans.SingleOrDefault(c => c.Tag == tag); if (clan != null) { var data = new List <IList <object> > { new List <object> { clan.LinkID } }; await googleSheets.Update(Constants.DONATION_TRACKER_SHEET_ID, "ROWS", "Setup!B2", data); model.ClanName = clan.Name; model.ClanTag = clan.Tag; } } } catch (Exception e) { logger.LogError("Tracker.Error: {0}", e.ToString()); } return(View(model)); }
public async Task UpdateAsync_WithName_SendsMessageWithTracker() { // arrange int id = 0; string name = "Collen"; var service = new MockTrackerService(); service.Trackers.Add(new Tracker { Id = 0, Name = "Bob" }); var vm = new TrackerViewModel(service) { Id = 0, Name = name }; Tracker updatedTracker = null; MessagingCenter.Subscribe <TrackerViewModel, Tracker>(this, nameof(vm.UpdateCommand), (sender, tracker) => updatedTracker = tracker); // act await vm.UpdateAsync(); // assert Assert.Equal(id, updatedTracker?.Id); Assert.Equal(name, updatedTracker?.Name); }
public static void FillTrackerModel(this TrackerViewModel tracker, SummaryViewModel summary, NewsViewModel news) { tracker.Country_SouthAfrica = summary.Countries.Where(s => s.Country == "South Africa") .FirstOrDefault(); tracker.RSA_TotalConfirmed = Helper.FormatIntToString( tracker.Country_SouthAfrica.TotalConfirmed); tracker.RSA_TotalRecovered = Helper.FormatIntToString( tracker.Country_SouthAfrica.TotalRecovered); tracker.RSA_TotalDeaths = Helper.FormatIntToString( tracker.Country_SouthAfrica.TotalDeaths); // Global tracker.Global_TotalConfirmed = Helper.FormatIntToString( summary.Global.TotalConfirmed); tracker.Global_TotalRecovered = Helper.FormatIntToString( summary.Global.TotalRecovered); tracker.Global_TotalDeaths = Helper.FormatIntToString( summary.Global.TotalDeaths); // News tracker.NewsViewModel = news; tracker.NewsViewModel.Articles = tracker.NewsViewModel.Articles.Take(5).ToList(); foreach (var item in tracker.NewsViewModel.Articles) { item.PublishedAt = item.PublishedAt.Substring(0, 10); } }
private void DeclareKeyBindings(TrackerViewModel vm) { //this.WpfWindow.InputBindings.Add(new KeyBinding(vm.RefreshCommand, new KeyGesture(Key.F5))); //this.WpfWindow.InputBindings.Add(new KeyBinding(vm.InsertProductCommand, new KeyGesture(Key.Insert))); //this.WpfWindow.InputBindings.Add(new KeyBinding(vm.EditProductCommand, new KeyGesture(Key.Enter))); //this.WpfWindow.InputBindings.Add(new KeyBinding(vm.DeleteProductCommand, new KeyGesture(Key.Delete))); }
public async Task UpdateAsync_WithName_UpdatesTracker() { // arrange int id = 0; string name = "Collen"; var service = new MockTrackerService(); service.Trackers.Add(new Tracker { Id = 0, Name = "Bob" }); var vm = new TrackerViewModel(service) { Id = id, Name = name }; // act await vm.UpdateAsync(); // assert Assert.Single(vm.AllTrackers); Assert.Contains(vm.AllTrackers, tracker => tracker.Name == name && tracker.Id == id); }
private void map_Loaded(object sender, RoutedEventArgs e) { _TrackerViewModel = new TrackerViewModel(); _TrackerViewModel.PropertyChanged += _TrackerViewModel_PropertyChanged; _TrackerViewModel.MapLocationVM.TrackingObject += MapLocationVM_TrackingObject; _TrackerViewModel.CurrentllyTrackedObjectPacketReceived += _TrackerViewModel_CurrentllyTrackedObjectPacketReceived; DataContext = _TrackerViewModel; }
public ActionResult IndexD() { var Model = new TrackerViewModel { InStorage = db.OrderDetails.Where(d => d.tracker == "In the storage").Include(o => o.Order).Include(o => o.Toy).ToList(), Delivering = db.OrderDetails.Where(d => d.tracker == "Being deliverd").Include(o => o.Order).Include(o => o.Toy).ToList(), Completed = db.OrderDetails.Where(d => d.tracker == "Completed").Include(o => o.Order).Include(o => o.Toy).ToList() }; return(View(Model)); }
// GET: Tracker public ActionResult Index() { //add accessable value to viewmodel to set default tab. var Model = new TrackerViewModel { InStorage = db.OrderDetails.Where(d => d.tracker == "In the storage").Include(o => o.Order).Include(o => o.Toy).ToList(), Delivering = db.OrderDetails.Where(d => d.tracker == "Being deliverd").Include(o => o.Order).Include(o => o.Toy).ToList(), Completed = db.OrderDetails.Where(d => d.tracker == "Completed").Include(o => o.Order).Include(o => o.Toy).ToList() }; return(View(Model)); }
public ActionResult IndexD() { var OIS = db.OrderDetails.Where(d => d.tracker == "In the storage").Include(o => o.Order).Include(o => o.Toy); var OS = db.OrderDetails.Where(d => d.tracker == "Being deliverd").Include(o => o.Order).Include(o => o.Toy); var OC = db.OrderDetails.Where(d => d.tracker == "Completed").Include(o => o.Order).Include(o => o.Toy); var ODVM = new TrackerViewModel { IS = OIS.ToList(), S = OS.ToList(), C = OC.ToList() }; return(View(ODVM)); }
public async Task DeleteAsync_NullTracker_DoesNothing() { // arrange var service = new MockTrackerService(); service.Trackers.Add(null); var vm = new TrackerViewModel(service); // act await vm.DeleteAsync(null); // assert Assert.Single(service.Trackers, expected: null); }
public async Task CreateAsync_WithName_HasNoError(string name) { // arrange var vm = new TrackerViewModel(new MockTrackerService()) { Name = name }; // act await vm.CreateAsync(); // assert Assert.False(vm.HasError); }
public async Task CreateAsync_ServiceCallFailure_HasError() { // arrange string name = "Collen"; var vm = new TrackerViewModel(new FailingTrackerService()) { Name = name }; // act await vm.CreateAsync(); // assert Assert.True(vm.HasError); }
public async Task UpdateAsync_NoName_HasError(string name) { // arrange var vm = new TrackerViewModel(new MockTrackerService()) { Id = 0, Name = name }; // act await vm.UpdateAsync(); // assert Assert.True(vm.HasError); }
public async Task CreateAsync_WithName_AddsToAllTrackers() { // arrange string name = "Collen"; var vm = new TrackerViewModel(new MockTrackerService()) { Name = name }; // act await vm.CreateAsync(); // assert Assert.Contains(vm.AllTrackers, tracker => tracker.Name == name); }
public async Task PopulateAllTrackersAsync_ServiceCallFailure_DoesNotClearAllTrackers() { // arrange var vm = new TrackerViewModel(new FailingTrackerService()); var tracker = new Tracker { Id = 0, Name = "Collen" }; vm.AllTrackers.Add(tracker); // act await vm.PopulateAllTrackersAsync(); // assert Assert.Single(vm.AllTrackers, tracker); }
public async Task PopulateAllTrackersAsync_ServiceCallFailure_SendsMessage() { // arrange var vm = new TrackerViewModel(new FailingTrackerService()); bool messageSent = false; MessagingCenter.Subscribe <TrackerViewModel>(this, TrackerViewModel.AllTrackersPullFailedMessage, sender => messageSent = true); // act await vm.PopulateAllTrackersAsync(); // assert Assert.True(messageSent); }
public TrackerViewModel GetTVMbyOrderId(int id) { TrackerViewModel TVM = new TrackerViewModel(); TVM.orders = new List <OrderViewModel>(); Order order = GetOrderById(id); if (order == null) { TVM.isEmpty = true; } else { TVM.isEmpty = false; OrderViewModel ovm = new OrderViewModel { Id = order.Id, OrderItems = OIRepo.GetOrderItemsByOrderId(order.Id), Price = order.Price, Status = order.Status, TimeStamp = order.TimeStamp, Paid = order.Paid, }; ovm.percent = ovm.OrderItems.Count; Decimal count = 0; foreach (OrderItem item in ovm.OrderItems) { if (item.Status != "Done") { count++; } } //means the order is at 0% if (count == 0) { ovm.percent = 0; } else { ovm.percent = (int)((count / ovm.percent) * 100); } TVM.orders.Add(ovm); } return(TVM); }
public async Task DeleteAsync_ServiceCallFailure_SendsMessage() { // arrange var vm = new TrackerViewModel(new FailingTrackerService()); var tracker = new Tracker(); bool messageSent = false; MessagingCenter.Subscribe <TrackerViewModel>(this, nameof(vm.DeleteCommand), sender => messageSent = true); // act await vm.DeleteAsync(tracker); // assert Assert.True(messageSent); }
public MenuPage() { InitializeComponent(); MessagingCenter.Subscribe <TrackerViewModel>(this, TrackerViewModel.AllTrackersPullFailedMessage, sender => this.DisplayAlertOnMain(title: "Error", message: "Database operation failed. Please try again. " + "If the problem persists, the app's data may be corrupt.", cancel: "OK")); MessagingCenter.Subscribe <TrackerViewModel>(this, nameof(TrackerViewModel.DeleteCommand), sender => this.DisplayAlertOnMain(title: "Error", message: "Failed to delete the tracker.", cancel: "OK")); BindingContext = _viewModel = App.DependencyContainer.GetInstance <TrackerViewModel>(); }
public async Task DeleteAsync_WithTracker_DeletesTracker() { // arrange var tracker = new Tracker { Id = 0 }; var service = new MockTrackerService(); service.Trackers.Add(tracker); var vm = new TrackerViewModel(service); // act await vm.DeleteAsync(tracker); // assert Assert.Empty(vm.AllTrackers); }
public async Task CreateAsync_AnyError_DoesNotSendMessage(string name) { // arrange var vm = new TrackerViewModel(new FailingTrackerService()) { Name = name }; bool messageSent = false; MessagingCenter.Subscribe <TrackerViewModel, Tracker>(this, nameof(vm.CreateCommand), (sender, tracker) => messageSent = true); // act await vm.CreateAsync(); // assert Assert.False(messageSent); }
public TrackerViewModel GetTVMsByStatus() { TrackerViewModel TVM = new TrackerViewModel(); TVM.orders = new List <OrderViewModel>(); List <Order> orders = GetOrdersByStatus("In Progress"); foreach (Order order in orders) { OrderViewModel omv = new OrderViewModel { Id = order.Id, OrderItems = OIRepo.GetOrderItemsByOrderId(order.Id), Price = order.Price, Status = order.Status, TimeStamp = order.TimeStamp, Paid = order.Paid, }; omv.percent = omv.OrderItems.Count; Decimal count = 0; foreach (OrderItem item in omv.OrderItems) { if (item.Status != "Done") { count++; } } if (count == omv.percent) { omv.percent = 0; } else { omv.percent = (int)((count / omv.percent) * 100); omv.percent = 100 - omv.percent; } TVM.orders.Add(omv); } return(TVM); }
public async Task CreateAsync_WithName_SendsMessageWithTracker() { // arrange string name = "Collen"; var vm = new TrackerViewModel(new MockTrackerService()) { Name = name }; Tracker createdTracker = null; MessagingCenter.Subscribe <TrackerViewModel, Tracker>(this, nameof(vm.CreateCommand), (sender, tracker) => createdTracker = tracker); // act await vm.CreateAsync(); // assert Assert.Equal(name, createdTracker?.Name); }
public async Task UpdateAsync_WithName_HasNoError(string name) { // arrange var service = new MockTrackerService(); service.Trackers.Add(new Tracker { Id = 0, Name = "Bob" }); var vm = new TrackerViewModel(service) { Id = 0, Name = name }; // act await vm.UpdateAsync(); // assert Assert.False(vm.HasError); }
public IActionResult Orders() { TrackerViewModel tvm = ORepo.GetTVMsByStatus(); return(View(tvm)); }
// GET: /<controller>/ public IActionResult Index() { TrackerViewModel tvm = new TrackerViewModel(); return(View(tvm)); }
public async Task <ActionResult> Tracker() { var watch = new System.Diagnostics.Stopwatch(); watch.Start(); SummaryViewModel summary = new SummaryViewModel(); NewsAPI newsAPI = new NewsAPI(); TrackerViewModel tracker = new TrackerViewModel(); #region HttpClient Config // Covid Stats using (var client = new HttpClient()) { client.BaseAddress = new Uri(baseUrl); HttpResponseMessage responseMessage = await client.GetAsync("summary"); if (responseMessage.IsSuccessStatusCode) { //Storing the response details recieved from web api var covidResponse = responseMessage.Content .ReadAsStringAsync().Result; summary = JsonConvert.DeserializeObject <SummaryViewModel>(covidResponse); } } // South Africa News using (var client = new HttpClient()) { client.BaseAddress = new Uri(baseUrlNews); HttpResponseMessage responseMessage = await client.GetAsync("v2/top-headlines?country=za&category=health&apiKey=8066df69f5c2435c9a6b0510ea7b16d5"); if (responseMessage.IsSuccessStatusCode) { //Storing the response details recieved from web api var newsResponse = responseMessage.Content .ReadAsStringAsync().Result; newsAPI = JsonConvert.DeserializeObject <NewsAPI>(newsResponse); } } #endregion NewsViewModel news = new NewsViewModel { Articles = newsAPI.Articles.ToList() }; tracker.FillTrackerModel(summary, news); var latLongTableExists = await summary.CheckDBForLatLongExists(db, geocoder); if (latLongTableExists) { ViewBag.DataPoints = db.LatLongDtos.ToList(); } watch.Stop(); _ = watch.ElapsedMilliseconds; _ = watch.Elapsed; return(View(tracker)); }
public IActionResult Report(TrackerViewModel tvm) { tvm = ORepo.GetTVMbyOrderId(tvm.OrderId); return(View(tvm)); }
/// <summary> /// Main constructor, receives ID of a tracker to be the subject. /// </summary> public TrackerWindow(int trackerID) { TrackerID = trackerID; InitializeComponent(); DataContext = TrackerViewModel = new TrackerViewModel(trackerID, TrackChart); }
public RecentTrackers() { InitializeComponent(); BindingContext = _viewModel = App.DependencyContainer.GetInstance <TrackerViewModel>(); _viewModel.PullRecentCommand.Execute(null); }