예제 #1
0
 public void Actualizar(Horario entHorario)
 {
     try
     {
         List <Horario> horarios = null;
         using (AssistanceControlEntities entidad = new AssistanceControlEntities())
         {
             var consulta = from c in entidad.Horarios
                            where c.HorarioId == entHorario.HorarioId
                            select c;
             horarios = consulta.ToList();
             if (horarios.Count > 0)
             {
                 foreach (Horario horario in horarios)
                 {
                     //
                 }
             }
             entidad.SaveChanges();
         }
     }
     catch (Exception)
     {
         throw new Exception("Error al actualizar Horario.");
     }
 }
예제 #2
0
        private void validarHorario(Reserva reservaACrear)
        {
            Horario horario = obtenerHorario("http://localhost:22057/Horarios.svc/Horarios?codigo=" + reservaACrear.CodigoEspacio + "&fecha=" + reservaACrear.FechaInicio);

            if (horario == null)
            {
                throw new WebFaultException <Error>(
                          new Error()
                {
                    Codigo  = "ERR006",
                    Mensaje = "El espacio no se encuentra disponible en este horario"
                },
                          HttpStatusCode.InternalServerError);
            }

            DateTime fecha        = DateTime.ParseExact(reservaACrear.FechaInicio, DATEFORMAT, CultureInfo.InvariantCulture);
            int      horaInicio   = int.Parse(horario.HoraInicio.Substring(0, 2));
            int      minutoInicio = int.Parse(horario.HoraInicio.Substring(3));

            int horaFin   = int.Parse(horario.HoraFin.Substring(0, 2));
            int minutoFin = int.Parse(horario.HoraFin.Substring(3));

            if (!(horaInicio <= fecha.Hour && fecha.Hour <= horaFin))
            {
                throw new WebFaultException <Error>(
                          new Error()
                {
                    Codigo  = "ERR006",
                    Mensaje = "El espacio no se encuentra disponible en este horario"
                },
                          HttpStatusCode.InternalServerError);
            }
        }
예제 #3
0
        public List <Horario> obtenerHorariosDisponibles(Nutricionista nutricionista, DateTime fecha, String preferencia)
        {
            List <Horario> horarios = new List <Horario>();

            string textoComando = "SELECT distinct(id), tiempo FROM HORARIO full JOIN Turno on(turno.horarioID = Horario.id) where horario.id not in (select horarioID from Turno where (coalesce(nutricionistaId, '') = @NUTRICIONISTAID and coalesce(turno.fecha, '') = @FECHA and coalesce(turno.eliminado, '') = 0))";

            if (preferencia.Equals("manana"))
            {
                textoComando += " AND tiempo < '13:00'";
            }

            if (preferencia.Equals("tarde"))
            {
                textoComando += " AND tiempo >= '13:00'";
            }

            List <SqlParameter> lista = new List <SqlParameter>();

            lista.Add(new SqlParameter("@NUTRICIONISTAID", nutricionista.Id));
            lista.Add(new SqlParameter("@FECHA", fecha));

            DataTable dt = sqlHelper.ejecutarDataAdapter(textoComando, lista).Tables[0];

            foreach (DataRow dr in dt.Rows)
            {
                Horario horario = new Horario();
                horario.Tiempo = DateTime.Today + (TimeSpan)dr["tiempo"];
                horario.Id     = (int)dr["id"];
                horarios.Add(horario);
            }

            return(horarios);
        }
예제 #4
0
        public async Task <ActionResult <Horario> > Create([FromBody] CreateHorarioViewModel model)
        {
            if (!ModelState.IsValid)//validando
            {
                return(BadRequest(ModelState));
            }

            Horario ca = new Horario
            {
                HoraApertura = model.HoraApertura,
                HoraCierre   = model.HoraCierre
            };

            _context.Horarios.Add(ca);//como si escribieras el insert sin ejecutar
            try
            {
                await _context.SaveChangesAsync();//con el savechanges lo aterrizas o actualizar los cambios en la bd
            }
            catch (Exception)
            {
                return(BadRequest());
            }

            return(Ok());
        }
예제 #5
0
 public ReporteDiarioDTO(long agenteId
                         , DateTime fechaBuscar
                         , Horario horario
                         , Novedad novedad
                         , ComisionServicio comision
                         , Lactancia lactancia
                         , RelojDefectuoso reloj)
 {
     AgenteId               = agenteId;
     FechaReporte           = fechaBuscar;
     _reporteServicio       = new ReporteServicio();
     _agente                = _reporteServicio.BuscarPorId(AgenteId);
     _horario               = horario;
     _accesos               = _reporteServicio.obtenerAccesos(AgenteId, fechaBuscar);
     _toleraciaLlegadaTarde = _reporteServicio.obtenerMinutosLlegadaTarde();
     _toleraciaAusente      = _reporteServicio.obtenerMinutosAusentes();
     _minutosLactancia      = _reporteServicio.obtenerMinutosLactancia();
     _lactancia             = lactancia;
     _novedad               = novedad;
     _comision              = comision;
     _reloj = reloj;
     if (_novedad != null)
     {
         _tipoNovedad = new TipoNovedad();
         _tipoNovedad = _reporteServicio.obtenerTipo(_novedad.Id);
     }
 }
        public int Actualizar(string viejo, string nuevo)
        {
            Horario vH = new Horario();

            vH.TC_Horario  = viejo;
            vH.TH_Duracion = "00:00:00";

            Horario nH = new Horario();

            nH.TC_Horario  = nuevo;
            nH.TH_Duracion = "00:00:00";

            //confirmar que existe un registro con el nombre viejo
            Horario temp = new HorarioAD().consultarTiempo(vH);

            if (temp.TC_Horario == null)
            {
                return(0);
            }
            else
            {
                return(new HorarioAD().actualizarHorario(viejo, nH));
            }

            //ViewBag.Message = "Catálogo de Horarios";
            //string listaS = new HorarioAD().listarHorarios();
            //List<Horario> lista = JsonConvert.DeserializeObject<List<Horario>>(listaS);
            //ViewBag.ListaTiempos = lista;
            //ViewBag.Respuesta = "Actualizado";
            //return View("Listar");
        }
예제 #7
0
        private void tpDesayuno_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            try
            {
                var db = new SQLiteConnection(Preferences.Get("DB_PATH", ""));

                var horarioDesayuno = db.Query <Horario>("SELECT * FROM Horario where ID = 1");

                Horario horario = horarioDesayuno.First();
                if ((tpDesayuno.Time == new TimeSpan()))
                {
                }
                else
                {
                    horario.Hora = tpDesayuno.Time;
                    // DependencyService.Get<IToastMessage>().DisplayMessage("Se ha actualizado la hora correctamente.");
                    //horario.Hora = tpDesayuno.Time;
                }
                db.Update(horario);
            }
            catch (Exception ea)
            {
                var x = ea.Message;
            }
        }
예제 #8
0
        public Horario AdicionarHorario(Horario horario)
        {
            _context.Horarios.Add(horario);
            _context.SaveChanges();

            return(horario);
        }
