root / trunk / Pithos.ShellExtensions / FileContext.cs @ c92e02f3
History | View | Annotate | Download (2.3 kB)
1 | eeee29e3 | Panagiotis Kanavos | // <copyright file="IoC.cs" company="GRNet"> |
---|---|---|---|
2 | eeee29e3 | Panagiotis Kanavos | // This project is open source. Released under the XYZ license |
3 | eeee29e3 | Panagiotis Kanavos | // </copyright> |
4 | d78cbf09 | Panagiotis Kanavos | |
5 | 42800be8 | Panagiotis Kanavos | using System.Linq; |
6 | 5bcf6d70 | Panagiotis Kanavos | using Microsoft.Win32; |
7 | 5bcf6d70 | Panagiotis Kanavos | |
8 | d78cbf09 | Panagiotis Kanavos | namespace Pithos.ShellExtensions |
9 | d78cbf09 | Panagiotis Kanavos | { |
10 | eeee29e3 | Panagiotis Kanavos | using System; |
11 | eeee29e3 | Panagiotis Kanavos | using Pithos.Interfaces; |
12 | eeee29e3 | Panagiotis Kanavos | using System.ComponentModel.Composition; |
13 | eeee29e3 | Panagiotis Kanavos | using System.Diagnostics; |
14 | eeee29e3 | Panagiotis Kanavos | using System.IO; |
15 | eeee29e3 | Panagiotis Kanavos | |
16 | d78cbf09 | Panagiotis Kanavos | [Export] |
17 | d78cbf09 | Panagiotis Kanavos | public class FileContext |
18 | d78cbf09 | Panagiotis Kanavos | { |
19 | d78cbf09 | Panagiotis Kanavos | [Import] |
20 | d78cbf09 | Panagiotis Kanavos | public IPithosSettings Settings { get; set; } |
21 | d78cbf09 | Panagiotis Kanavos | |
22 | d78cbf09 | Panagiotis Kanavos | [Import] |
23 | d78cbf09 | Panagiotis Kanavos | public IStatusChecker StatusChecker { get; set; } |
24 | d78cbf09 | Panagiotis Kanavos | |
25 | d78cbf09 | Panagiotis Kanavos | public string PithosPath { get { return Settings.PithosPath.ToLower(); } } |
26 | d78cbf09 | Panagiotis Kanavos | |
27 | 5bcf6d70 | Panagiotis Kanavos | public FileContext() |
28 | 5bcf6d70 | Panagiotis Kanavos | { |
29 | 5bcf6d70 | Panagiotis Kanavos | } |
30 | d78cbf09 | Panagiotis Kanavos | |
31 | d78cbf09 | Panagiotis Kanavos | public bool IsManaged |
32 | d78cbf09 | Panagiotis Kanavos | { |
33 | d78cbf09 | Panagiotis Kanavos | get |
34 | d78cbf09 | Panagiotis Kanavos | { |
35 | 42800be8 | Panagiotis Kanavos | |
36 | 42800be8 | Panagiotis Kanavos | var accountPath=(from account in Settings.Accounts |
37 | aba9e6d9 | Panagiotis Kanavos | where !String.IsNullOrWhiteSpace(account.RootPath) && CurrentFile.StartsWith(account.RootPath, StringComparison.InvariantCultureIgnoreCase) |
38 | 42800be8 | Panagiotis Kanavos | select account.RootPath).FirstOrDefault(); |
39 | 42800be8 | Panagiotis Kanavos | Debug.WriteLine(String.Format("Account path is {0}\r\n Current Path is {1}", accountPath, CurrentFile), LogCategories.Shell); |
40 | 42800be8 | Panagiotis Kanavos | return !String.IsNullOrWhiteSpace(accountPath); |
41 | d78cbf09 | Panagiotis Kanavos | } |
42 | d78cbf09 | Panagiotis Kanavos | } |
43 | d78cbf09 | Panagiotis Kanavos | |
44 | d78cbf09 | Panagiotis Kanavos | public bool IsFolder { get; set; } |
45 | d78cbf09 | Panagiotis Kanavos | private string _currentFolder; |
46 | d78cbf09 | Panagiotis Kanavos | public string CurrentFolder |
47 | d78cbf09 | Panagiotis Kanavos | { |
48 | d78cbf09 | Panagiotis Kanavos | get { return _currentFolder; } |
49 | d78cbf09 | Panagiotis Kanavos | set |
50 | d78cbf09 | Panagiotis Kanavos | { |
51 | d78cbf09 | Panagiotis Kanavos | _currentFolder = value.ToLower(); |
52 | d78cbf09 | Panagiotis Kanavos | IsFolder = true; |
53 | d78cbf09 | Panagiotis Kanavos | _currentFile = _currentFolder; |
54 | d78cbf09 | Panagiotis Kanavos | } |
55 | d78cbf09 | Panagiotis Kanavos | } |
56 | d78cbf09 | Panagiotis Kanavos | |
57 | d78cbf09 | Panagiotis Kanavos | private string _currentFile; |
58 | d78cbf09 | Panagiotis Kanavos | public string CurrentFile |
59 | d78cbf09 | Panagiotis Kanavos | { |
60 | d78cbf09 | Panagiotis Kanavos | get { return _currentFile; } |
61 | d78cbf09 | Panagiotis Kanavos | set |
62 | d78cbf09 | Panagiotis Kanavos | { |
63 | d78cbf09 | Panagiotis Kanavos | _currentFile = value.ToLower(); |
64 | 0eea575a | Panagiotis Kanavos | Debug.WriteLine(String.Format("File is {0}", _currentFile), LogCategories.Shell); |
65 | d78cbf09 | Panagiotis Kanavos | if (Directory.Exists(_currentFile)) |
66 | d78cbf09 | Panagiotis Kanavos | { |
67 | d78cbf09 | Panagiotis Kanavos | _currentFolder = _currentFile; |
68 | d78cbf09 | Panagiotis Kanavos | IsFolder = true; |
69 | d78cbf09 | Panagiotis Kanavos | } |
70 | d78cbf09 | Panagiotis Kanavos | else |
71 | d78cbf09 | Panagiotis Kanavos | { |
72 | d78cbf09 | Panagiotis Kanavos | _currentFolder = Path.GetDirectoryName(_currentFile); |
73 | d78cbf09 | Panagiotis Kanavos | IsFolder = false; |
74 | d78cbf09 | Panagiotis Kanavos | } |
75 | d78cbf09 | Panagiotis Kanavos | |
76 | d78cbf09 | Panagiotis Kanavos | } |
77 | d78cbf09 | Panagiotis Kanavos | } |
78 | d78cbf09 | Panagiotis Kanavos | } |
79 | d78cbf09 | Panagiotis Kanavos | |
80 | d78cbf09 | Panagiotis Kanavos | } |