private void btnAdicionar_Click(object sender, EventArgs e)
        {
            String tamanho = cmbTamanho.SelectedItem != null?cmbTamanho.SelectedItem.ToString() : "";

            String tipo = cmbTipo.SelectedItem != null?cmbTipo.SelectedItem.ToString() : "";

            String deRala = cmbDeRala.SelectedItem != null?cmbDeRala.SelectedItem.ToString() : "";

            if (Dados.verificarPreenchimento(new List <string> {
                tamanho, tipo, deRala
            }))
            {
                Uniforme uniforme = new Uniforme();
                uniforme.Tamanho = tamanho;
                uniforme.Tipo    = tipo;
                if (deRala.Equals("Sim"))
                {
                    uniforme.DeRala = true;
                }
                else
                {
                    uniforme.DeRala = false;
                }

                Dados.MilitarSelecionado.Uniformes.Add(uniforme);

                var form = new frmUniformes();
                form.Show();
                this.Hide();
            }
        }
Пример #2
0
        public Transbordador(string ubicacion, Uniforme distribucionCargaAutos,
                             Uniforme distribucionCargaCamiones, int capacidad, string nombre, Uniforme distribucionCruceAgua,
                             int mantenimiento)
        {
            Ubicacion = ubicacion;
            DistribucionCargaAutos    = distribucionCargaAutos;
            DistribucionCargaCamiones = distribucionCargaCamiones;
            Capacidad             = capacidad;
            Estado                = "Libre";
            Vehiculos             = new List <Vehiculo>();
            Nombre                = nombre;
            DistribucionCruceAgua = distribucionCruceAgua;
            Mantenimiento         = mantenimiento;

            DistribucionInterrupciones50 = new DistribucionAleatoria(new List <Probabilidad>()
            {
                new Probabilidad(273, 0.20),
                new Probabilidad(0, 0.80)
            });

            DistribucionInterrupciones70 = new DistribucionAleatoria(new List <Probabilidad>()
            {
                new Probabilidad(312, 0.30),
                new Probabilidad(0, 0.70)
            });

            DistribucionInterrupciones100 = new DistribucionAleatoria(new List <Probabilidad>()
            {
                new Probabilidad(364, 0.50),
                new Probabilidad(0, 0.50)
            });
        }
Пример #3
0
 public void ExcluirCliente(int Id)
 {
     if (Id > 0)
     {
         Uniforme uniforme = repositorioUniforme.PesquisarPorId(Id);
         repositorioUniforme.Excluir(uniforme);
     }
 }
Пример #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            Uniforme uniforme = db.Uniformes.Find(id);

            db.Uniformes.Remove(uniforme);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #5
0
        private void GenerarUniforme()
        {
            var  result  = new Uniforme();
            long cotaInf = long.Parse(TxtCotaInf.Text);
            long cotaSup = long.Parse(TxtCotaSup.Text);

            result.AleatorioUniforme(cotaInf, cotaSup);
        }
Пример #6
0
        public void SetDistribucionLlegadaAutosContinente(Uniforme distribucion, int dia)
        {
            DistribucionLlegadasAutosContinente = distribucion;

            if (dia > 1)
            {
                DistribucionLlegadasAutosContinente.HoraInicio =
                    DistribucionLlegadasAutosContinente.HoraInicio.AddDays(1);
                DistribucionLlegadasAutosContinente.HoraFin = DistribucionLlegadasAutosContinente.HoraFin.AddDays(1);
            }
        }
Пример #7
0
 public ActionResult Edit([Bind(Include = "UniformeId,Descricao,Cor,Tamanho,AtletaId")] Uniforme uniforme)
 {
     if (ModelState.IsValid)
     {
         db.Entry(uniforme).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AtletaId = new SelectList(db.Atletas, "AtletaId", "Nome", uniforme.AtletaId);
     return(View(uniforme));
 }
Пример #8
0
 public void EditarUniforme(UniformeDTO uniforme)
 {
     if (uniforme != null)
     {
         Uniforme local = repositorioUniforme.PesquisarPorId(uniforme.Id);
         local.DataCompra    = uniforme.DataCompra;
         local.Descricao     = uniforme.Descricao;
         local.DataAlteracao = DateTime.Now;
         local.Duracao       = uniforme.Duracao;
         repositorioUniforme.Atualizar(local);
     }
 }
Пример #9
0
 public Uniforme Inserir(Uniforme uniforme)
 {
     try
     {
         uniforme.DataInclusao = DateTime.Now;
         return(repositorioUniforme.Inserir(uniforme));
     }
     catch (Exception)
     {
         return(null);
     }
 }
Пример #10
0
        public void ObtenerLlegadaVehiculo(double a, double b, DateTime reloj)
        {
            var randomTipoVehiculo = new Random();

            if (randomTipoVehiculo.NextDouble() > 0.50)//es camion
            {
                var uniforme = new Uniforme(a, b).GenerarVariableAleatoria();
                //  var h = new DateTime(uniforme);
                var horaLlegada = DateTimeConverter.DesdeHoras(Decimal.Parse(uniforme.ToString(CultureInfo.InvariantCulture)));

                var proximaLlegada = reloj + horaLlegada;
            }
        }
Пример #11
0
        // GET: Uniformes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Uniforme uniforme = db.Uniformes.Find(id);

            if (uniforme == null)
            {
                return(HttpNotFound());
            }
            return(View(uniforme));
        }
