/// <summary>
        /// Retrieves file metadata from an entity's profile.
        /// </summary>
        public async Task <PlayFabResult <GetFilesResponse> > GetFilesAsync(GetFilesRequest request, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            if ((request?.AuthenticationContext?.EntityToken ?? PlayFabSettings.staticPlayer.EntityToken) == null)
            {
                throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method");
            }

            var httpResult = await PlayFabHttp.DoPost("/File/GetFiles", request, "X-EntityToken", PlayFabSettings.staticPlayer.EntityToken, extraHeaders, apiSettings);

            if (httpResult is PlayFabError)
            {
                var error = (PlayFabError)httpResult;
                PlayFabSettings.GlobalErrorHandler?.Invoke(error);
                return(new PlayFabResult <GetFilesResponse> {
                    Error = error, CustomData = customData
                });
            }

            var resultRawJson = (string)httpResult;
            var resultData    = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <GetFilesResponse> >(resultRawJson);
            var result        = resultData.data;

            return(new PlayFabResult <GetFilesResponse> {
                Result = result, CustomData = customData
            });
        }
Example #2
0
        public static async Task <GetFilesResponse> GetFiles(GetFilesRequest request)
        {
            System.Collections.Specialized.NameValueCollection qs = HttpUtility.ParseQueryString(string.Empty);
            qs.Add("access_token", request.Token);
            if (request.Folder != null)
            {
                qs.Add("folder", JsonConvert.SerializeObject(request.Folder));
            }
            if (request.Offset > 0)
            {
                qs.Add("offset", request.Offset.ToString());
            }
            if (request.MaxReturn > 0)
            {
                qs.Add("maxReturn", request.MaxReturn.ToString());
            }
            string              url      = request.Host + "/rest/asset/v1/files.json?" + qs.ToString();
            HttpClient          client   = new HttpClient();
            HttpResponseMessage response = await client.GetAsync(url);

            response.EnsureSuccessStatusCode();

            string content = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <GetFilesResponse>(content));
        }
Example #3
0
        internal async Task <GetFilesResponse> GetFiles(GetFilesRequest request)
        {
            if (request == null)
            {
                throw new Exception("No data provided to request");
            }
            if (request.Limit > 100)
            {
                throw new Exception($"Maximum number of items per page is 100");
            }

            if (request.Limit == 0)
            {
                request.Limit = 100;
            }

            var filterQueryString = string.IsNullOrWhiteSpace(request.FilterStatus)
                ? string.Empty
                : $"&status={request.FilterStatus}";

            var apiResponse =
                await _client.GetAsync <GetFilesResponse>($"files?offset={request.Offset}&limit={request.Limit}{filterQueryString}");

            return(apiResponse);
        }
Example #4
0
        public async Task <GetFilesResponse> GetFiles(string folderId, int offSet)
        {
            GetFilesRequest  request = _requestFactorty.CreateGetFilesRequest(_host, _token, folderId, offSet);
            GetFilesResponse result  = await HttpProcessor.GetFiles(request);

            return(result);
        }
Example #5
0
        public HttpResponseMessage Get()
        {
            var request = new GetFilesRequest();
            var response = Facade.Query<GetFilesResponse, GetFilesRequest>(request);

            return CreateHttpResponse(response, HttpStatusCode.OK);
        }
Example #6
0
        /// <summary>
        /// Retrieves file metadata from an entity's profile.
        /// </summary>
        public static void GetFiles(GetFilesRequest request, Action <GetFilesResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            var context = (request == null ? null : request.AuthenticationContext) ?? PlayFabSettings.staticPlayer;


            PlayFabHttp.MakeApiCall("/File/GetFiles", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context);
        }
Example #7
0
            public void GetFiles()
            {
                GetFilesRequest request = new GetFilesRequest(connection, "DEV/64");

                GetFilesResponse response = request.Send();

                Assert.AreEqual(response.StatusCode, System.Net.HttpStatusCode.OK);
            }
