Пример #1
0
        private static void CalcularPuntosDiarios(Reto reto, Equipo equipo, List <LogEjercicio> lst, DateTime diaAnterior)
        {
            DetalleEquipo de = new DetalleEquipo();

            de.IdEquipo = equipo.Id;
            de.Equipo   = equipo.Name;

            foreach (var miembro in equipo.Miembros)
            {
                int totaldia = lst.Where(x => x.FechaHora.Date == diaAnterior.Date && x.Usuario == miembro).Sum(x => x.Conteo);
                if (de.Puntos < totaldia)
                {
                    de.Puntos       = totaldia;
                    de.MejorMiembro = miembro;
                }
            }
            if (de.MejorMiembro != null)
            {
                LogLogrosDiarios ld = new LogLogrosDiarios();
                ld.Usuario     = de.MejorMiembro;
                ld.IdReto      = reto.Id;
                ld.LogroDiario = MongoModels.LogrosDiarios.MasPuntosEnElDia;
                ld.Fecha       = new DateTime(diaAnterior.Year, diaAnterior.Month, diaAnterior.Day, 0, 0, 0);
                try
                {
                    Manager.Instance.SaveLogLogrosDiarios(ld);
                }
                catch (Exception ex)
                {
                    //ya existia el registro.
                    log.Error("Ya existia el logro PuntosDiarios en la bd", ex);
                }
            }
        }
Пример #2
0
        private static void CalcularMayorCrecimiento(Reto reto, Equipo equipo, List <LogEjercicio> lst)
        {
            double   porcentajeMayor = 0;
            string   usuario         = "";
            DateTime diaAnterior     = DateTime.Now.AddDays(-1);
            int      diasReto        = (DateTime.Now.AddDays(-1) - reto.FechaInicio).Days;

            foreach (var miembro in equipo.Miembros)
            {
                int cantPasos    = 0;
                int cantPasosHoy = 0;
                for (int i = 0; i < diasReto; i++)
                {
                    cantPasos = lst.Where(x => x.FechaHora.Date == reto.FechaInicio.AddDays(i).Date&&  x.Usuario == miembro).Sum(x => x.Conteo);
                }
                cantPasosHoy = lst.Where(x => x.FechaHora.Date == DateTime.Now.AddDays(-1).Date&& x.Usuario == miembro).Sum(x => x.Conteo);
                double prom = (double)cantPasos / (double)diasReto;

                if (prom != 0)
                {
                    double porcentajeCrecimiento = ((double)cantPasosHoy * 100) / prom;
                    if (porcentajeCrecimiento > porcentajeMayor)
                    {
                        porcentajeMayor = porcentajeCrecimiento;
                        usuario         = miembro;
                    }
                }
            }
            if (porcentajeMayor != 0)
            {
                LogLogrosDiarios ld = new LogLogrosDiarios();
                ld.Usuario     = usuario;
                ld.IdReto      = reto.Id;
                ld.LogroDiario = MongoModels.LogrosDiarios.MayorCrecimiento;
                ld.Fecha       = new DateTime(diaAnterior.Year, diaAnterior.Month, diaAnterior.Day, 0, 0, 0);
                try
                {
                    Manager.Instance.SaveLogLogrosDiarios(ld);
                }
                catch (Exception ex)
                {
                    log.Error("Ya existia el logro MayorCrecimiento en la bd", ex);
                }
            }
        }
Пример #3
0
 public bool SaveLogLogrosDiarios(LogLogrosDiarios ld)
 {
     return(Save(ld, Settings.Default.CollectionLogLogroDiario));
 }