예제 #9
0
 public void editar_registro(Registro registro, Colaborador colaborador, Horario horario)
 {
     nuevo_registro      = new Registros_Agregar(registro, colaborador, horario, this);
     nuevo_registro.Dock = DockStyle.Fill;
     pn_master.Controls.Clear();
     pn_master.Controls.Add(nuevo_registro);
 }
예제 #10
0
        public Stack <string> CargarClases()
        {
            Horario        auxHorario = new Horario();
            Stack <string> resp       = new Stack <string>();
            var            client     = new MongoClient(Global.Path_DataBase);
            var            database   = client.GetDatabase("app_pago");
            var            collection = database.GetCollection <BsonDocument>("profesor");
            var            builder    = Builders <BsonDocument> .Filter;
            var            filter     = builder.Eq("name", this.Profesor);

            var result = collection.Find(filter).ToList();

            foreach (var doc in result)
            {
                var aux     = doc.GetValue("clases", "No Posee").AsBsonDocument;
                var dia     = aux.GetValue("Tai Chi para Principiantes", "No posee").AsBsonDocument;
                var horario = dia.GetValue("Viernes", "No posee").AsBsonArray;

                foreach (var clase in horario)
                {
                    var aux1 = clase;

                    //auxHorario.Horarios = clase;
                    //clases.Add(clase, clase.Value);
                    resp.Push(aux1.ToString());
                }
            }
            return(resp);
        }
 public ImprimirAuditoria()
 {
     InitializeComponent();
     this.DataContext = this;
     Operario         = SesionManager.Sesion.Operario;
     Turno            = Horario.CalcularTurnoAFecha(DateTime.Now);
 }
예제 #12
0
        public async Task <IActionResult> Create1([Bind("Id,Dia,HoraApertura,HoraCierre,Estado,ConsultorioId")] Horario horario)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.GetUserAsync(User);

                List <Consultorio> listConsultorio = await _context.Consultorio.ToListAsync();

                foreach (var item in listConsultorio)
                {
                    if (item.UserId == user.Id)
                    {
                        var consultorio = item;
                        horario.ConsultorioId = consultorio.IdConsultorio;
                        horario.Estado        = true;

                        _context.Add(horario);
                        await _context.SaveChangesAsync();

                        return(RedirectToAction("Account", "Identity", new { @id = "Manage" }));
                    }
                }
            }
            ViewData["ConsultorioId"] = new SelectList(_context.Consultorio, "IdConsultorio", "IdConsultorio", horario.ConsultorioId);
            return(View(horario));
        }
예제 #13
0
        //Get
        public Horario Get(byte id)
        {
            Horario          a     = null;
            OracleCommand    cmd   = null;
            string           query = @"SELECT timeTableId, hourStart, hourFinish, ISNULL(updateDate,0), status, registrationDate, day
                            FROM timetable
                            WHERE timeTableId = :timeTableId";
            OracleDataReader dr    = null;

            try
            {
                cmd = DBImplementation.CreateBasicCommand(query);
                OracleParameter[] parameters1 = new OracleParameter[1];

                parameters1[0] = new OracleParameter(":timeTableId", id);
                cmd.Parameters.AddRange(parameters1);
                dr = DBImplementation.ExecuteDataReaderCommand(cmd);
                while (dr.Read())
                {
                    a = new Horario(byte.Parse(dr[0].ToString()), DateTime.Parse(dr[1].ToString()), DateTime.Parse(dr[2].ToString()), DateTime.Parse(dr[3].ToString()), byte.Parse(dr[4].ToString()), DateTime.Parse(dr[5].ToString()), dr[6].ToString());
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                cmd.Connection.Close();
                dr.Close();
            }
            return(a);
        }
예제 #14
0
        /// <summary>
        /// Actualizamos un registro en la tabla Autor
        /// en la BD
        /// </summary>
        /// <param name="horario"></param>
        public void Actualizar(Horario horario)
        {
            //Paso 1: conexion BD
            SqlConnection conexion = new SqlConnection(Conexion.ObtenerCadena());

            try
            {
                //Abrir la conexion
                conexion.Open();
                //Paso 2: Instruccion
                string sql = "Sp_Horario_Update";

                //Paso 3: Comando para ejecutar el paso 2
                SqlCommand comando = new SqlCommand(sql, conexion);

                //Paso 4: Enviar los parametros
                comando.Parameters.AddWithValue("@Id", horario.ID);
                comando.Parameters.AddWithValue("@Hora", horario.Hora);

                //Paso 4.1: Usar el Procedimineto Almacenado
                comando.CommandType = System.Data.CommandType.StoredProcedure;

                //Paso 5: Ejecutar el Comando
                comando.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conexion.Close();
            }
        }
예제 #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Horario h = new Horario();

        h = h.GetHorario();
        Session["Horario"] = h;
    }
예제 #16
0
        public async Task <IActionResult> Edit(int id, [Bind("HorarioID,PontoDeInteresseID,DiaID,HInicio,HFim")] Horario horario)
        {
            if (id != horario.HorarioID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(horario);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!HorarioExists(horario.HorarioID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["DiaID"] = new SelectList(_context.Dia, "DiaID", "DNome", horario.DiaID);
            ViewData["PontoDeInteresseID"] = new SelectList(_context.PontoDeInteresse, "PontoDeInteresseID", "PNome", horario.PontoDeInteresseID);
            return(View(horario));
        }
예제 #17
0
        public void borrarHorario(Horario horario)
        {
            StringBuilder query = new StringBuilder(" delete horario  ");

            query.Append(" where hor_id = @id ");

            SqlConnection connection = ConexionSingleton.obtenerConexion();

            connection.Open();
            SqlTransaction tx  = connection.BeginTransaction();
            SqlCommand     cmd = new SqlCommand(query.ToString(), connection, tx);

            cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.BigInt)).Value = horario.id;

            try
            {
                cmd.ExecuteNonQuery();
                tx.Commit();
                connection.Close();
                Usuario usu = new Usuario();
                usu.id = TrabajoDeCampo.Properties.Settings.Default.SessionUser;
                new DAOSeguridad().grabarBitacora(usu, "Se borró un horario", CriticidadEnum.MEDIA);
            }
            catch (Exception ex)
            {
                tx.Rollback();
                connection.Close();
                throw ex;
            }
        }
예제 #18
0
        private void btnAgregarHorario_Click(object sender, EventArgs e)
        {
            dia              = (Dia)cboDia.SelectedItem;
            aula             = (Aula)cboAula.SelectedItem;
            horario          = (Horario)cboHorario.SelectedItem;
            cursada.Profesor = (Empleado)cboProfesor.SelectedItem;

            if (cboHorario.Items.Count != 0)
            {
                cursadaBusiness.agregarHorario(cursada.IdCursada, dia.IdDia, horario.IdHorario, aula.IdAula);

                if (cboProfesor.Enabled == true)
                {
                    cursadaBusiness.actualizarProfesor(cursada);
                }
            }
            else
            {
                MessageBox.Show("Debe Seleccionar un Horario");
            }

            cursadaBusiness.agregarDgv(dataGridView1, cursada.IdCursada);
            dataGridView1.Columns[0].Visible = false;
            dataGridView1.Columns[1].Visible = false;
            dataGridView1.Columns[2].Visible = false;
            dataGridView1.Columns[3].Visible = false;
            actualizar();

            ValidarHorario();
        }