Example #8
0
        /// <summary>
        /// Retrieves file metadata from an entity's profile.
        /// </summary>
        public static void GetFiles(GetFilesRequest request, Action<GetFilesResponse> resultCallback, Action<PlayFabError> errorCallback, object customData = null, Dictionary<string, string> extraHeaders = null)
        {
            var context = (request == null ? null : request.AuthenticationContext) ?? PlayFabSettings.staticPlayer;
            var callSettings = PlayFabSettings.staticSettings;
            if (!context.IsEntityLoggedIn()) throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn,"Must be logged in to call this method");


            PlayFabHttp.MakeApiCall("/File/GetFiles", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings);
        }
Example #9
0
        public override async Task <FilesReply> GetFiles(GetFilesRequest request, ServerCallContext context)
        {
            var reply = new FilesReply();
            var items = _service.All().Where(f => f.Type == (int)FileType.Normal);

            if (!string.IsNullOrWhiteSpace(request.ParentId))
            {
                if (!Guid.TryParse(request.ParentId, out var folderId))
                {
                    reply.Error = Error.NoSuchEntity;
                    return(reply);
                }

                var folder = await _service.All().Where(k => k.Id == folderId && k.Type == (int)FileType.Folder)
                             .FirstOrDefaultAsync();

                if (folder == null)
                {
                    reply.Error = Error.NoSuchEntity;
                    return(reply);
                }

                var pathPrefix = folder.Path + PathSep;
                items = items.Where(f => f.Path.StartsWith(pathPrefix));
            }

            var readPrivate = (await _userService.GetUser(context.GetHttpContext())).HasReadPrivatePermission();

            if (!readPrivate)
            {
                items = items.Where(i => i.Private == (ulong)PrivateType.Public);
            }

            int?total = null;

            if (request.Skip > 0)
            {
                total = await items.CountAsync();

                items = items.Skip(request.Skip);
            }

            if (request.Take > 0)
            {
                items = items.Take(request.Take);
            }

            reply.Files.AddRange(await items
                                 .Select(Selector)
                                 .ToArrayAsync());
            if (total.HasValue)
            {
                reply.Total = total.Value;
            }

            return(reply);
        }
    public GetFilesResponse Delete(GetFilesRequest request)
    {
        var time     = Stopwatch.StartNew();
        var response = new GetFilesResponse()
        {
            Server = Environment.MachineName
        };

        Directory.Delete(request.Path, request.Recursive);

        response.Milliseconds = time.Elapsed.TotalMilliseconds;
        return(response);
    }
Example #11
0
        public async Task TestGetFiles()
        {
            var fileInfo           = new System.IO.FileInfo(Path.Join(".", "testFiles", "test.png"));
            var uploadFileResponse = await SkyManager.MediaClient.UploadFile(fileInfo, "File 1", "File 1 Description");

            var file1Id   = uploadFileResponse.FileId;
            var file1Etag = uploadFileResponse.ETag;

            var fileUpdate = new FileUpdate().SetDefaults();

            fileUpdate.Description = "New File 1 Description";
            fileUpdate.Filename    = "newfile.png";
            fileUpdate.Properties  = new Properties();
            fileUpdate.Properties.Add("testProp", "testValue");
            fileUpdate.Tags = new List <string>()
            {
                "tag1"
            };
            fileUpdate.Title = "New File 1";

            Assert.NotNull(fileUpdate.ToJson());
            Assert.NotNull(fileUpdate.ToString());

            var updateFileRequest = new UpdateFileRequest(fileUpdate, file1Id);

            updateFileRequest.AdditionalRequestHeaders.Add(new KeyValuePair <string, string>("If-Match", file1Etag));
            var updateFileResponse = await SkyManager.ApiClient.ExecuteRequestAsync(updateFileRequest);

            Assert.Equal(HttpStatusCode.NoContent, updateFileResponse.StatusCode);

            var getFilesRequest = new GetFilesRequest();

            getFilesRequest.AddCreatedByQuery(SkyManager.IntegrationId);
            getFilesRequest.AddCreatedFromQuery(DateTime.MinValue.ToString("yyyy-MM-dd'T'HH:mm:ss.fffzzz"));
            getFilesRequest.AddCreatedToQuery(DateTime.MaxValue.ToString("yyyy-MM-dd'T'HH:mm:ss.fffzzz"));
            getFilesRequest.AddUpdatedFromQuery(DateTime.MinValue.ToString("yyyy-MM-dd'T'HH:mm:ss.fffzzz"));
            getFilesRequest.AddUpdatedToQuery(DateTime.MaxValue.ToString("yyyy-MM-dd'T'HH:mm:ss.fffzzz"));
            getFilesRequest.AddExcludeTagsQuery("");
            getFilesRequest.AddLimitQuery(1);
            getFilesRequest.AddPageQuery(0);
            getFilesRequest.AddPropQuery("testProp", "testValue");
            getFilesRequest.AddSortQuery("created");
            getFilesRequest.AddStartQuery(0);
            getFilesRequest.AddTagsQuery("tag1");
            getFilesRequest.AddTypeQuery("image");
            var getFilesResponse = await SkyManager.ApiClient.ExecuteRequestAsync(getFilesRequest);

            Assert.Single(getFilesResponse.Content);

            await SkyManager.ApiClient.ExecuteRequestAsync(new DeleteFileRequest(file1Id));
        }
