public async Task <IActionResult> Delete(int id, [FromServices] BookCommentService service, [FromServices] UserService userService) { try { var user = await userService.GetUserPrincipal(User); var userRole = await userService.GetUserRole(user); switch (userRole.Name) { case USER_ROLE_ADMIN: case USER_ROLE_MANAGER: return(Ok(await service.Delete(id))); case USER_ROLE_CUSTOMER: return(Ok(await service.Delete(id, user.Id))); default: return(Unauthorized(FORBIDDEN)); } } catch (HttpResponseException err) { return(err.ToResponse()); } catch (Exception err) { return(StatusCode(SERVER_ERROR_CODE, err.Message)); } }
public async Task <IActionResult> GetCount([FromServices] BookService bookService, [FromServices] CustomerService customerService, [FromServices] OrderService orderService, [FromServices] BookCommentService commentService) { try { var countBook = bookService.Count(); var countCustomer = customerService.Count(); var countComment = commentService.Count(); var countOrder = orderService.Count(); await Task.WhenAll(countBook, countComment, countCustomer, countOrder); var data = new { book = await countBook, customer = await countCustomer, comment = await countComment, order = await countOrder }; return(Ok(data)); } catch (HttpResponseException err) { return(err.ToResponse()); } catch (Exception err) { return(StatusCode(SERVER_ERROR_CODE, err.Message)); } }
public async Task <IActionResult> Fetch([FromServices] BookCommentService service) { try { var item = await service.Fetch(); return(Ok(item)); } catch (HttpResponseException err) { return(err.ToResponse()); } catch (Exception err) { return(StatusCode(SERVER_ERROR_CODE, err.Message)); } }
public async Task <IActionResult> Post(BookComment input, [FromServices] BookCommentService service, [FromServices] UserService userService) { try { var customer = await userService.GetCustomer(User); input.CustomerId = customer.UserId; var item = await service.Store(input); return(Ok(item)); } catch (HttpResponseException err) { return(err.ToResponse()); } catch (Exception err) { return(StatusCode(SERVER_ERROR_CODE, err.Message)); } }