public async Task <ClientDashboard> GetDashboard(string clientId)
        {
            EstadisticaDiario dia = await _estadisticasService.GetDiario(clientId);

            EstadisticaSemanal semana = await _estadisticasService.GetSemanal(clientId);

            EstadisticaMensual mensual = await _estadisticasService.GetMensual(clientId);

            Cuenta cnt = await _financieroService.GetCuenta(clientId);

            ClienteOpciones opt = await _opcionesService.GetOpciones(clientId);

            DateTime utcCuba = DateTime.Now.ToUtcCuba();

            double costoAnuncio = await _financieroService.CostoAnuncio(clientId);

            double gastoEsperado = await GetGastoEsperadoByClient(clientId, utcCuba);


            PrediccionIndicadores prediccion = new PrediccionIndicadores(cnt.Saldo, gastoEsperado);

            ClientDashboard dashboard = new ClientDashboard(cnt, dia, semana, mensual, opt, prediccion);

            return(dashboard);
        }
Esempio n. 2
0
        private async Task <ClientDetalles> BuildDetallesModel(string ClientId)
        {
            Cuenta cuenta = await _financieroService.GetCuentaIncludeAll(ClientId);

            IdentityUser clientUser = cuenta.User;
            IEnumerable <RecargaDetail> recargas = await _financieroService.GetRecargasByClient(ClientId);

            DateTime date = DateTime.Now.ToUtcCuba();
            double   GastoEsperadoActual = await _userControlService.GetGastoEsperadoByClient(ClientId, date);

            PrediccionIndicadores prediccion = new PrediccionIndicadores(cuenta.Saldo, GastoEsperadoActual);

            date = date.AddMonths(1);
            date = new DateTime(date.Year, date.Month, 1);
            double GastoEsperadoProximo = await _userControlService.GetGastoEsperadoByClient(ClientId, date);;

            EstadisticaDiario dia = await _estadisticasService.GetDiario(ClientId);

            EstadisticaSemanal semana = await _estadisticasService.GetSemanal(ClientId);

            EstadisticaMensual mensual = await _estadisticasService.GetMensual(ClientId);

            ClientDetalles model = new ClientDetalles(clientUser, recargas, cuenta,
                                                      prediccion, GastoEsperadoProximo,
                                                      dia, semana, mensual);

            return(model);
        }
        public async Task <EstadisticaSemanal> GetSemanal(string clientId)
        {
            DateTime UtcCuba = DateTime.Now.ToUtcCuba();
            List <EstadisticaDiario> last7Days = new List <EstadisticaDiario>(7);

            for (int i = 6; i >= 0; i--)
            {
                last7Days.Add(await GetDiarioDetail(clientId, UtcCuba.AddDays(-i)));
            }

            int                total  = last7Days.Sum(d => d.Total);
            double             gasto  = Math.Round(last7Days.Sum(d => d.Gasto), 3);
            EstadisticaSemanal semana = new EstadisticaSemanal(last7Days, total, UtcCuba, gasto);

            return(semana);
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="client">IdentityUser del cliente en cuestion</param>
 /// <param name="Recargas">Lista de ultimas recargas recibidas</param>
 /// <param name="cuenta">Cuenta actual</param>
 /// <param name="GastoEsperadoActual">Gasto esperado en lo que resta de mes</param>
 /// <param name="GastoEsperadoProximo">Gasto esperado para el mes próximo</param>
 public ClientDetalles(IdentityUser client,
                       IEnumerable <RecargaDetail> Recargas,
                       Cuenta cuenta,
                       PrediccionIndicadores prediccionIndicadores,
                       double GastoEsperadoProximo,
                       EstadisticaDiario Diario,
                       EstadisticaSemanal Semanal,
                       EstadisticaMensual Mensual)
 {
     Id            = client.Id;
     UserName      = client.UserName;
     Phone         = client.PhoneNumber;
     this.Recargas = Recargas;
     Cuenta        = new CuentaDTO(cuenta);
     this.PrediccionIndicadores = prediccionIndicadores;
     this.GastoEsperadoProximo  = GastoEsperadoProximo;
     this.Diario  = Diario;
     this.Semanal = Semanal;
     this.Mensual = Mensual;
 }