示例#1
0
        public async Task <IActionResult> ListRoots()
        {
            try
            {
                // ReSharper disable PossibleInvalidOperationException
                (var assets, var taskActualities) = await _assetHelper.ListRootAsync(TenantID.Value, TenantMemberID.Value);

                // ReSharper restore PossibleInvalidOperationException

                var result = BuildResut(assets, taskActualities);

                if (result == null)
                {
                    return(NoContent());
                }

                return(Ok(result));
            }
            catch (Exception ex)
            {
                ErrorObject.StatusCode = (int)HttpStatusCode.InternalServerError;
                ErrorObject.Add(ex);
                return(ErrorObject);
            }
        }
示例#2
0
        public async Task <IActionResult> ListDescendants([FromRoute] int parentAssetID, [FromRoute] RouteExtension extension)
        {
            if (parentAssetID <= 0)
            {
                ErrorObject.Add(new ArgumentNullException(nameof(parentAssetID)));
                return(ErrorObject);
            }

            try
            {
                // ReSharper disable PossibleInvalidOperationException
                (var assets, var taskActualities) = extension == RouteExtension.All ? await _assetHelper.ListDescendantsAsync(TenantID.Value, TenantMemberID.Value, parentAssetID)
                                                  : await _assetHelper.ListChildrenAsync(TenantID.Value, TenantMemberID.Value, parentAssetID);

                // ReSharper restore PossibleInvalidOperationException

                var result = BuildResut(assets, taskActualities);

                if (result == null || !result.Any())
                {
                    return(NoContent());
                }

                return(Ok(result));
            }
            catch (AssetDeletedException ex)
            {
                ErrorObject.Add(ex);
                return(ErrorObject);
            }
            catch (AssetArchivedException ex)
            {
                ErrorObject.Add(ex);
                return(ErrorObject);
            }
            catch (Exception ex)
            {
                ErrorObject.StatusCode = (int)HttpStatusCode.InternalServerError;
                ErrorObject.Add(ex);
                return(ErrorObject);
            }
        }