Skip to content

Instantly share code, notes, and snippets.

View jraps20's full-sized avatar

John Rappel jraps20

View GitHub Profile
[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
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);
}
public class LogMessageRemoteMap
{
public void Initialize(PipelineArgs args)
{
EventManager.Subscribe<LogMessageRemoteEvent>(new Action<LogMessageRemoteEvent>(OnGenericRemoteEvent<LogMessageRemoteEvent>));
}
private static void OnGenericRemoteEvent<TEvent>(TEvent @event) where TEvent : IHasEventName
{
RemoteEventArgs<TEvent> remoteEventArgs = new RemoteEventArgs<TEvent>(@event);
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);
}
WorkflowPipelineArgs workflowPipelineArgs = new WorkflowPipelineArgs(item, null, null);
Pipeline pipeline = Pipeline.Start(stateItem, workflowPipelineArgs);
if (pipeline != null)
{
WorkflowCounters.ActionsExecuted.IncrementBy(pipeline.Processors.Count);
}
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));
var pipelineItem = Factory.GetDatabase("master").GetItem("/sitecore/content/My Pipeline");
var pipelineArgs = new PipelineArgs();
Pipeline.Start(pipelineItem, pipelineArgs);
var customData = pipelineArgs.CustomData;
[DataContract]
public class LogMessageRemoteEvent : IHasEventName
{
public LogMessageRemoteEvent(string instanceName, string eventName)
{
InstanceName = instanceName;
EventName = eventName;
}
// This is the custom data you will be passing between servers
using Quartz;
public class TestJob : SiteCronBase
{
protected override void Run(IJobExecutionContext context)
{
WriteLogLine(context, "Starting SiteCron job");
// core functionality lives here
// obtain databases with Factory.GetDatabase("master"); for example