コード例 #1
0
        public ActionResult GetFolderChildren([FromHeader] string xAuthToken, string customerId, string libraryName, string folderId)
        {
            var requestData = new GetFolderChildrenRequestData()
            {
                CustomerId  = customerId,
                LibraryName = libraryName,
                FolderId    = folderId
            };

            try
            {
                var result = _foldersService.GetFolderChildren(xAuthToken, requestData);

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

                return(Ok(result));
            }
            catch (Exception exc)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
        }
コード例 #2
0
        public GetFolderChildrenResponseData GetFolderChildren(string xAuthToken, GetFolderChildrenRequestData requestData)
        {
            _httpHelper.AddHeader("X-Auth-Token", xAuthToken);
            var returnData = _httpHelper.Get <GetFolderChildrenResponseData>(
                $"api/v2/customers/{requestData.CustomerId}/libraries/{requestData.LibraryName}/folders/{requestData.FolderId}/children");

            //file site returns documents and folders in same container.... must separate out
            returnData.Documents ??= new List <Document>();
            returnData.Folders = new List <Folder>();
            var deleteTheseIndeces = new List <int>();

            for (int i = 0; i < returnData.Documents.Count; i++)
            {
                if (returnData.Documents[i].Wstype == "folder")
                {
                    deleteTheseIndeces.Add(i);
                    var folder = _mapper.Map <Document, Folder>(returnData.Documents[i]);
                    returnData.Folders.Add(folder);
                }
            }

            deleteTheseIndeces.Reverse();

            foreach (int i in deleteTheseIndeces)
            {
                returnData.Documents.RemoveAt(i);
            }

            returnData.Documents.ForEach(doc => doc.ParentId = requestData.FolderId);
            returnData.Folders.ForEach(fol => fol.ParentId   = requestData.FolderId);

            return(returnData);
        }