Example #12
0
        /// <summary>
        /// Retrieves file metadata from an entity's profile.
        /// </summary>
        /// <param name="Entity">The entity to perform this action on. (Required)</param>
        public static Task <GetFilesResponse> GetFiles(EntityKey Entity,
                                                       PlayFabAuthenticationContext customAuthContext = null, object customData = null, Dictionary <string, string> extraHeaders = null)
        {
            GetFilesRequest request = new GetFilesRequest()
            {
                Entity = Entity,
            };

            var context = GetContext(customAuthContext);

            return(PlayFabHttp.MakeApiCallAsync <GetFilesResponse>("/File/GetFiles", request,
                                                                   AuthType.EntityToken,
                                                                   customData, extraHeaders, context));
        }
Example #13
0
        public GetFilesRepositoryResponse GetFiles(GetFilesRequest request)
        {
            int totalRecord = 0;
            var data        = SortData(request.Year, request.Search, request.SortingDictionary, out totalRecord);

            if (request.Take != -1)
            {
                data = data.Skip(request.Skip).Take(request.Take);
            }
            return(new GetFilesRepositoryResponse
            {
                TotalRecords = totalRecord,
                FileRepositories = data.ToList().MapTo <GetFilesRepositoryResponse.FileRepository>()
            });
        }
Example #14
0
        public GetFilesRequest CreateGetFilesRequest(string host, string token, string folderId, int offSet = 0, int maxReturn = 200)
        {
            Dictionary <string, dynamic> folder = new Dictionary <string, dynamic>();

            folder.Add("id", folderId);
            folder.Add("type", "Folder");
            GetFilesRequest getFilesRequest = new GetFilesRequest()
            {
                Host      = host,
                Token     = token,
                Offset    = offSet,
                MaxReturn = maxReturn,
                Folder    = folder
            };

            return(getFilesRequest);
        }
        public void Should_Return_Files_List_Successfully()
        {
            RunActionInTransaction(session =>
            {
                CreateFakeMedias(session);
                var repository = CreateRepository(session);

                using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository))
                {
                    var request = new GetFilesRequest(itemsCount: 3);
                    var files   = service.GetFiles(request);
                    Assert.IsNotNull(files);
                    Assert.GreaterOrEqual(files.Items.Count, 1);
                    Assert.LessOrEqual(files.Items.Count, 3);
                }
            });
        }
        public void Should_Return_Files_List_Successfully()
        {
            RunActionInTransaction(session =>
            {
                CreateFakeMedias(session);
                var repository = CreateRepository(session);

                using (var service = new MediaManagerApiContext(Container.BeginLifetimeScope(), repository))
                {
                    var request = new GetFilesRequest(itemsCount: 3);
                    var files = service.GetFiles(request);
                    Assert.IsNotNull(files);
                    Assert.GreaterOrEqual(files.Items.Count, 1);
                    Assert.LessOrEqual(files.Items.Count, 3);
                }
            });
        }
