Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
 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);
        }
Esempio n. 6
0
 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));
        }
Esempio n. 9
0
        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);
        }
Esempio n. 17
0
        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);
        }
Esempio n. 19
0
        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);
        }
Esempio n. 22
0
        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);
        }
Esempio n. 25
0
        public IActionResult Orders()
        {
            TrackerViewModel tvm = ORepo.GetTVMsByStatus();

            return(View(tvm));
        }
Esempio n. 26
0
        // GET: /<controller>/
        public IActionResult Index()
        {
            TrackerViewModel tvm = new TrackerViewModel();

            return(View(tvm));
        }
Esempio n. 27
0
        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));
        }
Esempio n. 28
0
 public IActionResult Report(TrackerViewModel tvm)
 {
     tvm = ORepo.GetTVMbyOrderId(tvm.OrderId);
     return(View(tvm));
 }
Esempio n. 29
0
 /// <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);
 }
Esempio n. 30
0
 public RecentTrackers()
 {
     InitializeComponent();
     BindingContext = _viewModel = App.DependencyContainer.GetInstance <TrackerViewModel>();
     _viewModel.PullRecentCommand.Execute(null);
 }