/// <summary> /// Performs the given <see cref="IPreviewQuery"/> /// </summary> /// <param name="query">The query to perform</param> public static void GetPreview(IPreviewQuery query) { if (DualityApp.ExecContext == DualityApp.ExecutionContext.Terminated) { return; } if (query == null) { return; } // Query all IPreviewGenerator instances that match the specified query var generators = ( from g in previewGenerators orderby query.SourceFits(g.ObjectType) descending, g.Priority descending select g).ToArray(); // Iterate over available generators until one can handle the preview query foreach (IPreviewGenerator gen in generators) { if (!query.TransformSource(gen.ObjectType)) { continue; } gen.Perform(query); if (query.Result != null) { break; } } }
public PagedResponse <T> CreatePagedReponse <T>(IList <T> data, Type type, IPreviewQuery query, ResponseStatus status, string version) where T : BaseModel { var linkAttributes = GetLinkAttributes(type); data.ToList().ForEach(d => { linkAttributes.ForEach(l => l.Id = d.Id); var links = _linkFactory.CreateLinks(linkAttributes); d.AddLinks(links); }); return(new PagedResponse <T> { Data = data, Pagination = new Pagination { TotalRecords = data.Count, PageCount = query.GetTotalPages(data.Count), PageNumber = query.PageNumber, HasNext = query.HasNext(data.Count), HasPrevious = query.HasPrevious(), PageSize = query.PageSize }, Status = status.ToString(), Version = version, Metadata = new List <MetaData>() }); }
void IPreviewGenerator.Perform(IPreviewQuery query) { PreviewImageQuery imgQuery = query as PreviewImageQuery; if (imgQuery != null) { this.Perform((T)query.Source, imgQuery); return; } }
public static void GetPreview(IPreviewQuery query) { if (DualityApp.ExecContext == DualityApp.ExecutionContext.Terminated) return; if (query == null) return; // Query all IPreviewGenerator instances that match the specified query var generators = ( from g in previewGenerators orderby query.SourceFits(g.ObjectType) descending, g.Priority descending select g).ToArray(); // Iterate over available generators until one can handle the preview query foreach (IPreviewGenerator gen in generators) { if (!query.TransformSource(gen.ObjectType)) continue; gen.Perform(query); if (query.Result != null) break; } }
public static void GetPreview(IPreviewQuery query) { if (DualityApp.ExecContext == DualityApp.ExecutionContext.Terminated) { return; } if (query == null) { return; } //System.Diagnostics.Stopwatch w = new System.Diagnostics.Stopwatch(); //w.Restart(); var generators = ( from g in CorePluginRegistry.GetPreviewGenerators() orderby query.SourceFits(g.ObjectType) descending, g.Priority descending select g).ToArray(); foreach (IPreviewGenerator gen in generators) { if (!query.TransformSource(gen.ObjectType)) { continue; } gen.Perform(query); if (query.Result != null) { break; } } //Log.Editor.Write("Generating preview for {0} / {1} took {2:F} ms", query.OriginalSource, query.GetType().Name, w.Elapsed.TotalMilliseconds); }