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();
            }
        }
Example #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)
            });
        }
Example #3
0
 public void ExcluirCliente(int Id)
 {
     if (Id > 0)
     {
         Uniforme uniforme = repositorioUniforme.PesquisarPorId(Id);
         repositorioUniforme.Excluir(uniforme);
     }
 }
Example #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            Uniforme uniforme = db.Uniformes.Find(id);

            db.Uniformes.Remove(uniforme);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #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);
        }
Example #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);
            }
        }
Example #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));
 }
Example #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);
     }
 }
Example #9
0
 public Uniforme Inserir(Uniforme uniforme)
 {
     try
     {
         uniforme.DataInclusao = DateTime.Now;
         return(repositorioUniforme.Inserir(uniforme));
     }
     catch (Exception)
     {
         return(null);
     }
 }
Example #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;
            }
        }
Example #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));
        }
Example #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>();
 }
Example #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;
        }
Example #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));
        }
Example #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);
     }
 }
Example #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;
            }
        }
Example #17
0
 public Llegada(Uniforme distribucion, DateTime horaInicio, DateTime horaFin)
 {
     DistribucionLlegadas = distribucion;
     _horaInicio          = horaInicio;
     _horaFin             = horaFin;
 }
Example #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();
 }
Example #19
0
 public void SetDistribucionLlegadas(Uniforme distribucion)
 {
     DistribucionLlegadas = distribucion;
 }
Example #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;
                    }
                }
            }
        }