Пример #12
0
 public Servidor(Uniforme distribucionCargaAuto, Uniforme distribucionCargaCamion,
                 Uniforme distribucionCursoAgua, ICola cola, string nombre, int capacidad)
 {
     DistribucionCargaAuto   = distribucionCargaAuto;
     DistribucionCargaCamion = distribucionCargaCamion;
     DistribucionCursoAgua   = distribucionCursoAgua;
     Cola              = cola;
     Nombre            = nombre;
     Estado            = "Libre";
     CantidadMaxima    = capacidad;
     CantidadAtendidos = 0;
     Ubicacion         = "Continente";
     VehiculosABordo   = new List <Cliente>();
 }
Пример #13
0
        public Llegada(Uniforme distribucionLlegadasAutosContinente, Uniforme distribucionLlegadasAutosIsla,
                       Uniforme distribucionLlegadasCamionesContinente, Uniforme distribucionLlegadasCamionesIsla, DateTime inicio,
                       DateTime fin)
        {
            DistribucionLlegadasAutosContinente    = distribucionLlegadasAutosContinente;
            DistribucionLlegadasAutosIsla          = distribucionLlegadasAutosIsla;
            DistribucionLlegadasCamionesContinente = distribucionLlegadasCamionesContinente;
            DistribucionLlegadasCamionesIsla       = distribucionLlegadasCamionesIsla;
            HoraInicio = inicio;
            HoraFin    = fin;

            TiempoEntreLlegadas = DateTime.Today;
            ProximaLlegada      = DateTime.Today;
        }
Пример #14
0
        // GET: Uniformes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Uniforme uniforme = db.Uniformes.Find(id);

            if (uniforme == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AtletaId = new SelectList(db.Atletas, "AtletaId", "Nome", uniforme.AtletaId);
            return(View(uniforme));
        }
Пример #15
0
 public Uniforme BuscaUniforme(int Id)
 {
     if (Id > 0)
     {
         try
         {
             Uniforme uniforme = repositorioUniforme.PesquisarPorId(Id);
             return(uniforme);
         }
         catch (Exception)
         {
             return(null);
         }
     }
     else
     {
         return(null);
     }
 }
Пример #16
0
        public Llegada(Uniforme distribucion, string tipoVehiculo, string ubicacion)
        {
            if (tipoVehiculo == "Auto" && ubicacion == "Continente")
            {
                DistribucionLlegadasAutosContinente = distribucion;
            }

            if (tipoVehiculo == "Auto" && ubicacion == "Isla")
            {
                DistribucionLlegadasAutosIsla = distribucion;
            }

            if (tipoVehiculo == "Camion" && ubicacion == "Continente")
            {
                DistribucionLlegadasCamionesContinente = distribucion;
            }

            if (tipoVehiculo == "Camion" && ubicacion == "Isla")
            {
                DistribucionLlegadasCamionesIsla = distribucion;
            }
        }
Пример #17
0
 public Llegada(Uniforme distribucion, DateTime horaInicio, DateTime horaFin)
 {
     DistribucionLlegadas = distribucion;
     _horaInicio          = horaInicio;
     _horaFin             = horaFin;
 }
Пример #18
0
 /// <summary>
 /// Metodo que inicializa la lista y el objeto uniforme, tambien limpia la grilla
 /// </summary>
 public void InicializarUniforme()
 {
     ListaUniforme = new List <Generado>();
     grilla_uniforme.DataSource = null;
     Uniforme = new Uniforme();
 }
Пример #19
0
 public void SetDistribucionLlegadas(Uniforme distribucion)
 {
     DistribucionLlegadas = distribucion;
 }
