Skip to content

Instantly share code, notes, and snippets.

View jraps20's full-sized avatar

John Rappel jraps20

View GitHub Profile
public class LogMessageRemote
{
public void LogInstanceName(object sender, EventArgs args)
{
var logMessageArgs = args as RemoteEventArgs<LogMessageRemoteEvent>;
if (logMessageArgs == null)
throw new InvalidOperationException("Unexpected event args: {0}".FormatWith((object) args.GetType().FullName));
Log.Info($"Triggered from {logMessageArgs.InstanceName}.", (object) this);
}
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<events>
<event name="logMessage:remote">
<handler type="MyNamespace.LogMessageRemote, MyDll" method="LogInstanceName" />
</event>
</events>
</sitecore>
</configuration>
var remoteEvent = new LogMessageRemoteEvent(Sitecore.Configuration.Settings.InstanceName, "logMessage:remote");
Sitecore.Eventing.EventManager.QueueEvent<LogMessageRemoteEvent>(remoteEvent);
@jraps20
jraps20 / GetDatasourceDependencies.cs
Last active January 12, 2018 22:17
Full set of classes and config changes required to index modular content in Sitecore, i.e. content that is added to the page as a separate rendering with a datasource. Configured to only index certain renderings based on config, to disallow indexing of renderings that may be "Related Items" or other types of renderings that are shared and not pe…
using System.Linq;
using Sitecore;
using Sitecore.ContentSearch;
using Sitecore.ContentSearch.Pipelines.GetDependencies;
using Sitecore.Data;
using Sitecore.Data.Items;
using Sitecore.Diagnostics;
namespace Common.Sitecore.Search.GetDependencies
{
<indexableRenderings>
<rendering name="RichText" id="{4F8942FF-C4E4-408A-B3D5-4657EE5050CA}" />
</indexableRenderings>
[Validator("Language Fallback Invalid", Status.Error, Description = "Validates all fields support language fallback. Add new properties to ignore templates that start with a particular path.")]
public class LanguageFallbackValidator : UserConfigurableValidator
{
private static readonly Guid Template = new Guid("{AB86861A-6030-46C5-B394-E8F99E8B87DB}");
public override IEnumerable<Problem> Validate(Dictionary<Guid, SitecoreDeployInfo> projectItems, XDocument scprojDocument)
{
var list = new List<Problem>();
foreach (var projectItem in projectItems)
{
@jraps20
jraps20 / DictionaryValidator.cs
Created April 24, 2018 19:07
TDS Validator to ensure all uses of Translate.Text("some text") have a corresponding item defined in /sitecore/system/dictionary.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
using System.Xml.Linq;
using HedgehogDevelopment.SitecoreProject.Tasks;
using HedgehogDevelopment.SitecoreProject.Tasks.ProjectAnalysis;
namespace TDS.Validators
WorkflowPipelineArgs workflowPipelineArgs = new WorkflowPipelineArgs(item, null, null);
Pipeline pipeline = Pipeline.Start(stateItem, workflowPipelineArgs);
if (pipeline != null)
{
WorkflowCounters.ActionsExecuted.IncrementBy(pipeline.Processors.Count);
}
public static Processor Parse(ProcessorItem item)
{
Sitecore.Diagnostics.Assert.ArgumentNotNull((object) item, nameof (item));
if (item.Disabled || item.Type.Trim().Length == 0)
return (Processor) null;
return new Processor(item);
}
public class Step1
{
public void Process(PipelineArgs args)
{
var processorItem = args.ProcessorItem;
var customField = processorItem.InnerItem["Custom Referenced Item"];
var referencedItem = processorItem.InnerItem.Database.GetItem(new ID(customField));