예제 #19
0
파일: HorarioDao.cs 프로젝트: nyasan/SI-ASA
        public static Horario obtener(int id)
        {
            Horario horario = new Horario();
            string  sql     = "SELECT * FROM horarios h WHERE h.id_horario = @id";

            SqlConnection cn = new SqlConnection();

            cn.ConnectionString = "Data Source=ALEBELTRAMEN\\ALEJANDRA;Initial Catalog=ASA;Integrated Security=True";
            //PONER LA STRINGCONNECTION CORRECTA!!!

            try
            {
                cn.Open();
                SqlCommand cmd = new SqlCommand(sql, cn);
                cmd.Parameters.AddWithValue("@id", id);
                SqlDataReader dr = cmd.ExecuteReader();
                dr.Read();
                horario.desde = dr["horario_inicio"].ToString();
                horario.hasta = dr["horario_fin"].ToString();

                dr.Close();
                cn.Close();
            }
            catch (SqlException ex)
            {
                if (cn.State == ConnectionState.Open)
                {
                    cn.Close();
                }
                throw new ApplicationException("Error al buscar el Horario");
            }
            return(horario);
        }
예제 #20
0
        internal void Update(Horario parent)
        {
            this.RaiseListChangedEvents = false;

            // update (thus deleting) any deleted child objects
            foreach (ParteAsistencia obj in DeletedList)
            {
                obj.DeleteSelf(parent);
            }

            // now that they are deleted, remove them from memory too
            DeletedList.Clear();

            // AddItem/update any current child objects
            foreach (ParteAsistencia obj in this)
            {
                if (obj.IsNew)
                {
                    obj.Insert(parent);
                }
                else
                {
                    obj.Update(parent);
                }
            }

            this.RaiseListChangedEvents = true;
        }
예제 #21
0
        public Horario AlterarHorario(Horario horario)
        {
            _context.Entry(horario).State = EntityState.Modified;
            _context.SaveChanges();

            return(horario);
        }
예제 #22
0
        public void FinalizarMovimento(MovimentoDTO movimento)
        {
            if (movimento != null)
            {
                var sort = Builders <Movimento> .Sort.Descending(m => m.IdMovimento);

                var item = _context.CollectionMovimento.Find <Movimento>(m => m.IdVendedor == movimento.IdVendedor).Sort(sort).FirstOrDefault();

                Horario movimentoHorario = new Horario();

                movimentoHorario.HoraInicioMovimento = item.HorarioMovimento.HoraInicioMovimento;
                movimentoHorario.HoraFinalMovimento  = DateTime.SpecifyKind(movimento.HorarioMovimento.HoraFinalMovimento, DateTimeKind.Utc);
                movimentoHorario.DataInicioMovimento = item.HorarioMovimento.DataInicioMovimento;
                movimentoHorario.DataFinalMovimento  = movimento.HorarioMovimento.DataFinalMovimento;

                Movimento movimentoNovo = new Movimento {
                    IdMovimento      = item.IdMovimento,
                    IdVendedor       = item.IdVendedor,
                    TipoMovimento    = item.TipoMovimento,
                    StatusVenda      = movimento.StatusVenda,
                    HorarioMovimento = movimentoHorario
                };

                _context.CollectionMovimento.ReplaceOne(m => m.IdMovimento == item.IdMovimento, movimentoNovo);
            }

            this.Mensagem = "Falha ao executar o metodo AtualizarMovimento() DAO";
        }
        public int Agregar(String horario)
        {
            Horario t = new Horario();

            t.TC_Horario  = horario;
            t.TH_Duracion = "00:00:00";

            //primero debemos confirmar si el tiempo ya existe
            Horario temp = new HorarioAD().consultarTiempo(t);

            if (temp.TC_Horario == null)
            {
                return(new HorarioAD().registrarHorario(t));
            }
            else
            {
                if (temp.TC_Horario.Equals(t.TC_Horario) && temp.TH_Duracion.Equals(t.TH_Duracion))
                {
                    ViewBag.Respuesta = "El registro de tiempo ya existe";
                    return(0);
                }
                else
                {
                    return(new HorarioAD().registrarHorario(t));
                }
            }

            //ViewBag.Message = "Catálogo de Horarios";
            //string listaS = new HorarioAD().listarHorarios();
            //List<Horario> lista = JsonConvert.DeserializeObject<List<Horario>>(listaS);
            //ViewBag.ListaTiempos = lista;
            //return View("Listar");
        }
예제 #24
0
        /// <summary>
        /// Allows to register a new Schedule
        /// </summary>
        /// <param name="u">Objec type Horario</param>
        public void registrarHorario(Horario u)
        {
            if (existeHorario(u) != true)
            {
                string path = Path.GetFullPath("horarios.txt");//para agregar carpetas afuera agrego ..\\
                if (!File.Exists(path))
                {
                    // Create a file to write to.
                    using (StreamWriter sw = File.CreateText(path))
                    {
                        sw.WriteLine(u.ToString());
                    }
                }
                else
                {
                    using (StreamWriter file = new StreamWriter(path, true))
                    {
                        file.WriteLine(u.ToString()); //se agrega información al documento

                        file.Close();
                    }
                }
            }
            else
            {
                throw new Exception("El horario ya se encuentra registrado");
            }
        }
예제 #25
0
 private async Task <bool> obtenerDatosVista()
 {
     if (await validarCampos())
     {
         nuevoHorario = new Horario()
         {
             Nombre                = tbNombreHorario.Text.ToUpper(),
             UsuarioRegistro       = App.usuarioAutentificado.UsuarioId,
             FechaHoraRegistro     = DateTime.Now,
             Estatus               = 1,
             HoraEntrada           = Utilerias.Utils.formatearHoras(dpEntrada.Time),
             HoraSalida            = Utilerias.Utils.formatearHoras(dpSalida.Time),
             FechaHoraModificacion = DateTime.Now,
             UsuarioModificacion   = App.usuarioAutentificado.UsuarioId
         };
         if (estado == (int)ACCION.ACTUALIZAR)
         {
             nuevoHorario.HorarioId         = horarioSeleccionado.HorarioId;
             nuevoHorario.UsuarioRegistro   = horarioSeleccionado.UsuarioRegistro;
             nuevoHorario.FechaHoraRegistro = horarioSeleccionado.FechaHoraRegistro;
         }
         return(true);
     }
     return(false);
 }
        public ActionResult Editar(Horario horario)
        {
            if (SecurityHelper.GetAdministradorID() > 0 && SecurityHelper.GetAdministradorRol() == "Administrador General")
            {
                try
                {
                    if (String.IsNullOrEmpty(horario.FechaRecuperacion.ToString()))
                    {
                        horario.FechaRecuperacion = (DateTime?)null;
                    }

                    horarioDataAccess.UpdateHorario(horario);
                }
                catch (Exception)
                {
                    throw;
                }

                return(RedirectToAction("Index"));
            }
            else
            {
                return(RedirectToAction("Index", "Login", new { Area = "" }));
            }
        }