Example #17
0
        /// <summary>
        /// Gets the File data associated with a particular Product.
        /// </summary>
        /// <returns>Response result code.</returns>
        public GetFilesResponse GetFiles(GetFilesRequest requestData)
        {
            if (requestData == null)
            {
                throw new ArgumentNullException("requestData");
            }

            GetFilesResponse resp = new GetFilesResponse();

            StackHashFileCollection files =
                StaticObjects.TheStaticObjects.TheController.GetFiles(
                    requestData.ContextId, requestData.Product);

            resp.Files = files;

            resp.ResultData = new StackHashServiceResultData(
                StackHashServiceResult.Success, s_OperationSuccessful, null);

            return(resp);
        }
    public ObjectResult Post(GetFilesRequest request)
    {
        if (request is null || request.Path is null)
        {
            var problemDetail = new ProblemDetails
            {
                Status   = 400,
                Title    = "Invalid request",
                Detail   = "Request",
                Instance = "https://api.contoso.com/errors/400"
            };

            return(new ObjectResult(problemDetail)
            {
                StatusCode = problemDetail.Status
            });
        }

        var time    = Stopwatch.StartNew();
        var options = new EnumerationOptions()
        {
            RecurseSubdirectories = request.Recursive
        };

        var entries  = Directory.EnumerateFileSystemEntries(request.Path, request.Filter, options);
        var response = new GetFilesResponse()
        {
            Server = Environment.MachineName
        };

        foreach (var entry in entries)
        {
            response.Files.Add(entry);
        }

        response.Milliseconds = time.Elapsed.TotalMilliseconds;
        return(new ObjectResult(response));
    }
        /// <summary>
        /// Gets the list of media file entities.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// The list of media file entities
        /// </returns>
        /// <exception cref="CmsApiException"></exception>
        public DataListResponse <MediaFile> GetFiles(GetFilesRequest request = null)
        {
            try
            {
                var query = Repository
                            .AsQueryable <MediaFile>()
                            .Where(m => m.Type == MediaType.File)
                            .ApplyFilters(request);

                var totalCount = query.ToRowCountFutureValue(request);
                query = query
                        .AddOrderAndPaging(request)
                        .Fetch(m => m.Folder);

                return(query.ToDataListResponse(totalCount));
            }
            catch (Exception inner)
            {
                const string message = "Failed to get files list.";
                Logger.Error(message, inner);
                throw new CmsApiException(message, inner);
            }
        }
