Example #1
0
        public async Task <List <HeatMapViewModel> > GetExcusedVacationCountsPerDay()
        {
            var vacationCounts = await context.Vacations
                                 .Include(v => v.User)
                                 .Where(v => v.StartDate == v.EndDate && v.VacationType == VacationType.Excused)
                                 .GroupBy(v => new { v.StartDate.DayOfWeek, v.User })
                                 .ToListAsync();

            List <HeatMapViewModel> heatMap = new List <HeatMapViewModel>();

            foreach (var item in vacationCounts)
            {
                HeatMapViewModel record = heatMap.Find(r => r.User == item.Key.User) ?? new HeatMapViewModel {
                    User = item.Key.User
                };

                switch (item.Key.DayOfWeek)
                {
                case DayOfWeek.Sunday:
                    record.SundayCount = item.Count();
                    break;

                case DayOfWeek.Monday:
                    record.MondayCount = item.Count();
                    break;

                case DayOfWeek.Tuesday:
                    record.TuesdayCount = item.Count();
                    break;

                case DayOfWeek.Wednesday:
                    record.WednesdayCount = item.Count();
                    break;

                case DayOfWeek.Thursday:
                    record.ThursdayCount = item.Count();
                    break;
                }

                if (!heatMap.Contains(record))
                {
                    heatMap.Add(record);
                }
            }
            return(heatMap);
        }
        public HeatMapControl(HeatMapViewModel viewModel)
        {
            InitializeComponent();

            this.viewModel   = viewModel;
            this.DataContext = this.viewModel;

            this.CancellationTokenSource = new CancellationTokenSource();
            this.pendingRefresh          = this.PerformUpdateAsync();

            //Register a message to inform this control when the poll interval has updated so that
            //we can immediately respond to the change
            Messenger.Default.Register <HeatMapPollIntervalUpdatedMessage>(this,
                                                                           (o) =>
            {
                if (this.viewModel == o.UpdatedViewModel)
                {
                    this.SleepCancellationTokenSource.Cancel();
                }
            });
        }
Example #3
0
 /// <summary>
 /// Get KPis which are eligible for heat map item
 /// </summary>
 /// <returns></returns>
 public List <HeatMapViewModel> GetKpisforHeatMap()
 {
     try
     {
         List <HeatMapBusinessModel> heatMapBusinessModels = _heatMapRepository.GetKpisforHeatMap();
         List <HeatMapViewModel>     heatMapViewModels     = new List <HeatMapViewModel>();
         heatMapBusinessModels.ForEach(h =>
         {
             HeatMapViewModel heatMapViewModel = new HeatMapViewModel();
             heatMapViewModel.KpiId            = h.KpiId;
             heatMapViewModel.KpiDescription   = h.KpiDescription;
             heatMapViewModel.ChecklistType    = h.ChecklistType;
             heatMapViewModels.Add(heatMapViewModel);
         });
         return(heatMapViewModels);
     }
     catch (Exception ex)
     {
         _logger.Log(ex, LogLevel.Error, ex.Message);
         return(null);
     }
 }
Example #4
0
        public HeatMapControl()
        {
            InitializeComponent();

            GMapControl.MapProvider = GoogleMapProvider.Instance;
            GMapControl.ShowCenter  = false;

            _viewModel = (HeatMapViewModel)DataContext;

            var parkingLots = _viewModel.ParkingLots;

            foreach (var lot in parkingLots)
            {
                if (lot.GeoLatitude != null && lot.GeoLongitude != null)
                {
                    AddMarker(new PointLatLng((double)lot.GeoLatitude, (double)lot.GeoLongitude), lot);
                }
            }
            CenterMap();

            DownloadButton.Click += (sender, e) => DownloadArea();
        }
