Example #1
0
        public async Task <ResponseMODEL> DeleteAsync(int id)
        {
            try
            {
                var resultProcess = await authorDAL.GetAsync(id);

                var validateBooks = await bookDAL.GetByIdAuthorAsync(id);

                if (!validateBooks.IsApproved)
                {
                    return(resultProcess);
                }

                if (((List <Book>)validateBooks.ObjectResult).Count > 0)
                {
                    return(ResponseMODEL.Instance(false, "Transaccion Rechazada", "Autor con libros activos", "No puede eliminar un autor si tiene libros activos"));
                }

                if (resultProcess.IsApproved)
                {
                    if ((Author)resultProcess.ObjectResult != null)
                    {
                        return(await authorDAL.DeleteAsync((Author)resultProcess.ObjectResult));
                    }
                    else
                    {
                        return(ResponseMODEL.Instance(false, "Transaccion Rechazada", "No es posible eliminar el autor", "No existe un autor que coincida con el codigo enviado"));
                    }
                }
                else
                {
                    return(resultProcess);
                }
            }
            catch (Exception ex)
            {
                return(ResponseMODEL.Instance(false, "Error Controlado", "Se controlo un error en la aplicacion.", ex.Message, ex));
            }
        }