Example #20
0
        /// <summary>
        /// Gets files list.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        ///   <c>GetFilesResponse</c> with files list.
        /// </returns>
        public GetFilesResponse Get(GetFilesRequest request)
        {
            request.Data.SetDefaultOrder("Title");

            var query =
                repository.AsQueryable<Media>()
                    .Where(m => m.Original == null && m.Type == Module.MediaManager.Models.MediaType.File)
                    .Where(f => !(f is MediaFile) || (!((MediaFile)f).IsTemporary && ((MediaFile)f).IsUploaded == true));

            if (request.Data.FolderId == null)
            {
                query = query.Where(m => m.Folder == null);
            }
            else
            {
                query = query.Where(m => m.Folder.Id == request.Data.FolderId && !m.Folder.IsDeleted);
            }

            if (!request.Data.IncludeFolders)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder);
            }

            if (!request.Data.IncludeFiles)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File);
            }

            if (!request.Data.IncludeArchived)
            {
                query = query.Where(m => !m.IsArchived);
            }

            query = query.ApplyMediaTagsFilter(request.Data)
                         .ApplyCategoriesFilter(categoryService, request.Data);

            if (request.User != null && !string.IsNullOrWhiteSpace(request.User.Name))
            {
                var principal = new ApiPrincipal(request.User);
                IEnumerable<Guid> deniedPages = accessControlService.GetPrincipalDeniedObjects<MediaFile>(principal, false);
                foreach (var deniedPageId in deniedPages)
                {
                    var id = deniedPageId;
                    query = query.Where(f => f.Id != id);
                }
            }

            var listResponse =
                query.Select(
                    media =>
                    new MediaModel
                        {
                            Id = media.Id,
                            Version = media.Version,
                            CreatedBy = media.CreatedByUser,
                            CreatedOn = media.CreatedOn,
                            LastModifiedBy = media.ModifiedByUser,
                            LastModifiedOn = media.ModifiedOn,
                            Title = media.Title,
                            Description = media.Description,
                            MediaContentType =
                                media is MediaFolder ? (MediaContentType)((int)MediaContentType.Folder) : (MediaContentType)((int)MediaContentType.File),
                            FileExtension = media is MediaFile ? ((MediaFile)media).OriginalFileExtension : null,
                            FileSize = media is MediaFile ? ((MediaFile)media).Size : (long?)null,
                            FileUrl = media is MediaFile ? ((MediaFile)media).PublicUrl : null,
                            IsArchived = media.IsArchived,
                            ThumbnailId = media.Image != null && !media.Image.IsDeleted ? media.Image.Id : (Guid?)null,
                            ThumbnailCaption = media.Image != null && !media.Image.IsDeleted ? media.Image.Caption : null,
                            ThumbnailUrl = media.Image != null && !media.Image.IsDeleted ? media.Image.PublicThumbnailUrl : null
                        }).ToDataListResponse(request);

            var ids = new List<Guid>();

            listResponse.Items.ToList().ForEach(
                media =>
                    {
                        if (media.MediaContentType == MediaContentType.File)
                        {
                            media.FileUrl = this.mediaFileService.GetDownloadFileUrl(Module.MediaManager.Models.MediaType.File, media.Id, media.FileUrl);
                            ids.Add(media.Id);
                        }
                        media.FileUrl = fileUrlResolver.EnsureFullPathUrl(media.FileUrl);
                        media.ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(media.ThumbnailUrl);
                    });

            if (request.Data.IncludeAccessRules)
            {
                (from file in repository.AsQueryable<MediaFile>()
                 from accessRule in file.AccessRules
                 where ids.Contains(file.Id)
                 orderby accessRule.IsForRole, accessRule.Identity
                 select
                     new AccessRuleModelEx
                         {
                             AccessRule =
                                 new AccessRuleModel
                                     {
                                         AccessLevel = (AccessLevel)(int)accessRule.AccessLevel,
                                         Identity = accessRule.Identity,
                                         IsForRole = accessRule.IsForRole
                                     },
                             FileId = file.Id
                         }).ToList()
                    .ForEach(
                        rule => listResponse.Items.Where(file => file.Id == rule.FileId).ToList().ForEach(
                            file =>
                                {
                                    if (file.AccessRules == null)
                                    {
                                        file.AccessRules = new List<AccessRuleModel>();
                                    }
                                    file.AccessRules.Add(rule.AccessRule);
                                }));
            }

            if (request.Data.IncludeCategories)
            {
                listResponse.Items.ForEach(
                    item =>
                    {
                        item.Categories = (from media in repository.AsQueryable<MediaFile>()
                                           from category in media.Categories
                                           where media.Id == item.Id && !category.IsDeleted
                                           select new CategoryNodeModel
                                           {
                                               Id = category.Category.Id,
                                               Version = category.Version,
                                               CreatedBy = category.CreatedByUser,
                                               CreatedOn = category.CreatedOn,
                                               LastModifiedBy = category.ModifiedByUser,
                                               LastModifiedOn = category.ModifiedOn,
                                               Name = category.Category.Name,
                                               CategoryTreeId = category.Category.CategoryTree.Id
                                           }).ToList();
                    });
            }

            return new GetFilesResponse { Data = listResponse };
        }
