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(); } }); }
/// <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); } }
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(); }
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; }