예제 #1
0
        public async Task <IActionResult> PostBook(BookMODEL model)
        {
            var resultProcess = await bookBLL.InsertAsync(model);

            if (!resultProcess.IsApproved)
            {
                return(BadRequest(resultProcess.ShortMessage));
            }
            else
            {
                return(Ok(resultProcess.ObjectResult));
            }
        }
예제 #2
0
        public async Task <IActionResult> PutBook(int id, BookMODEL model)
        {
            if (id != model.IdBook)
            {
                return(BadRequest());
            }

            var resultProcess = await bookBLL.UpdateAsync(model);

            if (!resultProcess.IsApproved)
            {
                return(BadRequest(resultProcess.ShortMessage));
            }
            else
            {
                return(Ok(resultProcess.ObjectResult));
            }
        }
예제 #3
0
        public async Task <ResponseMODEL> GetAsync(int id)
        {
            try
            {
                var resultProcess = await bookDAL.GetAsync(id);

                if (resultProcess.IsApproved)
                {
                    Book result = (Book)resultProcess.ObjectResult;
                    if (result == null)
                    {
                        return(ResponseMODEL.Instance(true, "Consulta Exitosa", "Sin resultados", "No existen coincidencias con para esta consulta", result));
                    }
                    else
                    {
                        BookMODEL resultObject = new BookMODEL {
                            IdBook      = result.IdBook,
                            Gender      = result.Gender,
                            IdAuthor    = result.IdAuthor,
                            IdEditorial = result.IdEditorial,
                            NumberPages = result.NumberPages,
                            Tittle      = result.Tittle,
                            Year        = result.Year
                        };

                        resultProcess.ObjectResult = null;
                        resultProcess.ObjectResult = resultObject;
                    }
                }

                return(resultProcess);
            }
            catch (Exception ex)
            {
                return(ResponseMODEL.Instance(false, "Error Controlado", "Se controlo un error en la aplicacion.", ex.Message, ex));
            }
        }
예제 #4
0
        public async Task <ResponseMODEL> UpdateAsync(BookMODEL model)
        {
            try
            {
                var validateEditorial = await editorialDAL.GetAsync(model.IdEditorial);

                if (!validateEditorial.IsApproved)
                {
                    return(validateEditorial);
                }

                Editorial editorial = (Editorial)validateEditorial.ObjectResult;

                if (editorial == null)
                {
                    return(ResponseMODEL.Instance(false, "Transaccion Rechazada", "La editorial no está registrada", "Transaccion rechazada por regla de negocio"));
                }

                var validateAuthor = await authorDAL.GetAsync(model.IdAuthor);

                if (!validateAuthor.IsApproved)
                {
                    return(validateAuthor);
                }

                Author author = (Author)validateAuthor.ObjectResult;
                if (author == null)
                {
                    return(ResponseMODEL.Instance(false, "Transaccion Rechazada", "El autor no está registrado", "Transaccion rechazada por regla de negocio"));
                }

                var limit = editorial.MaximumBooksRegistered;
                var validateBooksEditorial = await bookDAL.GetByIdEditorialAsync(model.IdEditorial);

                if (validateBooksEditorial.IsApproved)
                {
                    List <Book> booksEditorial = (List <Book>)validateBooksEditorial.ObjectResult;
                    if (booksEditorial.Count < limit || limit == -1)
                    {
                        Book modelDAL = new Book();
                        modelDAL.IdBook      = model.IdBook;
                        modelDAL.Tittle      = model.Tittle;
                        modelDAL.Year        = model.Year;
                        modelDAL.NumberPages = model.NumberPages;
                        modelDAL.Gender      = model.Gender;
                        modelDAL.IdAuthor    = model.IdAuthor;
                        modelDAL.IdEditorial = model.IdEditorial;

                        return(await bookDAL.UpdateAsync(modelDAL));
                    }
                    else
                    {
                        return(ResponseMODEL.Instance(false, "Transaccion Rechazada", "No es posible modificar el libro, se alcanzó el máximo permitido", "Transaccion rechazada por regla de negocio"));
                    }
                }
                else
                {
                    return(validateBooksEditorial);
                }
            }
            catch (Exception ex)
            {
                return(ResponseMODEL.Instance(false, "Error Controlado", "Se controlo un error en la aplicacion.", ex.Message, ex));
            }
        }