public List<ElementoVob> ObtenerTipos()
        {
            using (var context = new TramiteEntities())
            {

                var consulta = from tt in context.T_TipoTramite
                               select new ElementoVob
                               {
                                  Valor=tt.IdTipoTramite.ToString(),
                                  Texto=tt.Descripcion
                               };
                return consulta.ToList();
            }
        }
        public int ObtenerCorrelativo(int idTipoTramite,DateTime fecha)
        {
            using (var context = new TramiteEntities())
            {
                int maxId=0;
                var solicitudes = (from sol in context.T_SolicitudTramite
                                   where sol.IdTipoTramite == idTipoTramite &&
                                        sol.FechaSolicitud.Month == fecha.Month &&
                                        sol.FechaSolicitud.Year == fecha.Year &&
                                        sol.FechaSolicitud.Day == fecha.Day
                                   select sol).ToList();
                if(solicitudes.Any())
                    maxId=solicitudes.Max(p => Convert.ToInt32(p.NroSolicitud.Substring(13)));

                maxId+=1;

                return maxId;
            }
        }
        public int Agregar(SolicitudTramiteVob solicitudTramite)
        {
            try
            {
                using (var context = new TramiteEntities())
                {
                    T_SolicitudTramite t_solicitudTramite = new T_SolicitudTramite();
                    t_solicitudTramite.IdAdministrado = solicitudTramite.IdAdministrado;
                    t_solicitudTramite.FechaSolicitud = DateTime.Now;
                    t_solicitudTramite.CodigoOperacion = solicitudTramite.CodigoOperacion;
                    t_solicitudTramite.IdTipoTramite = int.Parse(solicitudTramite.TipoTramite);
                    t_solicitudTramite.NroSolicitud = solicitudTramite.NroSolicitud;
                    t_solicitudTramite.Observaciones = "Preguntar a Gabriel";
                    t_solicitudTramite.Estado = "P";
                    //t_solicitudTramite.Estado
                    context.T_SolicitudTramite.Add(t_solicitudTramite);

                    //Actualizar Administrado
                    var administrado=context.T_Administrado.FirstOrDefault(p => p.IdAdministrado == solicitudTramite.IdAdministrado);
                    administrado.Telefono = solicitudTramite.NroTelefono;
                    administrado.Direccion = solicitudTramite.Direccion;
                    administrado.CorreoElectronico = solicitudTramite.CorreoElectronico;
                    administrado.Celular = solicitudTramite.NroCelular;

                    context.SaveChanges();
                    return t_solicitudTramite.IdSolicitudTramite;
                }
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                            ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
        public AdministradoVob ObtenerAdministrado(int idAdministrado)
        {
            using (var context = new TramiteEntities())
            {

                var consulta = from adm in context.T_Administrado
                               where adm.IdAdministrado==idAdministrado
                               select new AdministradoVob
                               {
                                   IdAdministrado=adm.IdAdministrado,
                                   Nombre = adm.Nombre,
                                   TipoPersona=adm.TipoPersona,
                                   TipoDocumento=adm.TipoDocumento,
                                   NroDocumento=adm.NroDocumento,
                                   FechaNacimiento=adm.FechaNacimiento,
                                   Direccion=adm.Direccion,
                                   CorreoElectronico=adm.CorreoElectronico,
                                   NroCelular=adm.Celular,
                                   NroTelefono=adm.Telefono
                               };
                return consulta.FirstOrDefault();
            }
        }