Example #21
0
        /// <summary>
        /// Gets files list.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        ///   <c>GetFilesResponse</c> with files list.
        /// </returns>
        public GetFilesResponse Get(GetFilesRequest request)
        {
            request.Data.SetDefaultOrder("Title");

            var query =
                repository.AsQueryable <Media>()
                .Where(m => m.Original == null && m.Type == Module.MediaManager.Models.MediaType.File)
                .Where(f => !(f is MediaFile) || (!((MediaFile)f).IsTemporary && ((MediaFile)f).IsUploaded == true));

            if (request.Data.FolderId == null)
            {
                query = query.Where(m => m.Folder == null);
            }
            else
            {
                query = query.Where(m => m.Folder.Id == request.Data.FolderId && !m.Folder.IsDeleted);
            }

            if (!request.Data.IncludeFolders)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder);
            }

            if (!request.Data.IncludeFiles)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File);
            }

            if (!request.Data.IncludeArchived)
            {
                query = query.Where(m => !m.IsArchived);
            }

            query = query.ApplyMediaTagsFilter(request.Data)
                    .ApplyCategoriesFilter(categoryService, request.Data);

            if (request.User != null && !string.IsNullOrWhiteSpace(request.User.Name))
            {
                var principal = new ApiPrincipal(request.User);
                IEnumerable <Guid> deniedPages = accessControlService.GetPrincipalDeniedObjects <MediaFile>(principal, false);
                foreach (var deniedPageId in deniedPages)
                {
                    var id = deniedPageId;
                    query = query.Where(f => f.Id != id);
                }
            }

            var listResponse =
                query.Select(
                    media =>
                    new MediaModel
            {
                Id               = media.Id,
                Version          = media.Version,
                CreatedBy        = media.CreatedByUser,
                CreatedOn        = media.CreatedOn,
                LastModifiedBy   = media.ModifiedByUser,
                LastModifiedOn   = media.ModifiedOn,
                Title            = media.Title,
                Description      = media.Description,
                MediaContentType =
                    media is MediaFolder ? (MediaContentType)((int)MediaContentType.Folder) : (MediaContentType)((int)MediaContentType.File),
                FileExtension    = media is MediaFile ? ((MediaFile)media).OriginalFileExtension : null,
                FileSize         = media is MediaFile ? ((MediaFile)media).Size : (long?)null,
                FileUrl          = media is MediaFile ? ((MediaFile)media).PublicUrl : null,
                IsArchived       = media.IsArchived,
                ThumbnailId      = media.Image != null && !media.Image.IsDeleted ? media.Image.Id : (Guid?)null,
                ThumbnailCaption = media.Image != null && !media.Image.IsDeleted ? media.Image.Caption : null,
                ThumbnailUrl     = media.Image != null && !media.Image.IsDeleted ? media.Image.PublicThumbnailUrl : null
            }).ToDataListResponse(request);

            var ids = new List <Guid>();

            listResponse.Items.ToList().ForEach(
                media =>
            {
                if (media.MediaContentType == MediaContentType.File)
                {
                    media.FileUrl = this.mediaFileService.GetDownloadFileUrl(Module.MediaManager.Models.MediaType.File, media.Id, media.FileUrl);
                    ids.Add(media.Id);
                }
                media.FileUrl      = fileUrlResolver.EnsureFullPathUrl(media.FileUrl);
                media.ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(media.ThumbnailUrl);
            });

            if (request.Data.IncludeAccessRules)
            {
                (from file in repository.AsQueryable <MediaFile>()
                 from accessRule in file.AccessRules
                 where ids.Contains(file.Id)
                 orderby accessRule.IsForRole, accessRule.Identity
                 select
                 new AccessRuleModelEx
                {
                    AccessRule =
                        new AccessRuleModel
                    {
                        AccessLevel = (AccessLevel)(int)accessRule.AccessLevel,
                        Identity = accessRule.Identity,
                        IsForRole = accessRule.IsForRole
                    },
                    FileId = file.Id
                }).ToList()
                .ForEach(
                    rule => listResponse.Items.Where(file => file.Id == rule.FileId).ToList().ForEach(
                        file =>
                {
                    if (file.AccessRules == null)
                    {
                        file.AccessRules = new List <AccessRuleModel>();
                    }
                    file.AccessRules.Add(rule.AccessRule);
                }));
            }

            if (request.Data.IncludeCategories)
            {
                listResponse.Items.ForEach(
                    item =>
                {
                    item.Categories = (from media in repository.AsQueryable <MediaFile>()
                                       from category in media.Categories
                                       where media.Id == item.Id && !category.IsDeleted
                                       select new CategoryNodeModel
                    {
                        Id = category.Category.Id,
                        Version = category.Version,
                        CreatedBy = category.CreatedByUser,
                        CreatedOn = category.CreatedOn,
                        LastModifiedBy = category.ModifiedByUser,
                        LastModifiedOn = category.ModifiedOn,
                        Name = category.Category.Name,
                        CategoryTreeId = category.Category.CategoryTree.Id
                    }).ToList();
                });
            }

            return(new GetFilesResponse {
                Data = listResponse
            });
        }
        /// <summary>
        /// Gets the list of media file entities.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>
        /// The list of media file entities
        /// </returns>
        /// <exception cref="CmsApiException"></exception>
        public DataListResponse<MediaFile> GetFiles(GetFilesRequest request = null)
        {
            try
            {
                var query = Repository
                    .AsQueryable<MediaFile>()
                    .Where(m => m.Type == MediaType.File)
                    .ApplyFilters(request);

                var totalCount = query.ToRowCountFutureValue(request);
                query = query
                    .AddOrderAndPaging(request)
                    .Fetch(m => m.Folder);

                return query.ToDataListResponse(totalCount);
            }
            catch (Exception inner)
            {
                const string message = "Failed to get files list.";
                Logger.Error(message, inner);
                throw new CmsApiException(message, inner);
            }
        }
