public int InsertarAlmacen(Dtos.almacenDTO dto)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             var entity = dto.ToEntity();
             modelo.almacen.Add(entity);
             modelo.SaveChanges();
             return entity.ID_Almacen;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
 public int InsertarRequerimientoDetalle(Dtos.requerimiento_detalleDTO dto)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             var entity = dto.ToEntity();
             modelo.requerimiento_detalle.Add(entity);
             modelo.SaveChanges();
             return entity.ID_RequerimientoDetalle;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
 public bool InsertarEntidad(Dtos.entidadDTO dto)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             var entity = dto.ToEntity();
             modelo.entidad.Add(entity);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
 public bool EliminarEntidad(string ruc)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             PersistenciaDatos.entidad x = modelo.entidad.Where(q => q.Ruc == ruc).Select(q => q).FirstOrDefault();
             if (x == null) return false;
             modelo.entidad.Remove(x);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
        public Dtos.entidadDTO BuscarEntidadPorID(string ruc)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.entidad.Where(q => q.Ruc == ruc).Select(q => q).FirstOrDefault();

                    if (entity == null) return null;
                    return Dominio.Convertidores.entidadAssembler.ToDTO(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
 public bool EliminarCatalogo(string IDcatalogo)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             PersistenciaDatos.catalogo x = modelo.catalogo.Where(q => q.ID_Catalogo == IDcatalogo).Select(q => q).FirstOrDefault();
             if (x == null) return false;
             modelo.catalogo.Remove(x);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
 public bool EliminarUnidadMedida(string idunidadmedida)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             PersistenciaDatos.unidad_medida x = modelo.unidad_medida.Where(q => q.ID_UnidadMedida == idunidadmedida).Select(q => q).FirstOrDefault();
             if (x == null) return false;
             modelo.unidad_medida.Remove(x);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
 public bool EliminarAlmacen(int IDAlmacen)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             PersistenciaDatos.almacen x = modelo.almacen.Where(q => q.ID_Almacen == IDAlmacen).Select(q => q).FirstOrDefault();
             if (x == null) return false;
             modelo.almacen.Remove(x);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
        public Dtos.usuarioDTO BuscarUsuarioPorID(int idusuario)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.usuario.Where(q => q.ID_Usuario == idusuario).Select(q => q).FirstOrDefault();

                    if (entity == null) return null;
                    return Dominio.Convertidores.usuarioAssembler .ToDTO(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
 public bool EliminarProyectosXidUsuario(int idusuario)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             PersistenciaDatos.proyecto  x = modelo.proyecto.Where(q => q.ID_Usuario == idusuario).Select(q => q).FirstOrDefault ();
             if (x == null) return false;
             modelo.proyecto.Remove(x);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
 public bool EliminarRequerimientoDetalle(int idrequerimientodetalle)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             PersistenciaDatos.requerimiento_detalle x = modelo.requerimiento_detalle.Where(q => q.ID_RequerimientoDetalle == idrequerimientodetalle).Select(q => q).FirstOrDefault();
             if (x == null) return false;
             modelo.requerimiento_detalle.Remove(x);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
 public bool ActualizarProyecto(Dtos.proyectoDTO dto)
 {
     try
     {
         using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
         {
             var w = modelo.proyecto.Where(q => q.ID_Proyecto == dto.ID_Proyecto).Select(q => q).FirstOrDefault();
             if (w == null) return false;
             Dominio.Convertidores.proyectoAssembler.Actualizar(dto, w);
             modelo.SaveChanges();
             return true;
         }
     }
     catch (Exception)
     {
         throw new NotImplementedException();
     }
 }
        public Dtos.requerimiento_detalleDTO BuscarRequerimientoDetallePorIdrequerimientodetalle(int idrequerimientodetalle)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.requerimiento_detalle.Where(q => q.ID_RequerimientoDetalle == idrequerimientodetalle).Select(q => q).FirstOrDefault();

                    if (entity == null) return null;
                    return Dominio.Convertidores.requerimiento_detalleAssembler.ToDTO(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
        public Dtos.unidad_medidaDTO BuscarUnidadMedidaPorID(string idunidadmedida)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.unidad_medida.Where(q => q.ID_UnidadMedida == idunidadmedida).Select(q => q).FirstOrDefault();

                    if (entity == null) return null;
                    return Dominio.Convertidores.unidad_medidaAssembler.ToDTO(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
        public List<Dtos.requerimientoDTO> ListarRequerimientoXidalmacen(int idalmacen)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.requerimiento.Where(q => q.ID_Almacen == idalmacen).Select(q => q).ToList();

                    if (entity == null) return null;
                    return Dominio.Convertidores.requerimientoAssembler.ToDTOs(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
        public IEnumerable<Dtos.usuarioDTO> ListarUsuarioXnombre(string nombresusuario)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.usuario.Where(q => q.nombres.Contains(nombresusuario)).Select(q => q).ToList();

                    if (entity == null) return null;
                    return Dominio.Convertidores.usuarioAssembler.ToDTOs(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
        public List<Dtos.proyectoDTO> ListarProyectoXidusuario(int idusuario)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.proyecto.Where(q => q.ID_Usuario ==idusuario).Select(q => q).ToList();

                    if (entity == null) return null;
                    return Dominio.Convertidores.proyectoAssembler.ToDTOs(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
        public List<Dtos.requerimiento_detalleDTO> ListarRequerimientoDetalles()
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.requerimiento_detalle.Select(q => q).ToList();

                    if (entity == null) return null;
                    return Dominio.Convertidores.requerimiento_detalleAssembler.ToDTOs(entity);
                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            }
        }
        public List<Dtos.unidad_medidaDTO> ListarUnidadDeMedidas()
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.unidad_medida.Select(q => q).ToList();

                    if (entity == null) return null;
                    return Dominio.Convertidores.unidad_medidaAssembler.ToDTOs(entity);
                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            }
        }
        public List<Dtos.catalogoDTO> ListarCatalogoXtipobien(string tipobien)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.catalogo.Where(q => q.tipo_bien.Contains(tipobien)).Select(q => q).ToList();

                    if (entity == null) return null;
                    return Dominio.Convertidores.catalogoAssembler.ToDTOs(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }
        public List<Dtos.almacenDTO> ListarAlmacenXnombre(string nombrealmacen)
        {
            try
            {
                using (var modelo = new PersistenciaDatos.BDlogisticaEntities())
                {
                    var entity = modelo.almacen.Where(q => q.nombre_almacen.Contains(nombrealmacen)).Select(q => q).ToList();

                    if (entity == null) return null;
                    return Dominio.Convertidores.almacenAssembler.ToDTOs(entity);

                }
            }
            catch (Exception)
            {
                throw new NotImplementedException();
            };
        }