예제 #27
0
        /// <summary>
        /// Inserta un horario asociado a un lugar turistico en la base de datos
        /// </summary>
        /// <param name="horario">Objeto Horario</param>
        /// <param name="idLugarTuristico">ID del horario </param>
        /// <returns>ID del horario insertado</returns>
        /// <exception cref="BaseDeDatosExcepcion"></exception>
        /// <exception cref="CasteoInvalidoExcepcion"></exception>
        /// <exception cref="ReferenciaNulaExcepcion"></exception>
        public int InsertarHorario(Horario horario, int idLugarTuristico)
        {
            try
            {
                conexion.Conectar();

                horario.Id = conexion.InsertarHorario(horario, idLugarTuristico);

                conexion.Desconectar();

                return(horario.Id);
            }
            catch (BaseDeDatosExcepcion e)
            {
                e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name);
                throw e;
            }
            catch (CasteoInvalidoExcepcion e)
            {
                e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name);
                throw e;
            }
            catch (ReferenciaNulaExcepcion e)
            {
                e.NombreMetodos.Add(this.GetType().FullName + "." + MethodBase.GetCurrentMethod().Name);
                throw e;
            }
        }
        public async Task <IActionResult> GetHorarioPorFecha(int negocio, int anio, int mes, int dia)
        {
            try
            {
                DateTime fecha         = new DateTime(anio, mes, dia);
                var      diaSemana     = CalendarHelper.CalcularDiaDeLaSemana(fecha);
                Horario  horarioResult = await _repository.GetHorario(negocio, diaSemana);

                if (horarioResult == null)
                {
                    return(NotFound());
                }

                var horaAperturaFormateada = String.Format("{0:t}", horarioResult.HorarioApertura);
                var horaCierreFormateada   = String.Format("{0:t}", horarioResult.HorarioCierre);

                var horarioResponse = new { horarioApertura = horaAperturaFormateada, horarioCierre = horaCierreFormateada };
                return(Ok(horarioResponse));
            }

            catch (Exception exception)
            {
                _logger.LogInformation($"Fallo en la busqueda del negocio: { negocio } -- Problema: {exception.Message}");
                return(BadRequest($"Problema al intentar realizar el horario del negocio: {negocio}"));
            }
        }
예제 #29
0
        private void btnAgregar_Click(object sender, EventArgs e)
        {
            Marcacion marcacion = new Marcacion();

            marcacion.codigo        = Marcacion.ObtenerMarcaciones().Count + 1;
            marcacion.empleado      = Empleado.ObtenerEmpleadoPorCodigo(int.Parse(txtCodigo.Text));
            marcacion.fecha         = dtpFechaHora.Value;
            marcacion.tipoMarcacion = (rdbEntrada.Checked) ? TipoMarcacion.Entrada : TipoMarcacion.Salida;

            Marcacion.AgregarMarcacion(marcacion);

            ActualizarListaMarcaciones();

            if (rdbEntrada.Checked)
            {
                Horario entrada = new Horario();
                entrada.Hora    = marcacion.fecha.Hour;
                entrada.Minutos = marcacion.fecha.Minute;

                ParametroSistema parametros = ParametroSistema.ObtenerParametroSistemaActivo();
                int minutosTardios          = parametros.CalcularMinutosTardios(entrada);

                if (minutosTardios > 0)
                {
                    LlegadaTardia llegadaTardia = new LlegadaTardia();

                    llegadaTardia.fecha          = marcacion.fecha;
                    llegadaTardia.empleado       = marcacion.empleado;
                    llegadaTardia.minutosTardios = minutosTardios;

                    LlegadaTardia.AgregarLlegadaTardia(llegadaTardia);
                }
            }
        }
예제 #30
0
파일: HorarioDao.cs 프로젝트: nyasan/SI-ASA
        //retorna !=0 eliminado, 0=no eliminado
        public static int delete(Horario horario)
        {
            int i = -1;

            string sql = "DELETE FROM horarios h WHERE h.horario_inicio=@horario_inicio AND h.horario_fin=@horario_fin)";

            SqlConnection cn = new SqlConnection();

            cn.ConnectionString = "Data Source=ALEBELTRAMEN\\ALEJANDRA;Initial Catalog=ASA;Integrated Security=True";

            try
            {
                cn.Open();
                SqlCommand cmd = new SqlCommand(sql, cn);

                cmd.Parameters.AddWithValue("@horario_inicio", horario.desde);
                cmd.Parameters.AddWithValue("@horario_fin", horario.hasta);

                i = (int)cmd.ExecuteScalar();
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error al eliminar el Horario");
            }
            finally
            {
                cn.Close();
            }
            return(i);
        }
        /// <summary>
        /// Crea una entidad RangoHorario verificando la consistencia.
        /// </summary>
        /// <param name="inicio"></param>
        /// <param name="fin"></param>
        public RangoHorario(Horario inicio, Horario fin)
        {
            if (inicio.mayorQue(fin))
                throw new RangoHorarioIncosistenteException();

            this.inicio = inicio;
            this.fin = fin;
        }
예제 #32
0
        public void ToString_QuandoTerminaEmOutroDia_SeparaDiaEHora()
        {
            var dataInicio = new DateTime(2011, 2, 1, 8, 0, 0);
            var dataFim = dataInicio.AddDays(1);

            var horario = new Horario(dataInicio, dataFim);

            Assert.Equal("01/02/2011 08:00 até 02/02/2011 08:00", horario.ToString());
        }
예제 #33
0
        public void ToString_QuandoComecaETerminaNoMesmoDia_SeparaSomenteAHora()
        {
            var dataInicio = new DateTime(2011, 2, 1, 8, 0, 0);
            var dataFim = dataInicio.AddHours(2);

            var horario = new Horario(dataInicio, dataFim);

            Assert.Equal("01/02/2011 08:00 até 10:00", horario.ToString());
        }
예제 #34
0
        public void VerificarConcorrencia_QuandoHorarioSobrepoe_RetornaTrue()
        {
            var dataInicio = DateTime.Now;
            var dataFim = dataInicio.AddHours(1);

            var horarioPrincipal = new Horario(dataInicio, dataFim);
            var outroHorario = new Horario(dataInicio.AddMinutes(10), dataFim.AddMinutes(10));

            Assert.True(horarioPrincipal.VerificarConcorrencia(outroHorario));
        }
예제 #35
0
 public Evento(int id, String nombre, String descripcion, float costo, Ubicacion ubicacion, TipoEvento tipoEvento, Horario horario)
 {
     this.id = id;
     this.nombre = nombre;
     this.descripcion = descripcion;
     this.costo = costo;
     this.ubicacion = ubicacion;
     this.tipoEvento = tipoEvento;
     this.horario = horario;
 }
        /// <summary>
        /// Obtiene la duracion del rango
        /// </summary>
        /// <returns>duracion en formato HH:MM:SS</returns>
        public Horario getDuracion()
        {
            TimeSpan timeI = new TimeSpan(inicio.Hora, inicio.Minuto, inicio.Segundo);
            TimeSpan timeF = new TimeSpan(fin.Hora, fin.Minuto, fin.Segundo);

            TimeSpan s = timeF - timeI;

            Horario resultado = new Horario();
            resultado.setTimeSpan(s);
            return resultado;
        }
