private void CrearNuevoServicio() { string errorMsj = ""; Servicios nuevoServicio = new Servicios(); if (!Util.EsAlfaNumerico(txtNombreServicio.Text)) errorMsj += "Nombre de servicio: Incompleto/Incorrecto.\n"; else if (context.Servicios.Where(x => x.Nombre == txtNombreServicio.Text).Count() > 0) errorMsj += "Nombre de servicio: ya existe un servicio con el mismo nombre.\n"; if (auxRelaciones.Count == 0) errorMsj += "El servicio no tiene estaciones relacionadas.\n"; if (!nuevoServicio.ServicioEsValido(auxRelaciones)) errorMsj += "Las relaciones del servicio tienen errores.\n"; if (clbxFormacionesCrear.CheckedItems.Count == 0) errorMsj += "El servicio no tiene formaciones asignadas.\n"; if (string.IsNullOrEmpty(errorMsj)) { nuevoServicio.Nombre = txtNombreServicio.Text; nuevoServicio.Relaciones = auxRelaciones; for (int pos = 0; pos <= clbxFormacionesCrear.CheckedItems.Count - 1; pos++) { Formaciones f = (Formaciones)clbxFormacionesCrear.CheckedItems[pos]; Servicios_X_Formaciones sf = new Servicios_X_Formaciones(); sf.Id_Formacion = f.Id; sf.Formaciones = f; //sf.Servicios = nuevoServicio; nuevoServicio.Servicios_X_Formaciones.Add(sf); } try { context.Servicios.Add(nuevoServicio); context.SaveChanges(); lbxServiciosModificar.Items.Add(nuevoServicio); lbxServiciosEliminar.Items.Add(nuevoServicio); LimpiarTabCrear(); MessageBox.Show("El servicio se ha creado exitosamente.\n"); } catch (Exception exc) { MessageBox.Show("No se guardo el servicio \n\n" + exc.ToString()); } } else MessageBox.Show(errorMsj); }
private void GuardarCambiosServicio() { string errorMsj = ""; Servicios servicioSeleccionado = (Servicios)lbxServiciosModificar.SelectedItem; if (servicioSeleccionado == null) { MessageBox.Show("Se ha deseleccionado la formación que iba a ser modificada.\n"); return; } List<string> nombreDeServicios = context.Servicios.Where(x => x.Id != servicioSeleccionado.Id).Select(x => x.Nombre).ToList<string>(); if (!Util.EsAlfaNumerico(txtNombreServicioMod.Text)) errorMsj += "Nombre de servicio: Incompleto ó Incorrecto.\n"; else if (nombreDeServicios.Contains(txtNombreServicioMod.Text)) errorMsj += "Nombre de servicio: ya existe un servicio con el mismo nombre.\n"; if (servicioSeleccionado.Relaciones.Count == 0) errorMsj += "El servicio no tiene estaciones relacionadas.\n"; if (!servicioSeleccionado.ServicioEsValido(servicioSeleccionado.Relaciones.ToList<Relaciones>())) errorMsj += "Las relaciones del servicio tienen errores.\n"; if (clbxFormacionesMod.CheckedItems.Count == 0) errorMsj += "El servicio no tiene formaciones asignadas.\n"; if (string.IsNullOrEmpty(errorMsj)) { try { List<Servicios_X_Formaciones> auxFormacionesServicio = servicioSeleccionado.Servicios_X_Formaciones.ToList<Servicios_X_Formaciones>(); servicioSeleccionado.Nombre = txtNombreServicioMod.Text; /*Se quitan aquellas formaciones que ya no pertenezcan al servicio*/ foreach (Servicios_X_Formaciones sf in auxFormacionesServicio) { if (!clbxFormacionesMod.CheckedItems.Contains(sf.Formaciones)) { servicioSeleccionado.Servicios_X_Formaciones.Remove(sf); context.Servicios_X_Formaciones.Remove(sf); } } /*Se agregan las nuevas formaciones al servicio*/ foreach (Formaciones f in clbxFormacionesMod.CheckedItems) { if (servicioSeleccionado.Servicios_X_Formaciones.Where(x => x.Id_Formacion == f.Id).Count() == 0) { Servicios_X_Formaciones servform = new Servicios_X_Formaciones(); servform.Id_Servicio = servicioSeleccionado.Id; servform.Id_Formacion = f.Id; servform.Formaciones = f; servicioSeleccionado.Servicios_X_Formaciones.Add(servform); } } /*Las modificaciones a la lista de relaciones se van guardando a medida que se agregan o sacan formaciones*/ context.SaveChanges(); lbxServiciosModificar.Items.Clear(); lbxServiciosEliminar.Items.Clear(); foreach (Servicios s in context.Servicios) { lbxServiciosModificar.Items.Add(s); lbxServiciosEliminar.Items.Add(s); } MessageBox.Show("Los cambios han sido guardados exitosamente.\n"); } catch (Exception exc) { MessageBox.Show("No se guardo el servicio \n\n" + exc.ToString()); } } else MessageBox.Show(errorMsj); }
/*Permite agregar un tipo de formacion que prestara el servicio*/ public void AgregarFormacionDispoble(Formaciones unaFormacion) { Servicios_X_Formaciones sf = new Servicios_X_Formaciones(); sf.Id_Servicio = this.Id; sf.Formaciones = unaFormacion; Servicios_X_Formaciones.Add(sf); //_formacionesDisponibles.Add(unaFormacion); }