Example #23
0
        public GetFilesResponse Get(GetFilesRequest request)
        {
            request.Data.SetDefaultOrder("Title");

            var query = repository.AsQueryable <Media>()
                        .Where(m => m.Original == null && m.Type == MediaType.File)
                        .Where(f => !(f is MediaFile) || (!((MediaFile)f).IsTemporary && ((MediaFile)f).IsUploaded == true));

            if (request.Data.FolderId == null)
            {
                query = query.Where(m => m.Folder == null);
            }
            else
            {
                query = query.Where(m => m.Folder.Id == request.Data.FolderId && !m.Folder.IsDeleted);
            }

            if (!request.Data.IncludeFolders)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder);
            }

            if (!request.Data.IncludeFiles)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File);
            }

            if (!request.Data.IncludeArchived)
            {
                query = query.Where(m => !m.IsArchived);
            }

            query = query.ApplyMediaTagsFilter(request.Data);

            var listResponse = query.Select(media => new MediaModel
            {
                Id             = media.Id,
                Version        = media.Version,
                CreatedBy      = media.CreatedByUser,
                CreatedOn      = media.CreatedOn,
                LastModifiedBy = media.ModifiedByUser,
                LastModifiedOn = media.ModifiedOn,

                Title            = media.Title,
                MediaContentType = media is MediaFolder
                                                    ? (MediaContentType)((int)MediaContentType.Folder)
                                                    : (MediaContentType)((int)MediaContentType.File),
                FileExtension    = media is MediaFile ? ((MediaFile)media).OriginalFileExtension : null,
                FileSize         = media is MediaFile ? ((MediaFile)media).Size : (long?)null,
                FileUrl          = media is MediaFile ? ((MediaFile)media).PublicUrl : null,
                IsArchived       = media.IsArchived,
                ThumbnailId      = media.Image != null && !media.Image.IsDeleted ? media.Image.Id : (Guid?)null,
                ThumbnailCaption = media.Image != null && !media.Image.IsDeleted ? media.Image.Caption : null,
                ThumbnailUrl     = media.Image != null && !media.Image.IsDeleted ? media.Image.PublicThumbnailUrl : null
            })
                               .ToDataListResponse(request);

            listResponse.Items.ToList().ForEach(media =>
            {
                if (media.MediaContentType == MediaContentType.File)
                {
                    media.FileUrl = fileService.GetDownloadFileUrl(MediaType.File, media.Id, media.FileUrl);
                }
                media.FileUrl      = fileUrlResolver.EnsureFullPathUrl(media.FileUrl);
                media.ThumbnailUrl = fileUrlResolver.EnsureFullPathUrl(media.ThumbnailUrl);
            });

            return(new GetFilesResponse
            {
                Data = listResponse
            });
        }
 /// <summary>
 /// Retrieves file metadata from an entity's profile.
 /// </summary>
 public static void GetFiles(GetFilesRequest request, Action <GetFilesResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null)
 {
     PlayFabHttp.MakeApiCall("/File/GetFiles", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders);
 }
