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); } } }
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); } } }
public bool SaveLogLogrosDiarios(LogLogrosDiarios ld) { return(Save(ld, Settings.Default.CollectionLogLogroDiario)); }