Пример #20
0
        private void btn_simular_Click(object sender, EventArgs e)
        {
            var distribucionCargaAuto   = new Uniforme(1, 3);
            var distribucionCargaCamion = new Uniforme(3, 5);

            var distribucionCursoAgua = new Uniforme(55, 65);

            var colaRecepcion = new ColaFifo("Recepción de vehiculos");

            var transbordador1 = new Servidor(distribucionCargaAuto, distribucionCargaCamion, distribucionCursoAgua,
                                              colaRecepcion, "Transbordador 1", 10);
            var transbordador2 = new Servidor(distribucionCargaAuto, distribucionCargaCamion, distribucionCursoAgua,
                                              colaRecepcion, "Transbordador 2", 20);

            Llegada llegadasContinente;
            Llegada llegadasIsla;

            var horaInicio = DateTime.Today.AddHours(7);
            var horaFin    = DateTime.Today.AddHours(20);

            var distribucionLlegadaAutosContinenteAIslaDe730A12     = new Uniforme(10, 20);
            var distribucionLlegadaAutosContinenteAIslaDe12A19      = new Uniforme(25, 35);
            var distribucionLlegadaCamionesContinenteAIslaDe7A11    = new Uniforme(17, 23);
            var distribucionLlegadaCamionesContinenteAIslaDe11A1930 = new Uniforme(110, 130);

            var distribucionLlegadaCamionesIslaAContinenteDe10A18 = new Uniforme(30, 90);
            var distribucionLlegadaAutosIslaAContinenteDe10A18    = new Uniforme(30, 90);

            var dias  = int.Parse(txt_dias.Text);
            var desde = int.Parse(txt_desde.Text);
            var hasta = int.Parse(txt_hasta.Text);

            decimal promedioAtendidosAutosEnContinentePorDia    = 0;
            decimal promedioAtendidosCamionesEnContinentePorDia = 0;
            decimal promedioAtendidosAutosEnIslaPorDia          = 0;
            decimal promedioAtendidosCamionesEnIslaPorDia       = 0;
            int     colaMaximaIsla       = 0;
            int     colaMaximaContinente = 0;
            decimal promedioNoAtendidosVehiculosPorDia = 0;

            var colaEnIsla       = new List <Cliente>();
            var colaEnContinente = new List <Cliente>();
            var simulacion       = 0;

            var clientes = new List <Cliente>();

            _cancelar = false;

            llegadasContinente = new Llegada(distribucionLlegadaAutosContinenteAIslaDe730A12, horaInicio, horaFin);
            llegadasIsla       = new Llegada(distribucionLlegadaAutosIslaAContinenteDe10A18, horaInicio, horaFin);

            var esMantenido1 = false;
            var esMantenido2 = false;

            var mantenimiento = 0;

            for (var dia = 1; dia < dias; dia++)
            {
                if (_cancelar)
                {
                    break;
                }

                mantenimiento = dia;

                llegadasContinente.Abrir();
                llegadasIsla.Abrir();

                while (llegadasContinente.EstaAbierto() ||
                       llegadasIsla.EstaAbierto() ||
                       transbordador1.EstaLibre() ||
                       transbordador2.EstaLibre())
                {
                    simulacion++;

                    llegadasContinente.ActualizarLlegada();
                    llegadasIsla.ActualizarLlegada();


                    var eventos = new List <Evento>
                    {
                        new Evento("Llegada Continente", llegadasContinente.ProximaLlegada),
                        new Evento("Llegada Isla", llegadasIsla.ProximaLlegada),
                        new Evento("Cierre", llegadasContinente.Cierre),
                        new Evento("Fin Carga Transbordador 1", transbordador1.ProximoFinCarga),
                        new Evento("Fin Carga Transbordador 2", transbordador2.ProximoFinCarga),
                        new Evento("Fin Curso Agua Transbordador 1", transbordador1.ProximoFinCursoAgua),
                        new Evento("Fin Curso Agua Transbordador 2", transbordador2.ProximoFinCursoAgua),
                        new Evento("Fin Descarga Transbordador 1", transbordador1.ProximoFinDescarga),
                        new Evento("Fin Descarga Transbordador 2", transbordador2.ProximoFinDescarga),
                        new Evento("Fin Mantenimiento Transbordador 1", transbordador1.ProximoFinMantenimiento),
                        new Evento("Fin Mantenimiento Transbordador 2", transbordador2.ProximoFinMantenimiento),
                    };

                    var relojActual  = eventos.Where(ev => ev.Hora.HasValue).Min(ev => ev.Hora).Value;
                    var eventoActual = eventos.First(ev => ev.Hora.Equals(relojActual)).Nombre;

                    if (mantenimiento % 5 == 0)
                    {
                        if (!esMantenido1)
                        {
                            esMantenido1 = true;
                            transbordador1.SetMantenimiento(relojActual);
                        }
                        else
                        {
                            esMantenido1 = false;
                            transbordador2.SetMantenimiento(relojActual);
                        }
                    }

                    switch (eventoActual)
                    {
                    case "Llegada Continente":
                        Cliente clienteContinente = new Cliente(simulacion.ToString(), ObtenerTipoVehiculo());

                        if (colaEnContinente.Count == 0)
                        {
                            if ((transbordador1.EstaLibre() && !transbordador1.EstaLleno() &&
                                 transbordador1.EstaEnContinente()) ||
                                (transbordador2.EstaLibre() && !transbordador2.EstaLleno() &&
                                 transbordador2.EstaEnContinente()))
                            {
                                if (transbordador1.EstaLibre())
                                {
                                    colaEnContinente.First().TipoCliente = ObtenerTipoVehiculo();
                                    transbordador1.ActualizarFinCarga(relojActual, colaEnContinente.First());
                                }
                                else
                                {
                                    colaEnContinente.First().TipoCliente = ObtenerTipoVehiculo();
                                    transbordador2.ActualizarFinCarga(relojActual,
                                                                      colaEnContinente.First());
                                }

                                colaEnContinente.RemoveAt(0);
                            }
                            else
                            {
                                colaEnContinente.Add(clienteContinente);
                            }
                        }
                        else
                        {
                            colaEnContinente.Add(clienteContinente);
                        }

                        CargarGrilla(relojActual.ToString("HH:mm:ss"), eventoActual, dia.ToString(), transbordador1.Estado, transbordador2.Estado,
                                     transbordador1.Ubicacion, transbordador2.Ubicacion, colaEnContinente.First().TipoCliente, (llegadasContinente.ProximaLlegada - relojActual).Value.ToString("HH:mm:ss"), llegadasContinente.ProximaLlegada.Value.ToString("HH:mm:ss"),
                                     colaEnContinente.Count.ToString(),
                                     (transbordador1.ProximoFinCarga - relojActual).Value.ToString("HH:mm:ss"), transbordador1.ProximoFinCarga.Value.ToString("HH:mm:ss"),
                                     transbordador1.VehiculosABordo.Where(vehiculo => vehiculo.TipoCliente == "Auto").ToList().Count.ToString(),
                                     transbordador1.VehiculosABordo.Where(vehiculo => vehiculo.TipoCliente == "Camion").ToList().Count.ToString(),
                                     string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty,
                                     string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty,
                                     string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty,
                                     string.Empty, string.Empty, string.Empty, string.Empty);

                        break;

                    case "Llegada Isla":
                        Cliente clienteIsla = new Cliente(simulacion.ToString(), ObtenerTipoVehiculo());

                        if (colaEnIsla.Count == 0)
                        {
                            if ((transbordador1.EstaLibre() && !transbordador1.EstaLleno() &&
                                 !transbordador1.EstaEnContinente()) ||
                                (transbordador2.EstaLibre() && !transbordador2.EstaLleno() &&
                                 !transbordador2.EstaEnContinente()))
                            {
                                if (transbordador1.EstaLibre())
                                {
                                    colaEnIsla.First().TipoCliente = ObtenerTipoVehiculo();
                                    transbordador1.ActualizarFinCarga(relojActual,
                                                                      colaEnIsla.First());
                                }
                                else
                                {
                                    colaEnIsla.First().TipoCliente = ObtenerTipoVehiculo();
                                    transbordador2.ActualizarFinCarga(relojActual,
                                                                      colaEnIsla.First());
                                }

                                colaEnIsla.RemoveAt(0);
                            }
                            else
                            {
                                colaEnIsla.Add(clienteIsla);
                            }
                        }
                        else
                        {
                            colaEnIsla.Add(clienteIsla);
                        }

                        break;

                    case "Cierre":
                        llegadasContinente.Cerrar();
                        llegadasIsla.Cerrar();


                        break;

                    case "Fin Carga Transbordador 1":
                        if (transbordador1.EstaEnContinente())
                        {
                            if (colaEnContinente.Count > 0 && !transbordador1.EstaLleno())
                            {
                                colaEnContinente.First().TipoCliente = ObtenerTipoVehiculo();
                                transbordador1.ActualizarFinCarga(relojActual,
                                                                  colaEnContinente.First());

                                colaEnContinente.RemoveAt(0);
                            }

                            if (transbordador1.EstaLleno())
                            {
                                transbordador1.SetEnCursoAgua(relojActual);
                            }
                        }
                        else     //esta en isla
                        {
                            if (colaEnIsla.Count > 0)
                            {
                                colaEnIsla.First().TipoCliente = ObtenerTipoVehiculo();
                                transbordador1.ActualizarFinCarga(relojActual,
                                                                  colaEnIsla.First());

                                colaEnIsla.RemoveAt(0);
                            }

                            if (transbordador1.EstaLleno())
                            {
                                transbordador1.SetEnCursoAgua(relojActual);
                            }
                        }

                        break;

                    case "Fin Carga Transbordador 2":

                        if (transbordador2.EstaEnContinente())
                        {
                            if (colaEnContinente.Count > 0 && !transbordador2.EstaLleno())
                            {
                                colaEnContinente.First().TipoCliente = ObtenerTipoVehiculo();
                                transbordador2.ActualizarFinCarga(relojActual,
                                                                  colaEnContinente.First());

                                colaEnContinente.RemoveAt(0);
                            }

                            if (transbordador2.EstaLleno())
                            {
                                transbordador2.SetEnCursoAgua(relojActual);
                            }
                        }
                        else     //esta en isla
                        {
                            if (colaEnIsla.Count > 0)
                            {
                                colaEnIsla.First().TipoCliente = ObtenerTipoVehiculo();
                                transbordador2.ActualizarFinCarga(relojActual,
                                                                  colaEnIsla.First());

                                colaEnIsla.RemoveAt(0);
                            }

                            if (transbordador2.EstaLleno())
                            {
                                transbordador2.SetEnCursoAgua(relojActual);
                            }
                        }

                        break;

                    case "Fin Curso Agua Transbordador 1":

                        transbordador1.SetDescargaVehiculos();

                        if (transbordador1.VehiculosABordo.Count > 0)
                        {
                            transbordador1.ProximoFinDescarga = new DateTime(
                                long.Parse((transbordador1.VehiculosABordo.First().TiempoCarga / 2).ToString()));
                            transbordador1.VehiculosABordo.RemoveAt(0);
                        }

                        break;

                    case "Fin Curso Agua Transbordador 2":
                        transbordador2.SetDescargaVehiculos();

                        if (transbordador2.VehiculosABordo.Count > 0)
                        {
                            transbordador2.ProximoFinDescarga = new DateTime(
                                long.Parse((transbordador2.VehiculosABordo.First().TiempoCarga / 2).ToString()));
                            transbordador2.VehiculosABordo.RemoveAt(0);
                        }

                        break;

                    case "Fin Descarga Transbordador 1":

                        if (transbordador1.VehiculosABordo.Count > 0)
                        {
                            transbordador1.ProximoFinDescarga = new DateTime(
                                long.Parse((transbordador1.VehiculosABordo.First().TiempoCarga / 2).ToString()));
                            transbordador1.VehiculosABordo.RemoveAt(0);
                        }
                        else
                        {
                            transbordador1.SetLibre();
                        }

                        break;

                    case "Fin Descarga Transbordador 2":
                        if (transbordador2.VehiculosABordo.Count > 0)
                        {
                            transbordador2.ProximoFinDescarga = new DateTime(
                                long.Parse((transbordador2.VehiculosABordo.First().TiempoCarga / 2).ToString()));
                            transbordador2.VehiculosABordo.RemoveAt(0);
                        }
                        else
                        {
                            transbordador2.SetLibre();
                        }

                        break;

                    case "Fin Mantenimiento Transbordador 1":
                        if (colaEnContinente.Count > 0)
                        {
                            colaEnContinente.First().TipoCliente = ObtenerTipoVehiculo();
                            transbordador1.ActualizarFinCarga(relojActual,
                                                              colaEnContinente.First());

                            colaEnContinente.RemoveAt(0);
                        }

                        break;

                    case "Fin Mantenimiento Transbordador 2":
                        if (colaEnContinente.Count > 0)
                        {
                            colaEnContinente.First().TipoCliente = ObtenerTipoVehiculo();
                            transbordador2.ActualizarFinCarga(relojActual,
                                                              colaEnContinente.First());

                            colaEnContinente.RemoveAt(0);
                        }

                        break;
                    }
                }
            }
        }