/*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); }
private void CrearNuevaFormacion() { int cantidadLocomotoras = auxCochesFormacion.Where(x => x.Coches.EsLocomotora == 1).Sum(x => x.VecesRepetido); string errorMsj = ""; if (cantidadLocomotoras > 1) { if (MessageBox.Show("Atención: la formación tiene mas de una locomotora.¿Desea Continuar?", "", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; } if (!Util.EsAlfaNumerico(txtNombreFormacion.Text)) errorMsj += "Nombre: Incompleto/Incorrecto.\n"; else if (context.Formaciones.Where(x => x.NombreFormacion == txtNombreFormacion.Text).Count() > 0) errorMsj += "Nombre: ya existe una formación con el mismo nombre.\n"; if(auxCochesFormacion.Count == 0) errorMsj += "La formación no tiene coches.\n"; if (cantidadLocomotoras == 0) errorMsj += "No hay ninguna locomotora en la formación.\n"; if (String.IsNullOrEmpty(errorMsj)) { try { Formaciones nuevaFormacion = new Formaciones(); nuevaFormacion.NombreFormacion = txtNombreFormacion.Text; nuevaFormacion.Formaciones_X_Coches = auxCochesFormacion; context.Formaciones.Add(nuevaFormacion); context.SaveChanges(); MessageBox.Show("La formación se ha creado exitosamente.\n"); LimpiarTabCrearFormacion(); } catch (Exception exc) { MessageBox.Show("No se guardo la formación \n\n" + exc.ToString()); } } else MessageBox.Show(errorMsj); }
/*public void agregarRelacionAnterior(Relaciones relacion) { _anteriores.Add(relacion); }*/ /*public void agregarRelacionSiguiente(Relaciones relacion) { _siguientes.Add(relacion); }*/ /*Retorna cual fue el tiempo de atencion de la formacion*/ public int atenderFormacion(Formaciones formacion, ref int tiempoLlegada) { //CALCULO LA LLEGADA if (_tiempoComprometido < tiempoLlegada) _tiempoComprometido = tiempoLlegada; else tiempoLlegada = _tiempoComprometido; //El tiempo de llegada se actualiza. //ATIENDO LOS PASAJEROS actualizarGenteEsperando(tiempoLlegada); //CALCULO EL TIEMPO DE ATENCION int tiempoAtencionActual = tiempoAtencion(_genteEsperando, formacion.capacidadMaxima(), formacion.TotalPasajerosEnFormacion()); Flujo_Pasajeros fp = formacion.recibir(_genteEsperando); _pasajerosQueSubieronAlTren = fp.pasajerosQueSubieronAlTren; _genteEsperando = fp.pasajerosQueNoSubieronAlTren; //ACTUALIZO EL TIEMPO COMPROMETIDO Y LA ULTIMA ATENCION _tiempoComprometido += tiempoAtencionActual; _ultimaAtencion = _tiempoComprometido; //Por ahora son iguales. //RETORNO EL TIEMPO DE ATENCION EN LA ESTACION return tiempoAtencionActual; }