Example #25
0
        public override async Task <FilePageModel> GetFiles(GetFilesRequest getFilesRequest, ServerCallContext context)
        {
            var getFiles = _mapper.Map <GetFilesRequest, GetFiles>(getFilesRequest);

            return(_mapper.Map <PageModel <FileModel>, FilePageModel>(await _mediator.Send(getFiles)));
        }
Example #26
0
        public GetFilesResponse Get(GetFilesRequest request)
        {
            request.Data.SetDefaultOrder("Title");

            var query = repository.AsQueryable<Media>()
                .Where(m => m.Original == null && m.Type == MediaType.File);

            if (request.Data.FolderId == null)
            {
                query = query.Where(m => m.Folder == null);
            }
            else
            {
                query = query.Where(m => m.Folder.Id == request.Data.FolderId && !m.Folder.IsDeleted);
            }

            if (!request.Data.IncludeFolders)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.Folder);
            }

            if (!request.Data.IncludeFiles)
            {
                query = query.Where(media => media.ContentType != Module.MediaManager.Models.MediaContentType.File);
            }

            if (!request.Data.IncludeArchived)
            {
                query = query.Where(m => !m.IsArchived);
            }

            query = query.ApplyTagsFilter(
                request.Data,
                tagName => { return media => media.MediaTags.Any(mediaTag => mediaTag.Tag.Name == tagName && !mediaTag.Tag.IsDeleted); });

            var listResponse = query.Select(media => new MediaModel
                        {
                            Id = media.Id,
                            Version = media.Version,
                            CreatedBy = media.CreatedByUser,
                            CreatedOn = media.CreatedOn,
                            LastModifiedBy = media.ModifiedByUser,
                            LastModifiedOn = media.ModifiedOn,

                            Title = media.Title,
                            MediaContentType = media is MediaFolder
                                                    ? (MediaContentType)((int)MediaContentType.Folder)
                                                    : (MediaContentType)((int)MediaContentType.File),
                            FileExtension = media is MediaFile ? ((MediaFile)media).OriginalFileExtension : null,
                            FileSize = media is MediaFile ? ((MediaFile)media).Size : (long?)null,
                            FileUrl = media is MediaFile ? ((MediaFile)media).PublicUrl : null,
                            IsArchived = media.IsArchived,
                            ThumbnailId = media.Image != null && !media.Image.IsDeleted ? media.Image.Id : (Guid?)null,
                            ThumbnailCaption = media.Image != null && !media.Image.IsDeleted ? media.Image.Caption : null,
                            ThumbnailUrl = media.Image != null && !media.Image.IsDeleted ? media.Image.PublicThumbnailUrl : null
                        })
                        .ToDataListResponse(request);

            listResponse.Items.ToList().ForEach(media =>
                {
                    if (media.MediaContentType == MediaContentType.File)
                    {
                        media.FileUrl = fileService.GetDownloadFileUrl(MediaType.File, media.Id, media.FileUrl);
                    }
                });

            return new GetFilesResponse
                       {
                           Data = listResponse
                       };
        }
Example #27
0
        public async Task <GetFilesResponse> GetFiles(GetFilesRequest request)
        {
            var result = await _fileLibraryService.GetFiles(request);

            return(result);
        }