private async Task <KeyValuePair <bool?, bool> > IsUserAuthorizedOnItemsAndGroup(int userId, ItemGroupVM itemGroup) { //Check if all items are created by the user var isAuthorizedOnItemsExpression = itemGroup.ItemType switch { nameof(Todo) => (Func <Task <bool?> >)(async() => { var todoService = HttpContext.RequestServices.GetService <ITodoService>(); if (todoService == null) { return(default);
public async Task <JsonResult> RemoveItemsFromContentGroup([FromHeader] int userId, [FromBody] ItemGroupVM itemGroup) { var(authorizedOnItems, authorizedOnGroup) = await IsUserAuthorizedOnItemsAndGroup(userId, itemGroup); if (!authorizedOnItems.HasValue) { return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "An issue happened while getting data." })); } if (!authorizedOnItems.Value || !authorizedOnGroup) { return(new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "You are not authorized for this action." })); } var removeFromGroupResult = _groupService.RemoveItemsFromContentGroupFor(itemGroup); return(!removeFromGroupResult.HasValue || !removeFromGroupResult.Value ? new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Failed, Message = "An issue happened while getting data." }) : new JsonResult(new JsonResponse { Result = SharedEnums.RequestResults.Success })); }