private void _onServerDirectoryMediaSaved(object dir, MediaEventArgs e) { if (e.Media is ServerMedia priMedia && priMedia.MediaStatus != TMediaStatus.Deleted) { ServerMedia compMedia = _findComplementaryMedia(priMedia); if (compMedia?.IsModified == true) { ThreadPool.QueueUserWorkItem(o => compMedia.Save()); } } }
private void _onServerDirectoryMediaSaved(object dir, MediaEventArgs e) { ServerMedia priMedia = e.Media as ServerMedia; if (priMedia != null && priMedia.MediaStatus != TMediaStatus.Deleted) { ServerMedia compMedia = _findComplementaryMedia(priMedia); if (compMedia != null) { ThreadPool.QueueUserWorkItem((o) => compMedia.Save()); } } }
private void _onUpdatedTemplates(object o, EventArgs e) { var files = AnimationDirectory.Files; var templates = _casparDevice.Templates.All.ToList(); foreach (Svt.Caspar.TemplateInfo template in templates) { ServerMedia media = (ServerMedia)files.FirstOrDefault(f => f is ServerMedia && f.FileName == template.Name && f.Folder == template.Folder); if (media == null) { media = new ServerMedia() { MediaType = TMediaType.AnimationFlash, MediaName = template.Name, Folder = template.Folder, FileName = template.Name, FileSize = (UInt64)template.Size, MediaStatus = TMediaStatus.Available, LastUpdated = DateTimeExtensions.FromFileTime(template.LastUpdated.ToUniversalTime(), DateTimeKind.Utc), MediaGuid = Guid.NewGuid(), Directory = AnimationDirectory, }; media.Save(); } else // media != null { if (media.FileSize != (UInt64)template.Size || media.LastUpdated != DateTimeExtensions.FromFileTime(template.LastUpdated.ToUniversalTime(), DateTimeKind.Utc)) { media.FileSize = (UInt64)template.Size; media.LastUpdated = DateTimeExtensions.FromFileTime(template.LastUpdated.ToUniversalTime(), DateTimeKind.Utc); media.Save(); } } } foreach (Media media in files) { Svt.Caspar.TemplateInfo i = templates.FirstOrDefault(t => media.FileName == t.Name && media.Folder == t.Folder); if (i == null) AnimationDirectory.MediaRemove(media); } }