In order to run these queries you’ll have to install LINQPad and LINQPad Driver for CRM.
Query 1 – Who created the entities?
It is not possible to look at an entity and find out who created it. You can however use the createdby on the SavedQuery (System View) to find out this information, as the System View is created the same time as the entity is created and also contains the createdby user information.
from q in (from s in SavedQuerySet.AsEnumerable() where s.QueryType == 0 group s by s.ReturnedTypeCode into g select new { g.Key, Views = (from s in SavedQuerySet where s.ReturnedTypeCode == g.Key && s.QueryType == 0 orderby s.CreatedOn select new { s.CreatedOn, s.CreatedBy }).First() }) orderby q.Views.CreatedOn descending select new { q.Key, CreatedOn = q.Views.CreatedOn.Value.ToLocalTime(), q.Views.CreatedBy.Name }
Query 2 – All Plugins with message, stage, filtering attributes and entity
You can use this query to get a quick snapshot of all the plugins in the system.
from m in SdkMessageProcessingStepSet join f in SdkMessageFilterSet on m.SdkMessageFilterId.Id equals f.SdkMessageFilterId join s in SdkMessageSet on f.SdkMessageId.Id equals s.SdkMessageId join p in PluginTypeSet on m.PluginTypeId.Id equals p.PluginTypeId where f.IsCustomProcessingStepAllowed.Value && !m.IsHidden.Value && m.CustomizationLevel.Value == 1 select new { Message = s.Name, Rank = m.Rank.Value, Stage = m.Stage, StageName = m.FormattedValues["stage"], m.FilteringAttributes, p.AssemblyName, PluginName= p.Name, StepName = m.Name, StepDescription = m.Description, Status = m.StatusCode, StatusName = m.FormattedValues["statuscode"]}