public object Get(GetSyncDialogOptions request) { var result = new SyncDialogOptions(); result.Targets = _syncManager.GetSyncTargets(request.UserId) .ToList(); if (!string.IsNullOrWhiteSpace(request.TargetId)) { result.Targets = result.Targets .Where(i => string.Equals(i.Id, request.TargetId, StringComparison.OrdinalIgnoreCase)) .ToList(); result.QualityOptions = _syncManager .GetQualityOptions(request.TargetId) .ToList(); result.ProfileOptions = _syncManager .GetProfileOptions(request.TargetId) .ToList(); } if (request.Category.HasValue) { result.Options = SyncHelper.GetSyncOptions(request.Category.Value); } else { var dtoOptions = new DtoOptions { Fields = new List <ItemFields> { ItemFields.SyncInfo } }; var auth = AuthorizationContext.GetAuthorizationInfo(Request); var authenticatedUser = _userManager.GetUserById(auth.UserId); var items = request.ItemIds.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(_libraryManager.GetItemById) .Where(i => i != null); var dtos = _dtoService.GetBaseItemDtos(items, dtoOptions, authenticatedUser) .ToList(); result.Options = SyncHelper.GetSyncOptions(dtos); } return(ToOptimizedResult(result)); }
private List <string> GetDirectoryPath(IServerSyncProvider provider, SyncJob job, SyncedItem syncedItem, BaseItemDto item, string serverName) { var parts = new List <string> { serverName }; var profileOption = _syncManager.GetProfileOptions(job.TargetId) .FirstOrDefault(i => string.Equals(i.Id, job.Profile, StringComparison.OrdinalIgnoreCase)); string name; if (profileOption != null && !string.IsNullOrWhiteSpace(profileOption.Name)) { name = profileOption.Name; if (job.Bitrate.HasValue) { name += "-" + job.Bitrate.Value.ToString(CultureInfo.InvariantCulture); } else { var qualityOption = _syncManager.GetQualityOptions(job.TargetId) .FirstOrDefault(i => string.Equals(i.Id, job.Quality, StringComparison.OrdinalIgnoreCase)); if (qualityOption != null && !string.IsNullOrWhiteSpace(qualityOption.Name)) { name += "-" + qualityOption.Name; } } } else { name = syncedItem.SyncJobName + "-" + syncedItem.SyncJobDateCreated .ToLocalTime() .ToString("g") .Replace(" ", "-"); } name = GetValidFilename(provider, name); parts.Add(name); if (item.IsType("episode")) { parts.Add("TV"); if (!string.IsNullOrWhiteSpace(item.SeriesName)) { parts.Add(item.SeriesName); } } else if (item.IsVideo) { parts.Add("Videos"); parts.Add(item.Name); } else if (item.IsAudio) { parts.Add("Music"); if (!string.IsNullOrWhiteSpace(item.AlbumArtist)) { parts.Add(item.AlbumArtist); } if (!string.IsNullOrWhiteSpace(item.Album)) { parts.Add(item.Album); } } else if (string.Equals(item.MediaType, MediaType.Photo, StringComparison.OrdinalIgnoreCase)) { parts.Add("Photos"); if (!string.IsNullOrWhiteSpace(item.Album)) { parts.Add(item.Album); } } return(parts.Select(i => GetValidFilename(provider, i)).ToList()); }