예제 #1
0
 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);
예제 #2
0
        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
            }));
        }