Skip to content

Commit 8f5b755

Browse files
committed
Initial solution commit.
1 parent 1e4882f commit 8f5b755

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+6697
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,3 +348,4 @@ MigrationBackup/
348348

349349
# Ionide (cross platform F# VS Code tools) working folder
350350
.ionide/
351+
/SharePointListComparer/SPTFiles

README.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# SharePoint List Comparer
2+
[![platform](https://img.shields.io/badge/platform-Windows.WPF-brightgreen.svg)](https://docs.microsoft.com/en-us/dotnet/framework/wpf/)
3+
[![.Net Framework](https://img.shields.io/badge/Framework-4.7.2-orange.svg?style=flat)](https://dotnet.microsoft.com/download/dotnet-framework/net472)
4+
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
5+
![Build: Passing](https://img.shields.io/badge/Build-Passing-green.svg)
6+
![Release](https://img.shields.io/github/v/release/DigitalSa1nt/SharePointListComparer)
7+
8+
## Description
9+
Straight forward list comparison tool for comparing local STP files against SharePoint Online or OnPrem lists to check for differences.
10+
11+
# Material Design
12+
13+
![!gif](https://github.com/DigitalSa1nt/SharePointListComparer/blob/master/images/sample.gif)
14+
15+
# Features
16+
17+
- Connect to SharePoint Online or On-Premise Environment.
18+
- Extract and Parse STP files.
19+
- Compare Local and Online/On-Premise lists.
20+
- Basic view comparison.
21+
- List views viewer.
22+
23+
# Disclaimer
24+
25+
This little application was put together in a bit of a rush and doesn't follow a lot of what I'd consider to be industry standards (**_Whoops_**). So by all means make use of it, but try not to see the code remotely as an example of how you should be writing this kind of application. If anybody want's to raise issues for areas of improvement please feel free and I'll get around to bringing them back upto standard.
26+
27+
The MIT License (MIT)
28+
=====================
29+
30+
Copyright © `2020`
31+
32+
Permission is hereby granted, free of charge, to any person
33+
obtaining a copy of this software and associated documentation
34+
files (the “Software”), to deal in the Software without
35+
restriction, including without limitation the rights to use,
36+
copy, modify, merge, publish, distribute, sublicense, and/or sell
37+
copies of the Software, and to permit persons to whom the
38+
Software is furnished to do so, subject to the following
39+
conditions:
40+
41+
The above copyright notice and this permission notice shall be
42+
included in all copies or substantial portions of the Software.
43+
44+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
45+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
46+
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
47+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
48+
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
49+
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
50+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
51+
OTHER DEALINGS IN THE SOFTWARE.

images/sample.gif

1.34 MB
Loading

images/wiki/mainscreen-addedlists.png

222 KB
Loading

images/wiki/mainscreen-clipboard.png

204 KB
Loading
255 KB
Loading
186 KB
Loading
266 KB
Loading

images/wiki/mainscreen.png

251 KB
Loading

images/wiki/settingscreen.png

237 KB
Loading

images/wiki/settingswarning.png

209 KB
Loading

src/SharePointListComparer.sln

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.29709.97
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharePointListComparer", "SharePointListComparer\SharePointListComparer.csproj", "{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Debug|x86 = Debug|x86
12+
Release|Any CPU = Release|Any CPU
13+
Release|x86 = Release|x86
14+
EndGlobalSection
15+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
16+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
17+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
18+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Debug|x86.ActiveCfg = Debug|Any CPU
19+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Debug|x86.Build.0 = Debug|Any CPU
20+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
21+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Release|Any CPU.Build.0 = Release|Any CPU
22+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Release|x86.ActiveCfg = Release|Any CPU
23+
{A2658B5A-B3E0-4C40-AB56-1A3BD82EC4B9}.Release|x86.Build.0 = Release|Any CPU
24+
EndGlobalSection
25+
GlobalSection(SolutionProperties) = preSolution
26+
HideSolutionNode = FALSE
27+
EndGlobalSection
28+
GlobalSection(ExtensibilityGlobals) = postSolution
29+
SolutionGuid = {F0430394-07BA-4565-B18F-D05AEB70FFC3}
30+
EndGlobalSection
31+
EndGlobal

src/SharePointListComparer/App.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
5+
</startup>
6+
</configuration>

src/SharePointListComparer/App.xaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<Application x:Class="SharePointListComparer.App"
2+
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4+
xmlns:local="clr-namespace:SharePointListComparer"
5+
6+
StartupUri="RootWindow.xaml">
7+
<Application.Resources>
8+
<ResourceDictionary>
9+
<ResourceDictionary.MergedDictionaries>
10+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
11+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
12+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Blue.xaml" />
13+
<ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Indigo.xaml" />
14+
</ResourceDictionary.MergedDictionaries>
15+
</ResourceDictionary>
16+
</Application.Resources>
17+
</Application>
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Configuration;
4+
using System.Data;
5+
using System.Linq;
6+
using System.Threading.Tasks;
7+
using System.Windows;
8+
9+
namespace SharePointListComparer
10+
{
11+
/// <summary>
12+
/// Interaction logic for App.xaml
13+
/// </summary>
14+
public partial class App : Application
15+
{
16+
//Constants
17+
public const string Directory = "\\config";
18+
19+
public const string Filename = "\\configfile.txt";
20+
21+
private void Application_Startup(object sender, StartupEventArgs e)
22+
{
23+
24+
}
25+
}
26+
}
234 KB
Loading
85.7 KB
Loading
Loading
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System.Collections.Generic;
2+
3+
namespace SharePointListComparer.Models
4+
{
5+
public class ComparisonResult
6+
{
7+
public string ListName { get; set; }
8+
9+
public string ComparisonListName { get; set; }
10+
11+
public bool Identical { get; set; }
12+
13+
public int ComparisonIndex { get; set; }
14+
15+
public IEnumerable<ColumnAnalysis> FirstListColumnsAnalysis { get; set; }
16+
17+
public IEnumerable<ColumnAnalysis> SecondListColumnAnalysis { get; set; }
18+
19+
/// <summary>
20+
/// Online and local template lists differ in how they store system created columns, so comparing views is sometimes a better way to tell if they are identical.
21+
/// </summary>
22+
public bool AreViewsIdentical { get; set; }
23+
}
24+
25+
public class ColumnAnalysis
26+
{
27+
public string DisplayName { get; set; }
28+
29+
public bool Matched { get; set; }
30+
}
31+
32+
public enum ListType
33+
{
34+
Online,
35+
Spt,
36+
Hybrid,
37+
}
38+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System.Runtime.Serialization;
2+
3+
namespace SharePointListComparer.Models
4+
{
5+
[DataContract]
6+
public class SharePointInformation
7+
{
8+
[DataMember]
9+
public bool IsSharePointOnline { get; set; }
10+
[DataMember]
11+
public string EncryptedPassword { get; set; }
12+
[DataMember]
13+
public string Username { get; set; }
14+
[DataMember]
15+
public string SiteUrl { get; set; }
16+
}
17+
}

0 commit comments

Comments
 (0)