public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { var user = new Usuario { UserName = Input.Email, Email = Input.Email }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { using (SCGContext context = new SCGContext()) { var usuario = await context.Usuario.Where(x => x.UserName == Input.Email && x.Email == Input.Email).FirstAsync(); Persona persona = new Persona() { Nombres = Input.Nombres, Apellidos = Input.Apellidos, Ci = Input.CI, FechaNacimiento = Input.FechaNacimiento }; context.Persona.Add(persona); context.SaveChanges(); } _logger.LogInformation("Usuario creado."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }
private void ProcurarDescendencia(INodo <Ganado> Padre) { using (SCGContext context = new SCGContext()) { var relacionesPadreHijo = context.Relacion.Where(x => x.IdProgenitor == Padre.Dato.IdGanado).ToList(); if (relacionesPadreHijo.Count == 0) { return; } else { foreach (var val in relacionesPadreHijo) { var ganado = context.Ganado.Where(x => x.IdGanado == val.IdHijo).ToList(); ganado.ForEach(x => Padre.Hijos.Add(new Nodo <Ganado>(x))); } } Padre.Hijos.ToList().ForEach(x => ProcurarDescendencia(x)); } }
public void Actualizar() { List <Relacion> familiares = new List <Relacion>(); using (SCGContext context = new SCGContext()) { // Se encuentra las posibles relaciones que pueda tener el ganado, no importa si es hijo o padre, se puede armar el arbol con cualquiera. var relaciones = context.Relacion.Where(x => x.IdHijo == _idFamiliar || x.IdProgenitor == _idFamiliar).ToList(); var bigPadre = relaciones.FirstOrDefault(); // No hay ninguna relación asociada a este animal. if (bigPadre == null) { return; } // Se busca el primer progenitor bool tienePadre = true; while (tienePadre) { var temp = context.Relacion.Where(x => x.IdHijo == bigPadre.IdProgenitor).FirstOrDefault(); if (temp == null) { tienePadre = false; } else { bigPadre = temp; } } // Se empieza a armar el arbol genealogico desde el big padre Ganado padre = context.Ganado.Where(x => x.IdGanado == bigPadre.IdProgenitor).FirstOrDefault(); Raiz = new Nodo <Ganado>(padre); ProcurarDescendencia(Raiz); } }
public GanadoController(SCGContext context) { _context = context; }
public async void Generar() { List <DateTime> fechas = new List <DateTime>(); for (int i = 0; i < Cantidad; i++) { fechas.Add(FechaAleatoria(FechaInicio, DateTime.Now)); } fechas.Sort((a, b) => a.CompareTo(b)); for (int i = 0; i < Cantidad; i++) { using (SCGContext context = new SCGContext()) { using (var transaction = context.Database.BeginTransaction()) { var lista = await context.Ganado.Where(x => x.Estado == 1).ToListAsync(); foreach (var val in lista) { if (_rand.NextDouble() < ProbabilidadSalida) { var prob = ((fechas[i] - val.FechaNacimiento).Value.TotalDays / 365) / 6; if (_rand.NextDouble() < prob) { val.Estado = Ganado.Estados.Baja; Movimiento salida = new Movimiento(); salida.FechaMovimiento = fechas[i]; salida.IdGanado = val.IdGanado; if (_rand.NextDouble() < ProbabilidadMuerte) { salida.IdRazonMovimiento = Muertes[_rand.Next(0, Muertes.Count)]; } else { salida.IdRazonMovimiento = 7; } context.Movimiento.Add(salida); await context.SaveChangesAsync(); } } } Ganado animal = new Ganado(); // TAG animal.Tag = (i + 100).ToString() + randomChar + randomChar + randomChar; // Genero if (_rand.NextDouble() < ProbabilidadMacho) { animal.IdGenero = Genero.Tipo.Macho; } else { animal.IdGenero = Genero.Tipo.Hembra; } if (_rand.NextDouble() < ProbabilidadNelore) { animal.IdRaza = 1; } else { animal.IdRaza = Razas[_rand.Next(0, Razas.Count)]; } animal.IdEstancia = 1; bool compra = _rand.NextDouble() > ProbabilidadNacimiento; if (compra) { animal.IdEstanciaOrigen = Estancia[_rand.Next(0, Estancia.Count)]; } else { animal.IdEstanciaOrigen = 1; } animal.FechaNacimiento = fechas[i]; animal.FechaIngreso = fechas[i]; context.Ganado.Add(animal); await context.SaveChangesAsync(); // Movimiento Movimiento movimiento = new Movimiento(); movimiento.FechaMovimiento = fechas[i]; if (compra) { movimiento.IdRazonMovimiento = RazonMovimiento.Tipo.Compra; } else { movimiento.IdRazonMovimiento = RazonMovimiento.Tipo.Nacimiento; // Madre y Padre(Probabilidad) de mas de 2 años random Ganado padre = null, madre = null; if (_rand.NextDouble() < ProbabilidadPadre) { var colPadre = await context.Ganado.Where(x => x.Estado == Ganado.Estados.Activo && x.IdGenero == Genero.Tipo.Macho && (DateTime.Now - x.FechaNacimiento) > TimeSpan.FromDays(365 * 2)).ToListAsync(); if (colPadre.Count != 0) { padre = colPadre[_rand.Next(0, colPadre.Count)]; } if (padre != null) { Relacion relPadre = new Relacion(); relPadre.IdHijo = animal.IdGanado; relPadre.IdProgenitor = padre.IdGanado; context.Relacion.Add(relPadre); await context.SaveChangesAsync(); } } var colMadre = await context.Ganado.Where(x => x.Estado == Ganado.Estados.Activo && x.IdGenero == Genero.Tipo.Hembra && (DateTime.Now - x.FechaNacimiento) > TimeSpan.FromDays(365 * 2)).ToListAsync(); if (colMadre.Count != 0) { padre = colMadre[_rand.Next(0, colMadre.Count)]; } if (madre != null) { Relacion relMadre = new Relacion(); relMadre.IdHijo = animal.IdGanado; relMadre.IdProgenitor = madre.IdGanado; context.Relacion.Add(relMadre); await context.SaveChangesAsync(); } if (padre == null && madre == null) { movimiento.IdRazonMovimiento = RazonMovimiento.Tipo.Compra; } } movimiento.IdGanado = animal.IdGanado; context.Movimiento.Add(movimiento); await context.SaveChangesAsync(); transaction.Commit(); } } } }
public CancelacionController(SCGContext context) { _context = context; }
public VacunasController(SCGContext context) { _context = context; }
public RazasController(SCGContext context) { _context = context; }
public EstanciasController(SCGContext context) { _context = context; }
public HomeController(SCGContext context, UserManager <Usuario> _user, RoleManager <IdentityRole <int> > _role) { _userman = _user; _roleman = _role; _context = context; }
public PersonasController(SCGContext context) { _context = context; }
public OrdenController(SCGContext context) { _context = context; }
public MovimientoController(SCGContext context) { _context = context; }
public async void Generar() { for (int i = 2006; i <= 2019; i++) { List <int> vacunaciones = new List <int>() { _rand.Next(2, 4), _rand.Next(5, 7), _rand.Next(10, 13) }; // Todos se dan entre el dia 05 - 25 for (int j = 1; j <= 12; j++) { var inicio = DateTime.Parse(string.Format("05/{0}/{1}", j, i)); var fin = DateTime.Parse(string.Format("25/{0}/{1}", j, i)); var fecha = FechaAleatoria(inicio, fin); bool existeInspeccion = false; bool existeVacunacion = false; bool existePesaje = false; using (SCGContext context = new SCGContext()) { using (var transaction = context.Database.BeginTransaction()) { var ganado = await context.Ganado.Where(x => x.Estado == Ganado.Estados.Activo && x.FechaIngreso <= fecha).ToListAsync(); var orden = new Orden() { FechaPlanificacion = fecha, Razon = string.Empty }; context.Orden.Add(orden); await context.SaveChangesAsync(); var conteo = new Conteo() { IdOrden = orden.IdOrden }; context.Conteo.Add(conteo); await context.SaveChangesAsync(); var inspeccion = new Inspeccion() { IdOrden = orden.IdOrden }; if (_rand.NextDouble() < ProbabilidadInspeccion) { context.Inspeccion.Add(inspeccion); await context.SaveChangesAsync(); existeInspeccion = true; } var pesaje = new Pesaje() { IdOrden = orden.IdOrden }; if (_rand.NextDouble() < ProbabilidadPesaje) { context.Pesaje.Add(pesaje); await context.SaveChangesAsync(); existePesaje = true; } // Mes de vacunacion Vacunacion vacunacion = new Vacunacion() { IdOrden = orden.IdOrden }; int vacunasMax = _rand.Next(2, 5); var listaVacunas = vacunasRandom(vacunasMax); if (vacunaciones.Exists(x => x == j)) { context.Vacunacion.Add(vacunacion); await context.SaveChangesAsync(); for (int k = 0; k < listaVacunas.Count; k++) { PlanificacionVacunacion pv = new PlanificacionVacunacion() { IdVacunacion = vacunacion.IdVacunacion }; pv.IdVacuna = listaVacunas[k]; context.PlanificacionVacunacion.Add(pv); await context.SaveChangesAsync(); } existeVacunacion = true; } /// A PARTIR DE ACA SE COMPLETAN LAS ACTIVIDADES foreach (var val in ganado) { ResultadoConteo rc = new ResultadoConteo() { IdConteo = conteo.IdConteo, IdGanado = val.IdGanado, Asistencia = 0 }; if (_rand.NextDouble() < ProbabilidadAsistencia) { rc.Asistencia = 1; } else { rc.Asistencia = 0; } context.ResultadoConteo.Add(rc); await context.SaveChangesAsync(); if (existeInspeccion) { if (_rand.NextDouble() < ProbabilidadPadecimiento) { var ri = new ResultadoInspeccion() { IdInspeccion = inspeccion.IdInspeccion, IdGanado = val.IdGanado }; context.ResultadoInspeccion.Add(ri); await context.SaveChangesAsync(); InspeccionPadecimiento ip = new InspeccionPadecimiento() { IdResultadoInspeccion = ri.IdResultadoInspeccion }; ip.IdPadecimiento = Padecimientos[_rand.Next(0, Padecimientos.Count)]; context.InspeccionPadecimiento.Add(ip); await context.SaveChangesAsync(); } } if (existePesaje) { bool invierno = false; var rp = new ResultadoPesaje() { IdGanado = val.IdGanado, IdPesaje = pesaje.IdPesaje }; int edad = (int)Math.Round((fecha - val.FechaNacimiento).Value.TotalDays / 365); if (fecha.Month > 4 && fecha.Month < 9) { invierno = true; } rp.Peso = calcularPeso(edad, invierno); context.ResultadoPesaje.Add(rp); await context.SaveChangesAsync(); } if (existeVacunacion) { var rv = new ResultadoVacunacion() { IdGanado = val.IdGanado, IdVacunacion = vacunacion.IdVacunacion }; context.ResultadoVacunacion.Add(rv); await context.SaveChangesAsync(); for (int k = 0; k < listaVacunas.Count; k++) { var va = new VacunaAplicada() { IdResultadoVacunacion = rv.IdResultadoVacunacion, IdVacuna = listaVacunas[k] }; context.VacunaAplicada.Add(va); await context.SaveChangesAsync(); } } } transaction.Commit(); } } } } }