Пример #1
0
        /*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);
        }
Пример #3
0
        /*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;
        }