public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { return(Page()); } _context.Solicitudes.Add(Solicitud); await _context.SaveChangesAsync(); // se agrega la solicitud como observador. Costo costo = new Costo(); costo.Agregar(Solicitud); return(RedirectToPage("./Index")); }
/// <summary> /// Seeding Solicitud. /// </summary> private static void SeedSolicitudes(ApplicationContext context) { if (context.Solicitudes.Any()) { return; } context.Solicitudes.AddRange( new Solicitud { SolicitudId = 1, ModoDeContrato = 1, RolRequerido = "Operador de Cabina 03 y Estudio de Radio", HorasContratadas = 8, NivelExperiencia = "Básico", Observaciones = "s/obs." }, new Solicitud { SolicitudId = 2, ModoDeContrato = 2, RolRequerido = "Sonidista", HorasContratadas = 10, NivelExperiencia = "Avanzado", Observaciones = "s/obs." }, new Solicitud { SolicitudId = 3, ModoDeContrato = 1, RolRequerido = "Presentador / conductor", HorasContratadas = 15, NivelExperiencia = "Básico", Observaciones = "s/obs." }, new Solicitud { SolicitudId = 4, ModoDeContrato = 1, RolRequerido = "Sonidista", HorasContratadas = 8, NivelExperiencia = "Básico", Observaciones = "s/obs." }, new Solicitud { SolicitudId = 5, ModoDeContrato = 2, RolRequerido = "Redactor creativo", HorasContratadas = 10, NivelExperiencia = "Avanzado", Observaciones = "s/obs." }, new Solicitud { SolicitudId = 6, ModoDeContrato = 1, RolRequerido = "Operador de Cabina 02", HorasContratadas = 15, NivelExperiencia = "Básico", Observaciones = "s/obs." }, new Solicitud { SolicitudId = 7, ModoDeContrato = 1, RolRequerido = "Diseñador gráfico", HorasContratadas = 8, NivelExperiencia = "Básico", Observaciones = "s/obs." }, new Solicitud { SolicitudId = 8, ModoDeContrato = 2, RolRequerido = "Cámara y asistente de cámara", HorasContratadas = 10, NivelExperiencia = "Avanzado", Observaciones = "s/obs." } ); // guarda los cambios. context.SaveChanges(); // Cuando se crea la solicitud en context, queda a costo cero y status inactivo. // Actualizo el status y el costo de cada solicitud de acuerdo al precio vigente. var solicitudes = context.Solicitudes; Costo Costos = new Costo(); foreach (var s in solicitudes) { // actualización de precios. s.costoSolicitud = Costos.CalcularCostoSolicitud( s.ModoDeContrato, s.HorasContratadas, s.NivelExperiencia); // status activo. s.StatusActivo(); // se agrega la solicitud como observador. Costos.Agregar(s); } // guarda los cambios. context.SaveChanges(); }