예제 #1
0
        public HeatMapViewModel(ITaskRepository taskRepository, IParkingLotRepository lotRepository, RouterService router)
        {
            _taskRepository = taskRepository;
            _router         = router;

            ParkingLots = lotRepository.All();
            Tasks       = taskRepository.All().SelectMany(x => x.Inspections).ToList();

            OpenTaskCommand   = new RelayCommand(OpenTask);
            ClearCacheCommand = new RelayCommand(ClearCache);
        }
예제 #2
0
        private void Generate(WebBrowser browser)
        {
            Regions.Clear();
            foreach (var address in _addressRepository.All())
            {
                if (!Regions.Contains(address.Province))
                {
                    Regions.Add(address.Province);
                }
            }

            _browser = browser;

            var tasks           = _taskRepository.All();
            var DataElementList = new List <NewInspectionDataElement>();

            var values = new Dictionary <string, int>();

            foreach (var item in tasks)
            {
                if (((item.Customer == SelectedCustomer) || SelectAllCustomers) && (item.DatetimeCreated != null) && (item.DateTimeEnd != null) && (item.DateTimeStart != null) && (item.ParkingLot?.Address != null))
                {
                    if ((item.DatetimeCreated < EndDateTime) && (item.DatetimeCreated > BeginDateTime) && (item.ParkingLot.Address.Province.Equals(SelectedRegion) || SelectAllRegions))
                    {
                        var month = item.DatetimeCreated.ToString("MMMMM");
                        if (!values.ContainsKey(month))
                        {
                            values.Add(month, 0);
                        }
                        values[month]++;
                    }
                }
            }

            foreach (var item in values)
            {
                DataElementList.Add(new NewInspectionDataElement
                {
                    month  = item.Key,
                    amount = item.Value.ToString()
                });
            }

            var o = JsonConvert.SerializeObject(DataElementList);

            browser.InvokeScript("go", o);

            Customers.Clear();
            _customerRepository.All().ForEach(Customers.Add);
        }
예제 #3
0
        private void Search()
        {
            Tasks.Clear();

            var search = _taskRepository.All();

            if (!string.IsNullOrWhiteSpace(SearchString))
            {
                search.Where(t => t.Customer != null)
                .Where(t =>
                       t.Customer.Name.ToLower().Contains(SearchString.ToLower()) ||
                       t.Customer.Email.ToLower().Contains(SearchString.ToLower()) ||
                       t.ParkingLot.Address.City.ToLower().Contains(SearchString.ToLower()) ||
                       t.ParkingLot.Address.Street.ToLower().Contains(SearchString.ToLower()) ||
                       t.ParkingLot.Address.ZipCode.ToLower().Contains(SearchString.ToLower()) ||
                       t.ParkingLot.Address.Number.ToLower().Contains(SearchString.ToLower()) ||
                       t.ParkingLot.Address.Country.ToLower().Contains(SearchString.ToLower())
                       ).ToList().ForEach(Tasks.Add);
                return;
            }

            search.ForEach(Tasks.Add);
        }
        private void Generate(WebBrowser browser)
        {
            if (SelectAllCustomers == false && SelectedCustomer == null)
            {
                return;
            }
            _browser = browser;
            var DataElementList = new List <DataElement>();
            var list            = _taskRepository.All();


            foreach (var item in list)
            {
                if (item.ParkingLot.Address != null && item.DateTimeEnd != null && item.DateTimeStart != null || item.Customer?.Name != null)
                {
                    bool region = true;
                    if (SelectedRegion != null && item.ParkingLot.Address != null && item.ParkingLot.Address.Province != null)
                    {
                        if (!item.ParkingLot.Address.Province.Equals(SelectedRegion))
                        {
                            region = false;
                        }
                    }
                    if ((region || SelectAllRegions == true) &&
                        item.DateTimeStart > BeginDateTime &&
                        item.DateTimeStart < EndDateTime &&
                        (item.Customer.Name == SelectedCustomer?.Name || SelectAllCustomers == true))
                    {
                        var inspections = item.Inspections;

                        List <Employee> employees = (from i in inspections from ii in i.InspectionInspectors select ii.Employee).ToList();

                        if (employees.Contains(SelectedEmployee) || SelectAllEmployees == true)
                        {
                            List <TimeSpan> spans = new List <TimeSpan>();
                            foreach (var i in item.Inspections)
                            {
                                TimeSpan span;
                                if (i.DateTimeDone != null)
                                {
                                    TimeSpan?tempSpan = i.DateTimeDone - i.DateTimeStarted;
                                    span = tempSpan.Value;
                                    spans.Add(span);
                                }
                            }
                            if (spans.Count > 0)
                            {
                                double duration      = spans.Average(timeSpan => timeSpan.TotalMinutes);
                                int    finalDuration = (int)duration;
                                DataElementList.Add(new DataElement
                                {
                                    inspection = item.Customer.Name,
                                    duration   = finalDuration.ToString()
                                });
                            }
                        }
                    }
                }
            }
            var o = new DataSet
            {
                data      = DataElementList,
                ChartType = SelectedChart
            };
            var test = JsonConvert.SerializeObject(o);

            browser.InvokeScript("go", test);

            Regions.Clear();
            foreach (var address in _addressRepository.All())
            {
                if (!Regions.Contains(address.Province))
                {
                    Regions.Add(address.Province);
                }
            }

            Customers.Clear();
            _customerRepository.All().ForEach(Customers.Add);
            _userRepository.All().ForEach(Inspectors.Add);
        }
예제 #5
0
 public IEnumerable <Task> All(int userId)
 {
     return(taskRepository.All(userId));
 }