Example #5
0
        public async Task <HeatMapViewModel> ObtenerHeatMapViewModel(BuscarIndicadorViewModel buscarIndicadorViewModel)
        {
            Persona persona = await PersonaRepository.GetByUserName(buscarIndicadorViewModel.PersonaLogueadaViewModel.NombreUsuario).FirstOrDefaultAsync();

            IList <IndicadorAutomaticoViewModel> todosIndicadoresAutomaticos = AutoMapper.Mapper.Map <IList <IndicadorAutomaticoViewModel> >(IndicadorAutomaticoRepository.Todos().ToList());

            IList <FilaHeatMapViewModel> filasHeatMapViewModel = AutoMapper.Mapper.Map <IList <FilaHeatMapViewModel> >(IndicadorRepository.Buscar(buscarIndicadorViewModel).ToList());

            CargarPermisosAIndicadores(filasHeatMapViewModel, persona);

            IList <MedicionViewModel> mediciones = await Todas(buscarIndicadorViewModel.AnioTablero);

            IList <CeldaHeatMapViewModel> celdasHeatMapViewModel = new List <CeldaHeatMapViewModel>();

            HeatMapViewModel heatMapViewModel = new HeatMapViewModel();

            heatMapViewModel.Meses = Enum.GetValues(typeof(Enums.Enum.Mes)).Cast <Enums.Enum.Mes>().Select(v => v.ToString()).ToList();
            heatMapViewModel.FilasHeatMapViewModel = filasHeatMapViewModel;

            DateTime fechaActual = DateTimeHelper.OntenerFechaActual();

            foreach (Enums.Enum.Mes mes in Enum.GetValues(typeof(Enums.Enum.Mes)).Cast <Enums.Enum.Mes>())
            {
                if ((int)mes <= fechaActual.Month || buscarIndicadorViewModel.AnioTablero < fechaActual.Year)
                {
                    IList <MedicionViewModel> medicionesPorMes = mediciones.Where(m => m.Mes == mes).OrderBy(m => m.IndicadorViewModel.Id).ToList();

                    int i = 0;

                    while (i < filasHeatMapViewModel.Count)
                    {
                        FilaHeatMapViewModel indicador = filasHeatMapViewModel[i];

                        if (
                            (indicador.FechaInicioValidez == null ||
                             (indicador.FechaInicioValidez != null &&
                              (
                                  (indicador.FechaInicioValidez.Value.Year < buscarIndicadorViewModel.AnioTablero) ||
                                  (
                                      indicador.FechaInicioValidez.Value.Year == buscarIndicadorViewModel.AnioTablero &&
                                      indicador.FechaInicioValidez.Value.Month <= (int)mes
                                  )
                              )
                             )
                            ) &&
                            (
                                indicador.FechaFinValidez == null ||
                                (indicador.FechaFinValidez != null &&
                                 (
                                     (indicador.FechaFinValidez.Value.Year > buscarIndicadorViewModel.AnioTablero) ||
                                     (
                                         indicador.FechaFinValidez.Value.Year == buscarIndicadorViewModel.AnioTablero &&
                                         indicador.FechaFinValidez.Value.Month >= (int)mes
                                     )
                                 )
                                )
                            )
                            )
                        {
                            CeldaHeatMapViewModel celdaHeatMapViewModel = new CeldaHeatMapViewModel();
                            celdaHeatMapViewModel.IndiceIndicador             = i + 1;
                            celdaHeatMapViewModel.Mes                         = (int)mes;
                            celdaHeatMapViewModel.IdIndicador                 = indicador.IdIndicador;
                            celdaHeatMapViewModel.GrupoIndicador              = indicador.Grupo;
                            celdaHeatMapViewModel.NombreMes                   = mes.ToString();
                            celdaHeatMapViewModel.NombreIndicador             = indicador.NombreIndicador;
                            celdaHeatMapViewModel.TieneAccesoLecturaEscritura = indicador.TieneAccesoLecturaEscritura;
                            celdaHeatMapViewModel.EsAutomatico                = todosIndicadoresAutomaticos.Any(ia => ia.IndicadorViewModel.Grupo == celdaHeatMapViewModel.GrupoIndicador);

                            if (medicionesPorMes.Any(m => m.IndicadorViewModel.Grupo == indicador.Grupo && m.Mes == mes))
                            {
                                MedicionViewModel medicionPorMes = medicionesPorMes.First(m => m.IndicadorViewModel.Grupo == indicador.Grupo && m.Mes == mes);
                                celdaHeatMapViewModel.IdMedicion = medicionPorMes.MedicionId;

                                if (!medicionPorMes.NoAplica)
                                {
                                    celdaHeatMapViewModel.Medicion        = medicionPorMes.Valor;
                                    celdaHeatMapViewModel.ColorMeta       = ObtenerColorCeldaHeatMap(medicionPorMes);
                                    celdaHeatMapViewModel.MedicionCargada = true;
                                }
                                else
                                {
                                    celdaHeatMapViewModel.NoAplica = true;
                                }
                            }

                            celdasHeatMapViewModel.Add(celdaHeatMapViewModel);
                        }
                        i++;
                    }
                }
            }
            heatMapViewModel.Celdas = celdasHeatMapViewModel;
            return(heatMapViewModel);
        }
 public HeatMapPollIntervalUpdatedMessage(HeatMapViewModel updatedViewModel)
 {
     this.UpdatedViewModel = updatedViewModel;
 }