Statistics
| Branch: | Revision:

root / trunk / Pithos.ShellExtensions.Test / TestStatusChecker.cs @ f2d88248

History | View | Annotate | Download (1005 Bytes)

1 d78cbf09 Panagiotis Kanavos
using System;
2 d78cbf09 Panagiotis Kanavos
using System.ComponentModel.Composition;
3 d78cbf09 Panagiotis Kanavos
using System.Diagnostics;
4 d78cbf09 Panagiotis Kanavos
using System.Diagnostics.Contracts;
5 d78cbf09 Panagiotis Kanavos
using System.IO;
6 d78cbf09 Panagiotis Kanavos
using Pithos.Interfaces;
7 d78cbf09 Panagiotis Kanavos
8 d78cbf09 Panagiotis Kanavos
namespace Pithos.ShellExtensions
9 d78cbf09 Panagiotis Kanavos
{
10 d78cbf09 Panagiotis Kanavos
    [Export(typeof(IStatusChecker))]
11 d78cbf09 Panagiotis Kanavos
    public class TestStatusChecker:IStatusChecker
12 d78cbf09 Panagiotis Kanavos
    {
13 d78cbf09 Panagiotis Kanavos
        [Import]
14 d78cbf09 Panagiotis Kanavos
        private IPithosSettings Settings;
15 d78cbf09 Panagiotis Kanavos
16 d78cbf09 Panagiotis Kanavos
        private readonly string[] _states = {"Normal", "Modified", "Conflict","Synch"};
17 d78cbf09 Panagiotis Kanavos
18 d78cbf09 Panagiotis Kanavos
        public string GetFileStatus(string path)
19 d78cbf09 Panagiotis Kanavos
        {
20 d78cbf09 Panagiotis Kanavos
            Contract.Requires(!String.IsNullOrWhiteSpace(path));
21 d78cbf09 Panagiotis Kanavos
            var pithosPath = Settings.PithosPath;
22 d78cbf09 Panagiotis Kanavos
            if (path.StartsWith(pithosPath,true,null))
23 d78cbf09 Panagiotis Kanavos
            {
24 d78cbf09 Panagiotis Kanavos
                var fileName = Path.GetFileName(path);
25 d78cbf09 Panagiotis Kanavos
                if (String.IsNullOrWhiteSpace(fileName))
26 d78cbf09 Panagiotis Kanavos
                    return _states[0];
27 d78cbf09 Panagiotis Kanavos
28 d78cbf09 Panagiotis Kanavos
                var status = Char.ConvertToUtf32(fileName, 0)%4;
29 d78cbf09 Panagiotis Kanavos
                return _states[status];
30 d78cbf09 Panagiotis Kanavos
            }
31 d78cbf09 Panagiotis Kanavos
            return String.Empty;
32 d78cbf09 Panagiotis Kanavos
        }
33 d78cbf09 Panagiotis Kanavos
    }
34 d78cbf09 Panagiotis Kanavos
}