Statistics
| Branch: | Revision:

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
}