aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Explorer/ExplorerFileDefinition.cs
blob: a1c4a05ae48989491052fefd33add0f7a76c0155 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media.Imaging;
using Tango.SharedUI.Helpers;

namespace Tango.Explorer
{
    public class ExplorerFileDefinition
    {
        private static List<ExplorerFileDefinition> _definitions;

        public String Extension { get; set; }
        public String Description { get; set; }
        public BitmapSource Icon { get; set; }

        public static ExplorerFileDefinition Folder => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/folder.png")
        };

        public static ExplorerFileDefinition File => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/file.png"),
            Description = "Unknown Type"
        };

        public static ExplorerFileDefinition Job => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/job.png"),
            Description = "Tango Job Definition",
            Extension = ".job",
        };

        public static ExplorerFileDefinition Pulse => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/pulse.png"),
            Description = "Twine Embroidery Design",
            Extension = ".twn",
        };

        public static ExplorerFileDefinition Update => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/update.png"),
            Description = "Tango Software Update Package",
            Extension = ".tup",
        };

        public static ExplorerFileDefinition ColorProfile => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/color.png"),
            Description = "Tango Color Profile",
            Extension = ".tcc",
        };

        public static ExplorerFileDefinition Backup => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/backup.png"),
            Description = "Tango Backup",
            Extension = ".tb",
        };

        public static ExplorerFileDefinition Firmware => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/firmware.png"),
            Description = "Tango Firmware Upgrade",
            Extension = ".tfp",
        };

        public static ExplorerFileDefinition CsvFile => new ExplorerFileDefinition()
        {
            Icon = ResourceHelper.GetImageFromResources("/Images/csv.png"),
            Description = "CSV File",
            Extension = ".csv",
        };

        static ExplorerFileDefinition()
        {
            _definitions = typeof(ExplorerFileDefinition).GetProperties(BindingFlags.Public | BindingFlags.Static).Where(x => x.PropertyType == typeof(ExplorerFileDefinition)).ToList().Select(x => x.GetValue(null, null) as ExplorerFileDefinition).ToList();
        }

        public static ExplorerFileDefinition GetByExtension(String ext)
        {
            return _definitions.Where(x => x.Extension != null).SingleOrDefault(x => x.Extension.ToLower() == ext.ToLower());

            //switch (ext.ToLower())
            //{
            //    case ".job":
            //        return Job;
            //    case ".twn":
            //        return Pulse;
            //    case ".tup":
            //        return Update;
            //    case ".ccp":
            //        return ColorProfile;
            //    default:
            //        return File;
            //}
        }

        public static List<String> GetSupportedExtensions()
        {
            return _definitions.Where(x => x.Extension != null).Select(x => x.Extension).ToList();
        }
    }
}