예제 #37
0
 public DetalleDiagramacion(Deporte deporte, int item, string dia_semana, Sector sector, Horario hora_desde,
     Horario hora_hasta, Personal profesor)
 {
     Deporte = deporte;
     Item = item;
     Dia_semana = dia_semana;
     Sector = sector;
     Hora_desde = hora_desde;
     Hora_hasta = hora_hasta;
     Profesor = profesor;
 }
예제 #38
0
 public Evento(int id, String nombre, String descripcion, float costo, Boolean estado, Ubicacion ubicacion, Categoria categoria, TipoEvento tipoEvento, Horario horario)
 {
     this.id = id;
     this.nombre = nombre;
     this.descripcion = descripcion;
     this.costo = costo;
     this.ubicacion = ubicacion;
     this.categoria = categoria;
     this.tipoEvento = tipoEvento;
     this.horario = horario;
     this.estado = estado;
 }
        public void AddRestricoes(Professor prof, Horario hor)
        {
            int i=0;
            while (professores[i].nome != prof.nome)
                i++;

            professores[i].AddRestrincoes(hor);
            i = 0;
            while (horarios[i].ident != hor.ident)
                i++;

            horarios[i].AddRestHorario(prof);
        }
예제 #40
0
 public DetalleDiagramacion(Diagramacion diagramacion, int item, Dia dia_semana, Sector sector,
     Horario hora_desde, Horario hora_hasta, Personal profesor, bool lugar_confirmado, bool horario_confirmado,
     bool profesor_confirmado)
 {
     Diagramacion = diagramacion;
     Item = item;
     Dia_semana = dia_semana;
     Sector = sector;
     Hora_desde = hora_desde;
     Hora_hasta = hora_hasta;
     Profesor = profesor;
     Lugar_confirmado = lugar_confirmado;
     Horario_confirmado = horario_confirmado;
     Profesor_confirmado = profesor_confirmado;
 }
        public void ExibeAMensagemCorreta()
        {
            var dataInicio = new DateTime(2011, 02, 01, 8, 0, 0);
            var dataFim = dataInicio.AddHours(1);
            var horario = new Horario(dataInicio, dataFim);

            var mockEvento = MockRepository.GenerateMock<Evento>();
            mockEvento.Expect(e => e.Nome)
                  .Return("Nome do evento");
            mockEvento.Expect(e => e.Horario)
                  .Return(horario);

            var excecao = new EventoParoquialExistenteException(new List<Evento> () { mockEvento });

            var mensagemEsperada = "O evento paroquial 'Nome do evento' já está cadastrado para o horário: 01/02/2011 08:00 até 09:00." + Environment.NewLine;
            Assert.Equal(mensagemEsperada, excecao.Message);
        }
예제 #42
0
 private int GetNextGroupIndex(Dictionary<string, int> indicesGrupos, Horario horario)
 {
     Grupo g = horario[horario.Count() - 1];
     return indicesGrupos[g.Materia.Nombre + "" + g.Id] + 1;
 }
예제 #43
0
 private static void pintarHorario(object[,] horariosArray, Horario horario, int rCnt, Dictionary<string, Color> colores, int counter)
 {
     string[] dias = new string[] { "Lunes", "Martes", "Miercoles", "Jueves", "Viernes!", "Sabado", "Domingo", "", "Horario# " + counter, "Codigo: " + horario.Id };
     for (int i = 0; i < dias.Length; i++)
         horariosArray[rCnt, i + 1] = dias[i];
     rCnt++;
     horario.Sort((a, b) => a.Materia.Nombre.CompareTo(b.Materia.Nombre));
     for (int i = 0; i < horario.Count(); i++)
     {
         Grupo grupo = horario[i];
         Materia materia = grupo.Materia;
         List<Clase> clases = grupo.Clases;
         for (int j = 0; j < clases.Count(); j++)
         {
             Clase clase = clases[j];
             int dia = clase.NumeroDia + 1;
             horariosArray[rCnt, dia] = FileManager.reporteClase(grupo, clase);
         }
         rCnt++;
     }
 }
예제 #44
0
        public void pintarHorarioGridView(Horario h)
        {
            int rowCount = 0;
            limpiarDataGridView();
            Dictionary<string, Color> colores = FileManager.AsignarColores(principal.Materias);
            foreach (Grupo g in h)
            {
                var row = new DataGridViewRow();
                for (int i = 0; i < 7; i++)
                {
                    row.Cells.Add(new DataGridViewTextBoxCell()
                    {
                        Value = ""
                    });
                }
                foreach (Clase c in g.Clases)
                {
                    int dia = c.NumeroDia;

                    row.Cells[dia].Value = FileManager.reporteClase(g, c);
                    row.Cells[dia].Style.BackColor = colores[g.Materia.Nombre];
                }
                rowCount++;
                dataGrid.Rows.Add(row);
            }
        }
 public void RemoveHorarios(Horario h)
 {
     if (horarios.Contains(h))
         horarios.Remove(h);
 }
 public void RemoveRestrincoes(Horario h)
 {
     if (restricoes != null)
         restricoes.Remove(h);
 }
 public Alocacao()
 {
     professor = new Professor();
     horario = new Horario();
 }
 public void AddRestrincoes(Horario h)
 {
     if (restricoes != null)
         restricoes.Add(h);
 }
 // GET: /HorarioDeportivo/Create
 //******* Muestra pagina para ingresar datos de creacion *******
 public ActionResult CreateItem()
 {
     Session["Mensaje"] = "";
     int codigo = int.Parse(Session["CodigoCreate"].ToString());
     Horario model = new Horario() { Codigo=codigo};
     return View(model);
 } 
 public Alocacao(Professor p, Horario h)
 {
     professor = p;
     horario = h;
 }
