예제 #1
0
        public Activo ObtenerActivo(IActivoRepository activoRepository, Guid?id, string dominio = null, int?numeroInterno = null)
        {
            Activo activo = null;
            string clave  = "llave ";

            if (id != null)
            {
                activo = activoRepository.GetById(id);
                clave  = clave + "(Id) == ( " + id.ToString() + ")";
            }
            else
            {
                if (dominio != null)
                {
                    activo = activoRepository.GetActivoByDominio(dominio);
                    clave  = clave + "(Dominio) == (" + dominio.ToString() + ")";
                }
                else
                {
                    if (numeroInterno != null)
                    {
                        activo = activoRepository.GetActivoByNumeroInterno(numeroInterno);
                        clave  = clave + "(NumeroInterno) == (" + numeroInterno.ToString() + ")";
                    }
                }
            }
            if (activo is null)
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.NoEncontrado, "Activo no encontrado " + clave, "Activo"));
            }

            return(activo);
        }
예제 #2
0
        public void EliminarDocumentacion(IActivoRepository activoRepository, Guid IdDocumentacion)
        {
            var doc = ObtenerDocumentacionById(activoRepository, IdDocumentacion);

            activoRepository.Remove(doc);
            activoRepository.Commit();
        }
예제 #3
0
        public IEnumerable <Activo> ObtenerActivos(IActivoRepository activoRepository)
        {
            var activoResult = activoRepository.GetAll();

            if (activoResult == null)
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.NoEncontrado, "No se pudo obtener los activos", "Activo"));
            }
            return(activoResult);
        }
예제 #4
0
        public DocumentacionActivo ObtenerDocumentacionById(IActivoRepository activoRepository, Guid id)
        {
            var activoResult = activoRepository.GetDocumentacionById(id);

            if (activoResult is null)
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.NoEncontrado, "DocumentacionActivo no encontrado con llave (id) == (" + id.ToString() + ")", "DocumentacionActivo"));
            }
            return(activoResult);
        }
예제 #5
0
        public DocumentacionActivo AgregarDocumentacion(IActivoRepository activoRepository, DocumentacionActivo doc, Guid IdActivo)
        {
            var docValidator = new DocumentacionActivoValidator();

            if (docValidator.IsValid(doc))
            {
                var activo = ObtenerActivo(activoRepository, IdActivo);
                activo.AgregarDocumento(doc);
                activoRepository.Commit();
                return(doc);
            }
            else
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.ErrorValidacion, "No se puede agregar la documentacion activo. No se cumplio una validación de datos.", "DocumentacionActivo", docValidator.BrokenRules(doc)));
            }
        }
예제 #6
0
        public IEnumerable <Activo> GetActivosConDocumentacionVencida(IActivoRepository activoRepository, DateTime fechaVencimiento)
        {
            if (fechaVencimiento == DateTime.MinValue)
            {
                fechaVencimiento = DateTime.Now;
            }
            IEnumerable <Activo> activos = activoRepository.Filter(activo => activo.Documentos.Exists(documento => documento.FechaVencimiento <= fechaVencimiento)).ToList();

            // Validate if list contains activos
            if (activos.Count() == 0)
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.NoEncontrado, "Activos no encontrados", "Activo"));
            }

            return(activos);
        }
예제 #7
0
        public Activo ModificarActivo(IActivoRepository activoRepository, Activo activo)
        {
            bool esDominioRequerido = activoRepository.GetDominioIsRequired(activo.TipoActivoId);
            var  activoValidator    = new ActivoValidator(esDominioRequerido);

            if (activoValidator.IsValid(activo))
            {
                activoRepository.Update(activo);
                activoRepository.Commit();
                activoRepository.LoadReference(activo, a => a.TipoModelo);
                activoRepository.LoadReference(activo, a => a.TipoActivo);
                return(activo);
            }
            else
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.ErrorValidacion, "No se puede modificar el activo. No se cumplio una validación de datos.", "Activo", activoValidator.BrokenRules(activo)));
            }
        }
예제 #8
0
        public DocumentacionActivo ModificarDocumentacion(IActivoRepository activoRepository, DocumentacionActivo doc, Guid IdActivo)
        {
            var docValidator = new DocumentacionActivoValidator();

            if (docValidator.IsValid(doc))
            {
                var activo    = ObtenerActivo(activoRepository, IdActivo);
                var docUpdate = ObtenerDocumentacionById(activoRepository, doc.Id);
                docUpdate.CambiarFechaVencimiento(doc.FechaVencimiento);
                docUpdate.CambiarTipoDocumentacionActivoId(doc.TipoDocumentacionActivoId);
                activoRepository.Update(activo);
                activoRepository.Commit();
                return(docUpdate);
            }
            else
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.ErrorValidacion, "No se puede modificar la documentacion activo. No se cumplio una validación de datos.", "DocumentacionActivo", docValidator.BrokenRules(doc)));
            }
        }
예제 #9
0
        public IEnumerable <DocumentacionActivo> GetAllDocumentacionDeActivoByFechaVencimiento(IActivoRepository activoRepository, Guid idActivo, DateTime fechaVencimiento)
        {
            IEnumerable <DocumentacionActivo> docs = activoRepository.Filter(d => d.FechaVencimiento <= fechaVencimiento && d.ActivoId == idActivo).ToList();

            // Validate if list contains documentations
            if (docs.Count() == 0)
            {
                throw new CenturyException(new CenturyError(CenturyError.TipoError.NoEncontrado, "DocumentacionActivo no encontrado", "DocumentacionActivo"));
            }
            else
            {
                return(docs);
            }
        }