Skip to content

Instantly share code, notes, and snippets.

@mskutta
mskutta / OneNorth.TDSProjectMerge.Sample.nuspec
Created March 4, 2015 18:07
Sample TDS Project Merge .nuspec file
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>OneNorth.TDSProjectMerge.Sample</id>
<version>0.0.1</version>
<title />
<authors>One North</authors>
<description>Sample TDS Project Merge .nuspec file</description>
<projectUrl>https://github.com/onenorth/tds-project-merge</projectUrl>
</metadata>
@mskutta
mskutta / install.ps1
Created March 4, 2015 19:23
(Part1) TDS Project Merge install.ps1
param($installPath, $toolsPath, $package, $project)
[Reflection.Assembly]::LoadFile($toolsPath + "\OneNorth.TDSProjectMerge.dll")
try {
$tdsProject = Get-TDSProject("Master")
if ($tdsProject) {
Merge-TDSProject $tdsProject $installPath "TDS.Master" "TDS.Master.scproj"
}
@mskutta
mskutta / install.ps1
Created March 4, 2015 19:28
(Part2) TDS Project Merge install.ps1
function Get-TDSProject([string]$type) {
$matchString = "." + $type.ToLower()
$solution = Get-Interface $dte.Solution ([EnvDTE80.Solution2])
foreach ($project in $solution.Projects) {
if (($project.Kind -eq "{caa73bb0-ef22-4d79-a57e-df67b3ba9c80}") -and ($project.Name.ToLower().EndsWith($matchString))) {
return $project
}
if (($project.Project.ProjectType -eq "TDS Project") -and ($project.Name.ToLower().EndsWith($matchString))) {
return $project
}
@mskutta
mskutta / install.ps1
Created March 4, 2015 19:29
(Part3) TDS Project Merge install.ps1
function Merge-TDSProject($tdsProject, [string]$installPath, [string]$sourceFolder, [string]$sourceProject) {
$contentProject = $installPath + "\" + $sourceFolder + "\" + $sourceProject
Write-Host "Merging $($contentProject) into TDS project at: $($tdsProject.FullName)"
$merger = New-Object OneNorth.TDSProjectMerge.MergeTask
$merger.MergeProjects($tdsProject.FullName, $contentProject)
$sourceFiles = $installPath + "\" + $sourceFolder
$targetFiles = [System.IO.Path]::GetDirectoryName($tdsProject.FullName)
@mskutta
mskutta / Prices.cs
Created April 17, 2015 18:47
Loading a media item from a Sitecore field.
Sitecore.Data.Fields.FileField file = item.Fields[<FieldName>];
if (file != null)
{
var mediaItem = file.MediaItem;
...
}
@mskutta
mskutta / Prices.cs
Created April 17, 2015 18:51
How to parse a CSV file contained in a Sitecore MediaItem
public static List<Price> ReadPrices(MediaItem mediaItem)
{
var prices = new List<Price>();
using (var stream = mediaItem.GetMediaStream())
{
using (TextReader reader = new StreamReader(stream))
{
var csv = new CsvReader(reader);
while (csv.Read())
@mskutta
mskutta / Prices.cs
Created April 17, 2015 18:54
Caching parsed MediaItem using Sitecore revision
private static List<Price> _prices;
private static string _pricesRevision;
private static readonly object _lock = new object();
public static List<Price> GetPrices(MediaItem mediaItem)
{
var revision = mediaItem.Statistics.Revision;
if (revision != _pricesRevision)
{
@mskutta
mskutta / webpage.html
Last active August 29, 2015 14:20
Typical Google Analytics Tracking Code
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXXXX-Y', 'auto');
ga('send', 'pageview');
</script>
@mskutta
mskutta / webpage.html
Created May 11, 2015 15:30
Typical Google Analytics Tracking Code with Sitecore Item ID
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-41806526-2', 'auto');
ga('set', 'title', document.title + ' | {4e8d0e01-15a1-47da-ab59-57c704caf1ed}');
ga('send', 'pageview');
@mskutta
mskutta / Settings.cs
Created May 11, 2015 17:55
Social Sort Settings.cs
namespace OneNorth.SocialSort.Configuration
{
public class Settings : ISettings
{
public string GoogleAnalyticsProfileId
{
get { return Sitecore.Configuration.Settings.GetSetting("OneNorth.SocialSort.GoogleAnalytics.ProfileId", ""); }
}
public string GoogleAnalyticsServiceAccountEmail