root / trunk / Pithos.Client.WPF / ShellExtensionController.cs @ becb4f44
History | View | Annotate | Download (2.2 kB)
1 | 9bae55d1 | Panagiotis Kanavos | // ----------------------------------------------------------------------- |
---|---|---|---|
2 | 9bae55d1 | Panagiotis Kanavos | // <copyright file="ShellExtensionController.cs" company="Microsoft"> |
3 | 9bae55d1 | Panagiotis Kanavos | // TODO: Update copyright text. |
4 | 9bae55d1 | Panagiotis Kanavos | // </copyright> |
5 | 9bae55d1 | Panagiotis Kanavos | // ----------------------------------------------------------------------- |
6 | 9bae55d1 | Panagiotis Kanavos | |
7 | 9bae55d1 | Panagiotis Kanavos | using System.Collections; |
8 | 9bae55d1 | Panagiotis Kanavos | using System.IO; |
9 | 9bae55d1 | Panagiotis Kanavos | using System.IO.IsolatedStorage; |
10 | 9bae55d1 | Panagiotis Kanavos | using System.Runtime.Serialization; |
11 | 0c02aa65 | Panagiotis Kanavos | |
12 | 9bae55d1 | Panagiotis Kanavos | |
13 | 9bae55d1 | Panagiotis Kanavos | namespace Pithos.Client.WPF |
14 | 9bae55d1 | Panagiotis Kanavos | { |
15 | 9bae55d1 | Panagiotis Kanavos | using System; |
16 | 9bae55d1 | Panagiotis Kanavos | using System.Collections.Generic; |
17 | 9bae55d1 | Panagiotis Kanavos | using System.Linq; |
18 | 9bae55d1 | Panagiotis Kanavos | using System.Text; |
19 | 9bae55d1 | Panagiotis Kanavos | |
20 | 9bae55d1 | Panagiotis Kanavos | /// <summary> |
21 | 9bae55d1 | Panagiotis Kanavos | /// TODO: Update summary. |
22 | 9bae55d1 | Panagiotis Kanavos | /// </summary> |
23 | 9bae55d1 | Panagiotis Kanavos | public class ShellExtensionController |
24 | 9bae55d1 | Panagiotis Kanavos | { |
25 | 9bae55d1 | Panagiotis Kanavos | #region Shell Extensions |
26 | 9bae55d1 | Panagiotis Kanavos | public void UnregisterExtensions() |
27 | 9bae55d1 | Panagiotis Kanavos | { |
28 | 9bae55d1 | Panagiotis Kanavos | using (var installer = new ProjectInstaller()) |
29 | 9bae55d1 | Panagiotis Kanavos | { |
30 | 9bae55d1 | Panagiotis Kanavos | IDictionary state = LoadState(); |
31 | 9bae55d1 | Panagiotis Kanavos | installer.Uninstall(state); |
32 | 9bae55d1 | Panagiotis Kanavos | } |
33 | 9bae55d1 | Panagiotis Kanavos | } |
34 | 9bae55d1 | Panagiotis Kanavos | |
35 | 9bae55d1 | Panagiotis Kanavos | public void RegisterExtensions() |
36 | 9bae55d1 | Panagiotis Kanavos | { |
37 | 9bae55d1 | Panagiotis Kanavos | using (var installer = new ProjectInstaller()) |
38 | 9bae55d1 | Panagiotis Kanavos | { |
39 | 9bae55d1 | Panagiotis Kanavos | IDictionary state = new Dictionary<object, object>(); |
40 | 9bae55d1 | Panagiotis Kanavos | installer.Install(state); |
41 | 9bae55d1 | Panagiotis Kanavos | SaveState(state); |
42 | 9bae55d1 | Panagiotis Kanavos | |
43 | 9bae55d1 | Panagiotis Kanavos | } |
44 | 9bae55d1 | Panagiotis Kanavos | } |
45 | 9bae55d1 | Panagiotis Kanavos | |
46 | 9bae55d1 | Panagiotis Kanavos | private static void SaveState(IDictionary state) |
47 | 9bae55d1 | Panagiotis Kanavos | { |
48 | 5bcf6d70 | Panagiotis Kanavos | using (var store = IsolatedStorageFile.GetUserStoreForAssembly()) |
49 | 9bae55d1 | Panagiotis Kanavos | using (var file = store.CreateFile("PithosManualInstallFile")) |
50 | 9bae55d1 | Panagiotis Kanavos | { |
51 | 9bae55d1 | Panagiotis Kanavos | var serializer = new NetDataContractSerializer(); |
52 | 9bae55d1 | Panagiotis Kanavos | serializer.Serialize(file, state); |
53 | 9bae55d1 | Panagiotis Kanavos | } |
54 | 9bae55d1 | Panagiotis Kanavos | } |
55 | 9bae55d1 | Panagiotis Kanavos | |
56 | 9bae55d1 | Panagiotis Kanavos | private static IDictionary LoadState() |
57 | 9bae55d1 | Panagiotis Kanavos | { |
58 | 5bcf6d70 | Panagiotis Kanavos | using (var store = IsolatedStorageFile.GetUserStoreForAssembly()) |
59 | 9bae55d1 | Panagiotis Kanavos | { |
60 | 9bae55d1 | Panagiotis Kanavos | if (!store.FileExists("PithosManualInstallFile")) |
61 | 9bae55d1 | Panagiotis Kanavos | return new Dictionary<object, object>(); |
62 | 9bae55d1 | Panagiotis Kanavos | |
63 | 9bae55d1 | Panagiotis Kanavos | using (var file = store.OpenFile("PithosManualInstallFile", FileMode.Open)) |
64 | 9bae55d1 | Panagiotis Kanavos | { |
65 | 9bae55d1 | Panagiotis Kanavos | var serializer = new NetDataContractSerializer(); |
66 | 9bae55d1 | Panagiotis Kanavos | var state = serializer.Deserialize(file); |
67 | 9bae55d1 | Panagiotis Kanavos | return (IDictionary)state; |
68 | 9bae55d1 | Panagiotis Kanavos | } |
69 | 9bae55d1 | Panagiotis Kanavos | } |
70 | 9bae55d1 | Panagiotis Kanavos | } |
71 | 9bae55d1 | Panagiotis Kanavos | |
72 | 9bae55d1 | Panagiotis Kanavos | #endregion |
73 | 9bae55d1 | Panagiotis Kanavos | } |
74 | 9bae55d1 | Panagiotis Kanavos | } |