예제 #51
0
        private void SalvarDados()
        {
            if (webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_lblNomeLinha") == null)
            {
                ClickBotao();
                return;
            }
            string nomeSentido = webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_lblNomeDestino").InnerHtml;

            Sentido sentido=null;

            foreach (Sentido sentido1 in rotaAtual.Sentidos.Where(sentido1 => sentido1.Nome == nomeSentido))
            {
                sentido = sentido1;
            }
            if(sentido == null)
            {
                sentido = new Sentido();
                rotaAtual.Sentidos.Add(sentido);

            }
            sentido.Nome = nomeSentido;
            Dia dia = null;
            string nomeDia = webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_lblDia").InnerHtml;
            foreach ( Dia d in sentido.Dias.Where(d2=>d2.Nome == nomeDia))
            {
                dia = d;
            }
            if(dia == null)
            {
                dia = new Dia();
                sentido.Dias.Add(dia);
            }

            dia.Nome = nomeDia;

            string valorBase = string.Format("");
            listBox2.Items.Add(webBrowser1.Document.GetElementById(
                                               "ctl00_ContentPlaceHolder3_lblNomeLinha").InnerHtml);
            listBox3.Items.Add(webBrowser1.Document.GetElementById(
                "ctl00_ContentPlaceHolder3_lblNomeDestino").InnerHtml);
            listBox4.Items.Add(webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_lblDia").
                                   InnerHtml);
            listBox2.SelectedIndex = listBox2.Items.Count - 1;
            listBox3.SelectedIndex = listBox3.Items.Count - 1;
            listBox4.SelectedIndex = listBox4.Items.Count - 1;

            if (webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_GridView1") != null)
            {
                int x = 0;

                string valor = "";

                Horario horario = new Horario();
                foreach (
                    HtmlElement VARIABLE in
                        webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_GridView1").
                            GetElementsByTagName("td"))
                {

                    switch (x)
                    {
                        case 0: //partida
                            valor += VARIABLE.InnerHtml;
                            horario.Partida = VARIABLE.InnerHtml;
                            break;
                        case 1: //chegada
                            valor += " - " + VARIABLE.InnerHtml;
                            horario.Chegada = VARIABLE.InnerHtml;
                            break;
                        case 2: // obs
                            if (VARIABLE.InnerHtml != "&nbsp;")
                            {
                                valor += " - " + VARIABLE.InnerHtml;
                                horario.Observacao = VARIABLE.InnerHtml;
                            }

                            listBox1.Items.Add(valor);
                            valor = valorBase;
                            break;
                    }
                    if (x == 2)
                    {
                        dia.Horarios.Add(new Horario()
                                                 {
                                                     Chegada = horario.Chegada,
                                                     Partida = horario.Partida,
                                                     Observacao = horario.Observacao
                                                 });
                        horario = new Horario();
                        x = 0;
                    }
                    else x++;
                }

            }

            if (webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_GridView2") != null)
            {
                listBox2.Items.Add(valorBase);
                if (sentido.Etinerario.Count == 0)
                {
                    foreach (
                        HtmlElement VARIABLE in
                            webBrowser1.Document.GetElementById("ctl00_ContentPlaceHolder3_GridView2").
                                GetElementsByTagName("td"))
                    {
                        sentido.Etinerario.Add(VARIABLE.InnerHtml);
                        listBox2.Items.Add(VARIABLE.InnerHtml);
                    }
                }
            }
            if (origemAtual < rotaAtual.Origens.Count)
            {
                origemAtual++;
                situacao = SELECT_ORIGEM;
            }
            else
            {
                origemAtual = 0;
                JSONSerialize(rotaAtual);
                listBox1.Refresh();
                listBox2.Refresh();
                situacao = SELECT_ROTA;
            }
            return;
        }
예제 #52
0
 public Periodo(Horario horario, DiaSemana diaSemana)
 {
     Horario = horario;
     DiaSemana = diaSemana;
 }
예제 #53
0
파일: Centro.cs 프로젝트: carlospeix/ConfUi
 public Centro()
 {
     Horario = new Horario();
 }
 public void AddHorarios(Horario h)
 {
     if (!horarios.Contains(h))
     horarios.Add(h);
 }
        /// <summary>
        /// Valida el horario ingresado y lo guarda en la base de datos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void guardarButton_Click(object sender, EventArgs e)
        {
            if(areaCombo.SelectedIndex == -1)
            {
                MessageBox.Show("No se seleccionó un área", "Error", MessageBoxButtons.OK , MessageBoxIcon.Error);
                return;
            }

            if (diaCombo.SelectedIndex == -1)
            {
                MessageBox.Show("No se seleccionó un día", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            try
            {
                //este constructor verifica la integridad
                Horario ingreso = new Horario(ingresoText.Text);
                Horario egreso = new Horario(egresoText.Text);

                //el constructor verifica la integridad
                RangoHorario rango = new RangoHorario(ingreso, egreso);

                //el tamaño minimo es 59 minutos
                if (rango.rangoMenor(0, 59))
                    throw new RangoMinimoException();

                //armo la entidad turno DTO
                HorarioHabitualDTO turno = new HorarioHabitualDTO();
                turno.Area = areaCombo.Text;
                turno.Dia = diaCombo.Text;
                turno.Ingreso = ingreso;
                turno.Egreso = egreso;
                turno.Duracion = rango.getDuracion();
                turno.Confirmado = "NO";

                //hay que validar que no se superponga a otros horarios

                foreach (HorarioHabitualDTO t in turnos)
                {
                    if (Fecha.getNumeroDia(t.Dia) == Fecha.getNumeroDia(turno.Dia))
                    {
                        RangoHorario r1 = new RangoHorario(t.Ingreso, t.Egreso);

                        if (r1.rangoSuperpuesto(rango))
                            throw new TurnoSuperpuestoException();

                    }
                }

                //y finalmente guardo el horario
                GestorHorarios gestor = new GestorHorarios();
                gestor.crearHorarioHabitual(this.usuario, turno);

                // y si anda todo bien agrego la columna a la tabla
                this.agregarColumna(turno);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #56
0
        private List<Horario> horariosInicialesDeGrupos(List<Grupo> grupos)
        {
            List<Horario> horarios = new List<Horario>();

            for (int i = 0; i < grupos.Count(); i++)
            {
                Horario h = new Horario(i + "");
                h.Add(grupos[i]);
                foreach (Clase c in grupos[i].Clases)
                    if (h.DiasOcupados[c.NumeroDia] == 0)
                    {
                        h.CantidadDiasOcupados++;
                        h.DiasOcupados[c.NumeroDia] = 1;
                    }
                horarios.Add(h);
            }

            return horarios;
        }
예제 #57
0
 private bool verificar(Grupo grupo, Horario array, Dictionary<string, int> indicedGrupo)
 {
     int indice = indicedGrupo[grupo.Materia.Nombre + "" + grupo.Id];
     foreach (Grupo g in array)
     {
         if (!g.Compatibles[indice])
             return false;
     }
     return true;
 }
예제 #58
0
 public Empleado(Horario horario)
 {
     _horario = horario;
 }
        static void Main(string[] args)
        {
            /*
            OtimizaMochila heuristica = new OtimizaMochila(75);
            heuristica.AddItem(new Item() { Descricao = "Lanterna", Peso = 3, Utilidade = 15 });
            heuristica.AddItem(new Item() { Descricao = "Canivete Suíço", Peso = 1, Utilidade = 10 });
            heuristica.AddItem(new Item() { Descricao = "Jaca", Peso = 30, Utilidade = 3 });
            heuristica.AddItem(new Item() { Descricao = "Panela", Peso = 5, Utilidade = 15 });
            heuristica.AddItem(new Item() { Descricao = "Carne", Peso = 10, Utilidade = 20 });
            heuristica.AddItem(new Item() { Descricao = "Arroz", Peso = 7, Utilidade = 20 });
            heuristica.AddItem(new Item() { Descricao = "Feijão", Peso = 8, Utilidade = 20 });
            heuristica.AddItem(new Item() { Descricao = "Cerveja", Peso = 15, Utilidade = 8 });
            heuristica.AddItem(new Item() { Descricao = "Mapa", Peso = 1, Utilidade = 15 });
            heuristica.AddItem(new Item() { Descricao = "Celular", Peso = 3, Utilidade = 9 });
            heuristica.AddItem(new Item() { Descricao = "Barraca", Peso = 8, Utilidade = 60 });
            heuristica.AddItem(new Item() { Descricao = "Cobertor", Peso = 8, Utilidade = 25 });
            heuristica.AddItem(new Item() { Descricao = "Jornal", Peso = 3, Utilidade = 5 });
            heuristica.AddItem(new Item() { Descricao = "Papel Higiênico", Peso = 2, Utilidade = 14 });
            heuristica.AddItem(new Item() { Descricao = "Carvão", Peso = 8, Utilidade = 15 });
            heuristica.AddItem(new Item() { Descricao = "Repelente", Peso = 2, Utilidade = 5 });
            heuristica.AddItem(new Item() { Descricao = "Vara de Pescar", Peso = 3, Utilidade = 2 });
            heuristica.AddItem(new Item() { Descricao = "Pente", Peso = 1, Utilidade = 1 });
            heuristica.AddItem(new Item() { Descricao = "Espelho", Peso = 1, Utilidade = 1 });
            heuristica.AddItem(new Item() { Descricao = "Sabão", Peso = 2, Utilidade = 7 });
            heuristica.AddItem(new Item() { Descricao = "Xampu", Peso = 4, Utilidade = 5 });
            heuristica.AddItem(new Item() { Descricao = "Luvas", Peso = 1, Utilidade = 2 });
            heuristica.AddItem(new Item() { Descricao = "Violão", Peso = 15, Utilidade = 4 });
            heuristica.AddItem(new Item() { Descricao = "Fósforo", Peso = 1, Utilidade = 7 });
            heuristica.AddItem(new Item() { Descricao = "Isqueiro", Peso = 1, Utilidade = 9 });
            heuristica.AddItem(new Item() { Descricao = "Bússola", Peso = 2, Utilidade = 14 });
            heuristica.AddItem(new Item() { Descricao = "Roupa", Peso = 5, Utilidade = 28 });
            heuristica.AddItem(new Item() { Descricao = "Sapatos", Peso = 3, Utilidade = 11 });
            heuristica.AddItem(new Item() { Descricao = "Protetor Solar", Peso = 2, Utilidade = 6 });
            heuristica.AddItem(new Item() { Descricao = "Pratos", Peso = 5, Utilidade = 12 });
            heuristica.AddItem(new Item() { Descricao = "Colheres", Peso = 1, Utilidade = 8 });
            heuristica.AddItem(new Item() { Descricao = "Facas", Peso = 1, Utilidade = 13 });
            heuristica.AddItem(new Item() { Descricao = "Binóculos", Peso = 5, Utilidade = 3 });
            heuristica.AddItem(new Item() { Descricao = "GPS", Peso = 5, Utilidade = 20 });
            heuristica.AddItem(new Item() { Descricao = "Notebook", Peso = 15, Utilidade = 5 });
            heuristica.AddItem(new Item() { Descricao = "Som", Peso = 16, Utilidade = 8 });
            heuristica.AddItem(new Item() { Descricao = "Livro", Peso = 3, Utilidade = 3 });
            heuristica.AddItem(new Item() { Descricao = "Corda", Peso = 5, Utilidade = 15 });
            heuristica.AddItem(new Item() { Descricao = "Lixa Unha", Peso = 1, Utilidade = 1 });
            heuristica.AddItem(new Item() { Descricao = "Esmalte", Peso = 1, Utilidade = 1 });
            heuristica.AddItem(new Item() { Descricao = "Alicate", Peso = 2, Utilidade = 8 });
            heuristica.AddItem(new Item() { Descricao = "Machado", Peso = 15, Utilidade = 50 });
            heuristica.AddItem(new Item() { Descricao = "Linha", Peso = 1, Utilidade = 1 });
            heuristica.AddItem(new Item() { Descricao = "Agulha", Peso = 1, Utilidade = 1 });
            heuristica.AddItem(new Item() { Descricao = "Band Aid", Peso = 1, Utilidade = 12 });
            heuristica.AddItem(new Item() { Descricao = "Mertiolate", Peso = 1, Utilidade = 11 });
            heuristica.AddItem(new Item() { Descricao = "Gaze", Peso = 1, Utilidade = 13 });
            heuristica.AddItem(new Item() { Descricao = "Perfume", Peso = 1, Utilidade = 1 });
            heuristica.AddItem(new Item() { Descricao = "Leite", Peso = 4, Utilidade = 10 });
            heuristica.AddItem(new Item() { Descricao = "Biscoitos", Peso = 4, Utilidade = 10 });
            heuristica.AddItem(new Item() { Descricao = "Sucrilhos", Peso = 3, Utilidade = 7 });
            heuristica.AddItem(new Item() { Descricao = "Bombons", Peso = 3, Utilidade = 5 });
            heuristica.AddItem(new Item() { Descricao = "Meias", Peso = 1, Utilidade = 2 });
            heuristica.AddItem(new Item() { Descricao = "Chapeu", Peso = 3, Utilidade = 7 });
            heuristica.AddItem(new Item() { Descricao = "Estilingue", Peso = 1, Utilidade = 4 });
            heuristica.AddItem(new Item() { Descricao = "Martelo", Peso = 6, Utilidade = 12 });
            heuristica.AddItem(new Item() { Descricao = "Arame", Peso = 6, Utilidade = 15 });

            heuristica.GerarSolucao();
            int u = 0;
            foreach (IComponente c in heuristica.Solucao.Componentes)
            {
                Item item = (Item)c;
                u += item.Utilidade;
                System.Console.WriteLine(item.Descricao + " \t\t\tPeso: " + item.Peso + " \tUtilidade: " + item.Utilidade);
            }

            System.Console.WriteLine("\n===================================================\n ");
            System.Console.WriteLine("Peso da Mochila: " + heuristica.Mochila.CapacidadeAtual);
            System.Console.WriteLine("Utilidade da Mochila: " + heuristica.Solucao.Avaliacao);
            */

            // Problema Cacheiro Viajante

            ConstroiViagem viagem = new ConstroiViagem();

            viagem.AddComponente(new Acesso("Belo Horizonte", "Salvador",1372 ));
            viagem.AddComponente(new Acesso("Belo Horizonte", "Brasília", 716));
            viagem.AddComponente(new Acesso("Belo Horizonte", "Vitória", 524));
            viagem.AddComponente(new Acesso("Belo Horizonte", "São Paulo", 586));
            viagem.AddComponente(new Acesso("Belo Horizonte", "Rio de Janeiro", 434));
            viagem.AddComponente(new Acesso("Belo Horizonte", "Curitiba", 1004));
            viagem.AddComponente(new Acesso("Belo Horizonte", "Joenvile", 1301));

            viagem.AddComponente(new Acesso("Salvador", "Belo Horizonte", 1372));
            viagem.AddComponente(new Acesso("Salvador", "Brasília", 1446));
            viagem.AddComponente(new Acesso("Salvador", "Vitória", 1202));
            viagem.AddComponente(new Acesso("Salvador", "São Paulo", 1962));
            viagem.AddComponente(new Acesso("Salvador", "Rio de Janeiro", 1649));
            viagem.AddComponente(new Acesso("Salvador", "Curitiba", 2385));
            viagem.AddComponente(new Acesso("Salvador", "Joenvile", 2682));

            viagem.AddComponente(new Acesso("Brasília", "Belo Horizonte", 716));
            viagem.AddComponente(new Acesso("Brasília", "Salvador", 1446));
            viagem.AddComponente(new Acesso("Brasília", "Vitória", 1239));
            viagem.AddComponente(new Acesso("Brasília", "São Paulo", 1015));
            viagem.AddComponente(new Acesso("Brasília", "Rio de Janeiro", 1148));
            viagem.AddComponente(new Acesso("Brasília", "Curitiba", 1366));
            viagem.AddComponente(new Acesso("Brasília", "Joenvile", 1673));

            viagem.AddComponente(new Acesso("Vitória", "Belo Horizonte", 524));
            viagem.AddComponente(new Acesso("Vitória", "Salvador", 1202));
            viagem.AddComponente(new Acesso("Vitória", "Brasília", 1239));
            viagem.AddComponente(new Acesso("Vitória", "São Paulo", 882));
            viagem.AddComponente(new Acesso("Vitória", "Rio de Janeiro", 521));
            viagem.AddComponente(new Acesso("Vitória", "Curitiba", 1300));
            viagem.AddComponente(new Acesso("Vitória", "Joenvile", 1597));

            viagem.AddComponente(new Acesso("São Paulo", "Belo Horizonte", 586));
            viagem.AddComponente(new Acesso("São Paulo", "Salvador", 1962));
            viagem.AddComponente(new Acesso("São Paulo", "Brasília", 1015));
            viagem.AddComponente(new Acesso("São Paulo", "Vitória", 882));
            viagem.AddComponente(new Acesso("São Paulo", "Rio de Janeiro", 429));
            viagem.AddComponente(new Acesso("São Paulo", "Curitiba", 408));
            viagem.AddComponente(new Acesso("São Paulo", "Joenvile", 705));

            viagem.AddComponente(new Acesso("Rio de Janeiro", "Belo Horizonte", 434));
            viagem.AddComponente(new Acesso("Rio de Janeiro", "Salvador", 1649));
            viagem.AddComponente(new Acesso("Rio de Janeiro", "Brasília", 1148));
            viagem.AddComponente(new Acesso("Rio de Janeiro", "Vitória", 521));
            viagem.AddComponente(new Acesso("Rio de Janeiro", "São Paulo", 429));
            viagem.AddComponente(new Acesso("Rio de Janeiro", "Curitiba", 852));
            viagem.AddComponente(new Acesso("Rio de Janeiro", "Joenvile", 1144));

            viagem.AddComponente(new Acesso("Curitiba", "Belo Horizonte", 1004));
            viagem.AddComponente(new Acesso("Curitiba", "Salvador", 2385));
            viagem.AddComponente(new Acesso("Curitiba", "Brasília", 1366));
            viagem.AddComponente(new Acesso("Curitiba", "Vitória", 1300));
            viagem.AddComponente(new Acesso("Curitiba", "São Paulo", 408));
            viagem.AddComponente(new Acesso("Curitiba", "Rio de Janeiro", 852));
            viagem.AddComponente(new Acesso("Curitiba", "Joenvile", 300));

            viagem.AddComponente(new Acesso("Joenvile", "Belo Horizonte", 1301));
            viagem.AddComponente(new Acesso("Joenvile", "Salvador", 2682));
            viagem.AddComponente(new Acesso("Joenvile", "Brasília", 1673));
            viagem.AddComponente(new Acesso("Joenvile", "Vitória", 1597));
            viagem.AddComponente(new Acesso("Joenvile", "São Paulo", 705));
            viagem.AddComponente(new Acesso("Joenvile", "Rio de Janeiro", 1144));
            viagem.AddComponente(new Acesso("Joenvile", "Curitiba", 300));

            //viagem.GerarViagem("Belo Horizonte");

            viagem.GerarSolucao();
            System.Console.WriteLine("\n===================================================\n ");
            System.Console.WriteLine("\nCaixeiro Viajante\n\n ");
            foreach (Acesso a in viagem.rota.Componentes)
                System.Console.WriteLine("Partida: " + a.cidPartida + "  Destino: "+a.cidDestino+"  Distancia: "+a.km+"KM");

            System.Console.WriteLine("\nDistância percorrida: " + viagem.rota.kmPercorridos + "KM\n\n");

            // Problema Quadro de Horario

            ConstroiQuadroHorario quadroHorario = new ConstroiQuadroHorario();

            Horario SEG12 = new Horario("SEG12");
            quadroHorario.AddHorarios(SEG12);
            Horario SEG34 = new Horario("SEG34");
            quadroHorario.AddHorarios(SEG34);
            Horario TER12 = new Horario("TER12");
            quadroHorario.AddHorarios(TER12);
            Horario TER34 = new Horario("TER34");
            quadroHorario.AddHorarios(TER34);
            Horario QUA12 = new Horario("QUA12");
            quadroHorario.AddHorarios(QUA12);
            Horario QUA34 = new Horario("QUA34");
            quadroHorario.AddHorarios(QUA34);
            Horario QUI12 = new Horario("QUI12");
            quadroHorario.AddHorarios(QUI12);
            Horario QUI34 = new Horario("QUI34");
            quadroHorario.AddHorarios(QUI34);
            Horario SEX12 = new Horario("SEX12");
            quadroHorario.AddHorarios(SEX12);
            Horario SEX34 = new Horario("SEX34");
            quadroHorario.AddHorarios(SEX34);

            Professor P1 = new Professor("P1");
            quadroHorario.AddProfessores(P1);
            Professor P2 = new Professor("P2");
            quadroHorario.AddProfessores(P2);
            Professor P3 = new Professor("P3");
            quadroHorario.AddProfessores(P3);
            Professor P4 = new Professor("P4");
            quadroHorario.AddProfessores(P4);
            Professor P5 = new Professor("P5");
            quadroHorario.AddProfessores(P5);

            quadroHorario.AddRestricoes(P1, SEG12);
            quadroHorario.AddRestricoes(P1, TER12);
            quadroHorario.AddRestricoes(P1, QUI12);

            quadroHorario.AddRestricoes(P2, SEX34);
            quadroHorario.AddRestricoes(P2, QUI34);

            quadroHorario.AddRestricoes(P3, QUA12);
            quadroHorario.AddRestricoes(P3, QUA34);
            quadroHorario.AddRestricoes(P3, TER34);

            quadroHorario.AddRestricoes(P4, SEX34);
            quadroHorario.AddRestricoes(P4, QUI12);

            quadroHorario.AddRestricoes(P5, TER12);
            quadroHorario.AddRestricoes(P5, QUI12);
            quadroHorario.AddRestricoes(P5, QUA12);

            quadroHorario.GerarSolucao();

            System.Console.WriteLine("\n===================================================\n ");
            System.Console.WriteLine("\nQuadro de Horario\n\n ");
            foreach(Alocacao al in quadroHorario.Solucao.Componentes)
            {
                   System.Console.Write("Horario: "+al.horario.ident + "  Professor: " + al.professor.nome+"\n");
            }

            System.Console.ReadLine();
        }