blob: a0b828b71b01f2130da2ac63f399af9622869e6c (
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
using ColorMine.ColorSpaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Entities;
using Tango.BL.Enumerations;
using Tango.Core.Helpers;
using Tango.Documents;
namespace Tango.CoatsCatalogImporter
{
class Program
{
private class CatalogItem
{
public String ShadeName { get; set; }
public int SerialNumber { get; set; }
public String Strip { get; set; }
public String ShadeCode { get; set; }
public String Color { get; set; }
public float L { get; set; }
public float A { get; set; }
public float B { get; set; }
public int OutOfGamut { get; set; }
public String Nothing { get; set; }
public float DeltaE { get; set; }
public String Flurecent { get; set; }
public float Cyan { get; set; }
public float Magenta { get; set; }
public float Yellow { get; set; }
public float Black { get; set; }
public int GamutRegion { get; set; }
}
static void Main(string[] args)
{
ExcelReader reader = new ExcelReader(AssemblyHelper.GetCurrentAssemblyFolder() + "\\coats.xlsx");
var items = reader.GetDataByIndex<CatalogItem>("Volume 200%", 3);
reader.Dispose();
Console.Write("Please enter the target RML name (press enter to target all): ");
String rml_name = Console.ReadLine();
if (!String.IsNullOrWhiteSpace(rml_name))
{
using (ObservablesContext db = ObservablesContext.CreateDefault(new Core.DataSource()
{
Address = "twine.database.windows.net",
Catalog = "Tango",
Type = Core.DataSourceType.SQLServer,
UserName = "Roy",
Password = "Aa123456",
IntegratedSecurity = false,
}))
{
var rml = db.Rmls.Single(x => x.Name == rml_name);
var coats_color_space_guid = db.ColorSpaces.Single(x => (ColorSpaces)x.Code == ColorSpaces.Coats).Guid;
foreach (var strip in items.GroupBy(x => x.Strip))
{
foreach (var item in strip)
{
bool inserting = false;
var catalogItem = db.ColorCatalogs.SingleOrDefault(x => x.RmlGuid == rml.Guid && x.ColorCode == item.SerialNumber && x.ColorSpaceGuid == coats_color_space_guid);
if (catalogItem == null)
{
inserting = true;
catalogItem = new ColorCatalog();
}
catalogItem.ColorCode = item.SerialNumber;
Lab lab = new Lab(item.L, item.A, item.B);
Rgb rgb = lab.To<Rgb>();
catalogItem.L = lab.L;
catalogItem.A = lab.A;
catalogItem.B = lab.B;
catalogItem.Red = (int)rgb.R;
catalogItem.Green = (int)rgb.G;
catalogItem.Blue = (int)rgb.B;
catalogItem.Cyan = item.Cyan;
catalogItem.Magenta = item.Magenta;
catalogItem.Yellow = item.Yellow;
catalogItem.Black = item.Black;
catalogItem.L = item.L;
catalogItem.A = item.A;
catalogItem.B = item.B;
catalogItem.ProcessParametersTableIndex = item.GamutRegion;
catalogItem.ColorSpaceGuid = coats_color_space_guid;
catalogItem.RmlGuid = rml.Guid;
catalogItem.ColorGroup = "Strip " + item.Strip;
catalogItem.Name = item.ShadeCode;
if (inserting)
{
db.ColorCatalogs.Add(catalogItem);
Console.WriteLine($"Added catalog item {catalogItem.Name}...");
}
else
{
Console.WriteLine($"Updated catalog item {catalogItem.Name}...");
}
}
}
db.SaveChanges();
Console.WriteLine("Done");
Console.ReadLine();
}
}
else
{
throw new NotImplementedException();
}
}
}
}
|