static void WriteInternal(string pageName, string groupName, string name, MyLifetime lifetime, int value) { Debug.Assert(pageName != null && groupName != null && name != null, "Invalid dictionary keys."); GroupToNameDictionary page; if (!m_records.TryGetValue(pageName, out page)) { page = new GroupToNameDictionary(); m_records.Add(pageName, page); m_orderedPages.Add(pageName); } NameToRecordDictionary group; if (!page.TryGetValue(groupName, out group)) { group = new NameToRecordDictionary(); page.Add(groupName, group); } MyRecord record; if (!group.TryGetValue(name, out record)) { record = new MyRecord(); group.Add(name, record); } record.Lifetime = lifetime; record.Value = value; }
public static void WriteTo(StringBuilder writeTo) { writeTo.Clear(); foreach (var pageName in m_orderedPages) { var page = m_records[pageName]; writeTo.Clear(); writeTo.Append(pageName); writeTo.AppendLine(":"); foreach (var group in page) { writeTo.Append(" "); writeTo.AppendLine(group.Key); foreach (var record in group.Value) { MyRecord v = record.Value; writeTo.AppendFormat(" {0}: {1:#,0}", record.Key, v.Value); writeTo.AppendLine(); } writeTo.AppendLine(); } } }
static void Main(string[] args) { var diffs = new List <Diff> { Diff.Insert(" "), Diff.Equal("a"), Diff.Insert("nd"), Diff.Equal(" [[Pennsylvania]]"), Diff.Delete(" and [[New") }; var patch1 = Patch.FromDiffs(diffs); Console.WriteLine(diffs.Text1()); Console.WriteLine(diffs.Text2()); var patch2 = Patch.Compute(diffs.Text1(), diffs.Text2(), 0, 4); Console.WriteLine(patch1.ToText()); Console.WriteLine(patch2.ToText()); //Debug.Assert(patch1.SequenceEqual(patch2)); ImmutableList <int> someList = Enumerable.Range(0, 10).ToImmutableList(); var record1 = new MyRecord(someList); var record2 = new MyRecord(someList); Console.WriteLine(record1 == record2); }
public async Task QueryMixed_main_index() { // arrange var id = GetRandomString(10); var record1 = new MyRecord { Id = id, SubId = GetRandomString(10), Value = "Hello" }; await Table.PutItemAsync(MyDataModel.GetPrimaryKey(record1), record1); var record2 = new MyOtherRecord { Id = id, SubId = GetRandomString(10), Name = "Bob" }; await Table.PutItemAsync(MyDataModel.GetPrimaryKey(record2), record2); // act var result = await Table.Query(MyDataModel.SelectMyRecordsAndMyOtherRecords(record1.Id), consistentRead : true) .ExecuteAsync(); // assert result.Should().HaveCount(2); result.Should().ContainEquivalentOf(record1); result.Should().ContainEquivalentOf(record2); }
private static void Demonstrate() { var rec = new MyRecord { MyInt = 3, MyString = "" }; var rec2 = rec with { }; var rec3 = rec with { MyInt = 4 }; // rec.MyInt = 4; Won't compile! Console.WriteLine(rec.MyInt); Console.WriteLine(rec2.MyInt); Console.WriteLine(rec3.MyInt); Console.WriteLine(rec2 == rec); Console.WriteLine(rec3 == rec); var(myInt, myString) = rec; Console.WriteLine(myInt); Console.WriteLine(myString); } }
static void Main(string[] args) { var record1 = new MyRecord(new[] { "banana", "apple" }); var record2 = new MyRecord(new[] { "banana", "apple" }); Console.WriteLine(record1 == record2); }
public static IEnumerable <MyRecord> ReadMyRecords(this FileInfo file, char separator) { var records = new List <MyRecord>(); using (var reader = new StreamReader(file.FullName)) { var lineToProcess = reader.ReadLine(); while (lineToProcess != null) { var splitLines = lineToProcess.Split(new char[] { separator }, 3); if (splitLines.Length < 3) { throw new InvalidDataException(); } var record = new MyRecord() { Rec = splitLines[0], CountryCode = splitLines[1], Year = Int32.Parse(splitLines[2]), }; records.Add(record); lineToProcess = reader.ReadLine(); } } return(records); }
void ECRECNProgressSender() { MyRecord.Say(@"开启发送每日未结ECR\ECN.........."); Thread t = new Thread(ECRECNProgressSendMail); t.IsBackground = true; t.Start(); MyRecord.Say(@"定时发送每日未结ECR、ECN已经启动。"); }
void SendWorkspaceInspectionLoder() { MyRecord.Say("开启定时发送当日纪律稽核表.........."); Thread t = new Thread(SendWorkspaceInspectionEmail); t.IsBackground = true; t.Start(); MyRecord.Say("开启定时发送当日纪律稽核表完成。"); }
void DeliverPlanNumbSumSender() { MyRecord.Say("开启发送每日出货计划量.........."); Thread t = new Thread(DeliverPlanNumbSumSendMail); t.IsBackground = true; t.Start(); MyRecord.Say("定时发送每日出货计划量已经启动。"); }
void SendIPQCListStaticLoader() { MyRecord.Say("开启定时发送4H不良判定统计表.........."); Thread t = new Thread(SendIPQCListStatic); t.IsBackground = true; t.Start(); MyRecord.Say("开启定时发送4H不良判定统计表完成。"); }
/// <summary>Получить метку</summary> /// <param name="record"></param> /// <param name="projection"></param> /// <returns></returns> public static Placemark GetKml(this MyRecord record, ProjectionInfo projection) { var feature = new Placemark(); var geom = record.GetGeometry() as TPolygon; feature.Geometry = geom.GetKml(projection); feature.Name = "test"; return(feature); }
public void Record() { // 'Prop' property binds with a ctor arg called 'Prop'. MyRecord obj = JsonSerializer.Deserialize <MyRecord>("{}"); Assert.Equal(0, obj.Prop); obj = JsonSerializer.Deserialize <MyRecord>(@"{""Prop"":5}"); Assert.Equal(5, obj.Prop); }
/// <summary> /// 內頁顯示 /// </summary> /// <param name="data"></param> public Page2(int fromID) { InitializeComponent(); //取得資料庫資料 MyRecord data = fooDoggyDatabase.GetItemFromID(fromID); NewsImage.Source = data.image.ToString(); NewsTitle.Text = data.title.ToString(); NewsDescription.Text = data.description.ToString(); }
static void Main() { var r = new MyRecord(Gender.Male); Console.WriteLine(JsonConvert.SerializeObject(r)); var c = new MyClass { Gender = Gender.Male }; Console.WriteLine(JsonConvert.SerializeObject(c)); }
private Placemark GetKml(MyRecord record) { return(new Placemark() { Name = record.Rule.Entpath, Geometry = GetKmlGeometry(record.GetGeometry()), Description = new Description() { Text = record.GetFieldsString() } }); }
public void When_the_subject_is_a_record_it_should_compare_it_by_its_members() { var actual = new MyRecord { StringField = "foo", CollectionProperty = new[] { "bar", "zip", "foo" } }; var expected = new MyRecord { StringField = "foo", CollectionProperty = new[] { "foo", "bar", "zip" } }; actual.Should().BeEquivalentTo(expected); }
public void Should_not_use_ToString_for_records() { var settings = new MyRecord("asdf", "qwer", 42); var result = PrintAndParse(settings, false); result.Should().Be(Normalize(@"{ ""A"": ""asdf"", ""B"": ""<secret>"", ""C"": ""42"" }")); }
private List <string> GetFieldValues(MyRecord rec) { var res = new List <string>(); foreach (var f in rec.FileldList) { if (!f.IsGeom) { res.Add(f.GetString()); } } return(res); }
public void When_global_record_comparing_options_are_chained_it_should_ensure_the_last_one_wins() { var actual = new MyRecord { CollectionProperty = new[] { "bar", "zip", "foo" } }; var expected = new MyRecord { CollectionProperty = new[] { "foo", "bar", "zip" } }; actual.Should().BeEquivalentTo(expected, o => o .ComparingRecordsByValue() .ComparingRecordsByMembers()); }
When_all_records_except_a_specific_type_should_be_treated_as_value_types_it_should_compare_that_specific_type_by_its_members() { var actual = new MyRecord { StringField = "foo", CollectionProperty = new[] { "bar", "zip", "foo" } }; var expected = new MyRecord { StringField = "foo", CollectionProperty = new[] { "foo", "bar", "zip" } }; actual.Should().BeEquivalentTo(expected, o => o .ComparingRecordsByValue() .ComparingByMembers <MyRecord>()); }
public void When_the_subject_is_a_record_it_should_mention_that_in_the_configuration_output() { var actual = new MyRecord { StringField = "foo", }; var expected = new MyRecord { StringField = "bar", }; Action act = () => actual.Should().BeEquivalentTo(expected); act.Should().Throw <XunitException>() .WithMessage("*Compare records by their members*"); }
public override void WriteProgress(long sourceId, ProgressRecord record) { var x = new MyRecord() { Activity = record.Activity, ActivityId = record.ActivityId, CurrentOperation = record.CurrentOperation }; x.ParentActivityId = record.ParentActivityId; x.PercentComplete = record.PercentComplete; x.RecordType = (int)record.RecordType; x.SecondsRemaining = record.SecondsRemaining; x.StatusDescription = record.StatusDescription; _terminalInterface.Dispatcher.Invoke(() => { _terminalInterface.WriteProgress(sourceId, x); }); }
public ExtScript() { Console.WriteLine("ExtScript()"); var record = Record.create(new Schema[] { new Schema { name = "id", type = "int" }, new Schema { name = "value" } }); JsonReader reader = new JsonReader(new JsonReaderConfig { id = "id" }, record); Console.WriteLine(reader); Store store = new Store(new StoreConfig { reader = reader }); var data = new MyRecord[] { new MyRecord { id = 1, value = "first" }, new MyRecord { id = 2, value = "second" } }; Console.WriteLine(data); store.loadData(data); ColumnModelConfig[] columns = new ColumnModelConfig[] { new ColumnModelConfig { dataIndex = "id", header = "ID" }, new ColumnModelConfig { dataIndex = "value", header = "Value" } }; var colModel = new ColumnModel(columns); this.grid = new GridPanel(new GridPanelConfig { height = 150.0, renderTo = "grid", colModel = colModel, store = store }); Console.WriteLine(this.grid); this.grid.on("dblclick", new GridPanelDblclickDelegate(this.OnDblClick), this); Console.WriteLine("ready"); }
public void When_all_records_should_be_treated_as_value_types_it_should_use_equality_for_comparing() { var actual = new MyRecord { StringField = "foo", CollectionProperty = new[] { "bar", "zip", "foo" } }; var expected = new MyRecord { StringField = "foo", CollectionProperty = new[] { "foo", "bar", "zip" } }; Action act = () => actual.Should().BeEquivalentTo(expected, o => o .ComparingRecordsByValue()); act.Should().Throw <XunitException>() .WithMessage("*Expected*MyRecord*but found*MyRecord*") .WithMessage("*Compare records by value*"); }
public MyMessage(string str) { SIG = 5523794; MID = (ushort)this.GetHashCode(); myRecord = new MyRecord(str); RAD = myRecord.MyRecordToBytes(); RAL = (ushort)RAD.Length; List <byte> combList = new List <byte>(); combList.AddRange(BitConverter.GetBytes(SIG)); combList.AddRange(BitConverter.GetBytes(MID)); combList.AddRange(BitConverter.GetBytes(RAL)); combList.AddRange(RAD); byte[] byteArr = combList.ToArray(); MCS = crc16(byteArr, byteArr.Length); }
public static MyRecord BytesToMyRecord(byte[] bytes) { MyRecord myRecord = new MyRecord(); int offset = 0; myRecord.UID = BitConverter.ToInt32(bytes, offset); offset += Marshal.SizeOf(myRecord.UID); myRecord.TM = BitConverter.ToUInt32(bytes, offset); offset += Marshal.SizeOf(myRecord.TM); myRecord.RL = BitConverter.ToUInt16(bytes, offset); offset += Marshal.SizeOf(myRecord.RL); myRecord.RD = new byte[bytes.Length - offset]; Array.Copy(bytes, offset, myRecord.RD, 0, myRecord.RD.Length); return(myRecord); }
/// <summary>Добавить сущность</summary> /// <param name="rec">Запись</param> /// <returns></returns> public Feature AddFeature(MyRecord rec) { var geom = rec.GetGeometry(); var type = FeatureType.TABFC_NoGeom; if (geom == null) { return(AddFeature(type, new List <List <Vertex> >(), GetFieldValues(rec), null)); } switch (geom.GetGeometryType()) { case GeometryType.Point: type = FeatureType.TABFC_Point; break; case GeometryType.LineString: type = FeatureType.TABFC_Polyline; break; case GeometryType.Polygon: case GeometryType.MultiPolygon: type = FeatureType.TABFC_Region; break; case GeometryType.No: break; case GeometryType.GeometryCollection: break; default: throw new ArgumentOutOfRangeException(); } if (geom.IsValid()) { return(AddFeature(type, GetParts(geom), GetFieldValues(rec), null)); } return(type == FeatureType.TABFC_NoGeom ? AddFeature(type, new List <List <Vertex> >(), GetFieldValues(rec), null) : null); }
public void ItWorks() { var slice = CreateSlice(() => { var storeKey = "myslice"; MyRecord initialState = new MyRecord(); var actionTypes = ( rename: $"{storeKey}/rename", error: $"{storeKey}/error", start: $"{storeKey}/start", started: $"{storeKey}/started", completed: $"{storeKey}/completed", success: $"{storeKey}/success" ); var actions = ( rename: CreateActionCreator <string>(actionTypes.rename), error: CreateActionCreator <Exception>(actionTypes.error), start: CreateActionCreator(actionTypes.start), // Starts middleware started: CreateActionCreator(actionTypes.started), success: CreateActionCreator <object>(actionTypes.success), completed: CreateActionCreator(actionTypes.completed) ); var selector = CreateGenericSelector(storeKey, initialState); var reducer = CreateReducer(initialState, (state, action) => { switch (action) { case IAction a when Equals(actionTypes.rename, a.Type): { var(name, error, busy, success) = selector(state); return(name: a.Payload as string, error, busy, success); }
void SendIPQCListStatic() { try { MyRecord.Say("-----------------开启定时发送4H不良判定统计表-------------------------"); string body = MyConvert.ZH_TW(@" <HTML> <BODY style=""FONT-SIZE: 9pt; FONT-FAMILY: PMingLiU"" leftMargin=5 topMargin=5 bgColor=#ece4f3 #ffffff> <DIV><FONT size=3 face=PMingLiU>{3}ERP系统提示您:</FONT></DIV> <DIV><FONT size=3 face=PMingLiU> 下述表格为过去4H({0:MM.dd HH:mm}至{2:MM.dd HH:mm})制程不良判定结果的统计。</FONT></DIV> <DIV><FONT size=3 face=PMingLiU> (详细不良判定内容,请看附档。)</FONT></DIV> <DIV>{1} </DIV> <DIV><FONT face=PMingLiU><FONT size=2></FONT> </DIV> <DIV><FONT color=#0000ff size=4 face=PMingLiU><STRONG> 此郵件由ERP系統自動發送,请勿在此郵件上直接回復。</STRONG></FONT></DIV> <DIV><FONT color=#800080 size=2><STRONG> </STRONG> <FONT color=#000000 face=PMingLiU>{2:yy/MM/dd HH:mm},由ERP系统伺服器({4})自动发送。<BR> 如自動發送功能有問題或者格式内容修改建議,請MailTo:<A href=""mailto:[email protected]"">JOHN</A><BR> </FONT></FONT></DIV></FONT></BODY></HTML> "); string bbr = @" <FONT size=3 face=PMingLiU> <TABLE style=""BORDER-COLLAPSE: collapse"" cellSpacing=0 cellPadding=0 width=""100%"" border=0> <TBODY> <TR> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > 责任部门 </TD> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > 前5大不良 </TD> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > 平均不良率 </TD> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > 不良数最高工序 </TD> </TR> {0} </TBODY></TABLE> </FONT> "; string br = @" <TR> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > {0} </TD> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > {1} </TD> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > {2:#.###%} </TD> <TD class=xl63 style=""BORDER-TOP: windowtext 0.5pt solid; BORDER-RIGHT: windowtext 0.5pt solid; BORDER-BOTTOM: windowtext 0.5pt solid; BORDER-LEFT: windowtext 0.5pt solid; BACKGROUND-COLOR: transparent"" align=center > {3} </TD> </TR> "; string SQL = @" SELECT [a].[ProcessID] AS [OccuredProcessCode], [a].[MachinID] AS [OccuredMachineCode], [a].[Numb1], [a].[Numb2], [a].[SampleNumb], [a].[AdjustNumb], [a].[AccNoteRdsNo], [a].[RenoteRdsno], [a].[ProduceNo] AS [ProduceRdsNo], [a].[ProductCode], [b].[RejNumb], [b].[ScrapNumber], [b].[AssignToDepartmentID], [b].[ProjCode], [b].[ItemID], [d].[name] AS [ProductName], [b].[Editor], [b].[EditDate], [c].[name] AS [ProjName], [dp].[name] AS [AssignToDepartmentName], [dp].[FullSortID], [p].[name] AS [AssignToProcessName], [p1].[name] AS [OccuredProcessName], [m].[name] AS [OccuredMachineName], [dp1].[name] AS [OccuredDepartmentName], [a].[RptDate], (ISNULL([b].[RejNumb], 0) / (ISNULL([a].[Numb1], 0) + ISNULL([a].[Numb2], 0) + ISNULL([a].[SampleNumb], 0) + ISNULL([a].[AdjustNumb], 0))) AS [Yield] FROM [dbo].[ProdDailyReport] [a] INNER JOIN [dbo].[_PMC_IPQC_List] [b] ON [a].[_ID] = [b].[zbid] INNER JOIN [dbo].[AllMaterialView] [d] ON [d].[code] = [a].[ProductCode] INNER JOIN [dbo].[moProcedure] [p1] ON [p1].[code] = [a].[ProcessID] INNER JOIN [dbo].[moMachine] [m] ON [m].[code] = [a].[MachinID] INNER JOIN [dbo].[pbDept] [dp1] ON [dp1].[_ID] = [m].[DepartmentID] LEFT OUTER JOIN [dbo].[_QC_Item] [c] ON [b].[ProjCode] = [c].[code] LEFT OUTER JOIN [dbo].[pbDept] [dp] ON [dp].[_ID] = [b].[AssignToDepartmentID] LEFT OUTER JOIN [dbo].[moProcedure] [p] ON [p].[code] = [b].[AssignToProcessCode] WHERE [a].[QCCheckDate] BETWEEN DATEADD(HOUR, -4, GETDATE()) AND GETDATE() ORDER BY [a].[RptDate], [a].[ProduceNo], [a].[AccNoteRdsNo] "; DateTime NowTime = DateTime.Now; string brs = ""; MyRecord.Say(string.Format("后台计算定时4H不良判定统计表,{0}", NowTime)); using (MyData.MyDataTable md = new MyData.MyDataTable(SQL)) { string fname = string.Empty; MyRecord.Say("创建SendMail。"); MyBase.SendMail sm = new MyBase.SendMail(); MyRecord.Say("加载邮件内容。"); MyRecord.Say("计算定时发送4H不良判定统计表"); if (md.MyRows.IsNotEmptySet()) { var v = from a in md.MyRows select new IPQCStaticItem(a); List <IPQCStaticItem> lData = v.ToList(); var va = from a in lData group a by a.AssignToDepartmentName into g select new { DepartmentName = g.Key, Top5 = string.Join(",", g.GroupBy(k => k.ProjName).Select(q => new { ProjName = q.Key, RejNumb = q.Sum(p => p.RejNumb) }).OrderByDescending(x => x.RejNumb).Take(5).Select(y => string.Format("{0}:{1}", y.ProjName, y.RejNumb))), AvgYeild = g.Average(z => z.Yield), TopProcessName = g.OrderBy(u => u.RejNumb).Take(1).FirstOrDefault().AssignToProcessName }; foreach (var ri in va) { brs += string.Format(br, ri.DepartmentName, ri.Top5, ri.AvgYeild, ri.TopProcessName); } MyRecord.Say(string.Format("表格一共:{0}行,表格已经生成。", md.Rows.Count)); bbr = string.Format(bbr, brs); } else { bbr = @"<FONT size=5 face=PMingLiU color=Red> 过去4H没有做过不良判定。</FONT></DIV>"; } sm.MailBodyText = MyConvert.ZH_TW(string.Format(body, NowTime.AddHours(-4), bbr, NowTime, MyBase.CompanyTitle, LocalInfo.GetLocalIp())); sm.Subject = MyConvert.ZH_TW(string.Format("{1}{0:yy年MM月dd日HH时}_4H不良判定统计。", NowTime, MyBase.CompanyTitle)); MyRecord.Say("计算邮件附件内容。"); if (md.MyRows.IsNotEmptySet()) { IPQCStaticItem xx; var vAttachView = from a in md.MyRows orderby a.Value("FullSortID") select a; string[] fields = new string[] { "ProduceRdsNo", "AccNoteRdsNo", "RptDate", "OccuredDepartmentName", "OccuredProcessName", "OccuredMachineName", "RenoteRdsno", "ProductCode", "ProductName", "Numb1", "Numb2", "SampleNumb", "AdjustNumb", "ProjName", "RejNumb", "Editor", "EditDate", "AssignToDepartmentName", "AssignToProcessName", "Yield" }; string[] captions = new string[] { "工单号", "完工单号", "完工日期", "发现部门", "发现工序", "发现机台", "不不良判定单号", "产品编号", "料号", "良品数", "不良数", "样品数", "过版纸数", "不良项目", "不良数", "判定人", "判定时间", "责任部门", "责任机台", "不良率" }; fname = ExportExcel.Export(sm, vAttachView, fields, captions, LCStr("不良判定表")); } ; MyConfig.MailAddress mAddress = MyConfig.GetMailAddress("IPQCListStatic"); MyRecord.Say(string.Format("MailTO:{0}\r\nMailCC:{1}", mAddress.MailTo, mAddress.MailCC)); sm.MailTo = mAddress.MailTo; sm.MailCC = mAddress.MailCC; //sm.MailTo = "*****@*****.**"; MyRecord.Say("发送邮件。"); sm.SendOut(); sm.mail.Dispose(); sm = null; MyRecord.Say("邮件已经发送。"); if (File.Exists(fname)) { File.Delete(fname); } } MyRecord.Say("------------------发送完成----------------------------"); } catch (Exception e) { MyRecord.Say(e); } }
static public void SelectRecord(string recname) { uneditable = true; // declications var rec = MyDataBase.Record[recname]; currentrec = rec; // Activate pages MainClass.Pages.Sensitive = true; MainClass.ButForceMod.Sensitive = !rec.MODIFIED; MainClass.MenuBoxInput.Hide(); MainClass.ButRemove.Sensitive = true; MainClass.ButRename.Sensitive = true; MainClass.ButDupe.Sensitive = true; // Strings and other textbox related types foreach (string k in MainClass.DStrings.Keys) { if (!rec.value.ContainsKey(k)) { QuickGTK.Warn($"The {MyDataBase.fields[k]} {k} contains no data in this record! Creating data!"); //if (MyDataBase.fields[k] == "string") rec.value[k] = ""; else rec.value[k] = "0"; switch (MyDataBase.fields[k]) { case "bool": rec.value[k] = "FALSE"; break; case "int": case "double": rec.value[k] = "0"; break; default: rec.value[k] = ""; break; } } var tv = MainClass.DStrings[k]; //tv.Buffer.Text = rec.value[k]; tv.Text = rec.value[k]; } // Booleans foreach (string k in MainClass.RBTbools.Keys) { var btrue = MainClass.RBTbools[k]; var bfalse = MainClass.RBFbools[k]; if (!rec.value.ContainsKey(k)) { //QuickGTK.Warn($"{MyDataBase.fields[k]} contains no data in this record! Creating data!"); QuickGTK.Warn($"Boolean {k} contains no data in this record! Creating data!"); rec.value[k] = "FALSE"; } btrue.Active = rec.value[k].ToUpper() == "TRUE"; bfalse.Active = rec.value[k].ToUpper() != "TRUE"; } // mc foreach (string k in MainClass.mc.Keys) { var mc = MainClass.mc[k]; var mcid = MainClass.mcval2index; if (!rec.value.ContainsKey(k)) { QuickGTK.Warn($"{MyDataBase.fields[k]} contains no data in this record! Creating data!"); rec.value[k] = ""; } if (!mcid.ContainsKey(k)) { QuickGTK.Warn("Empty mc list!"); } else { var mci = mcid[k]; var value = rec.value[k]; if (value != "") { if (mci.ContainsKey(value)) { mc.Active = mci[value]; } else { QuickGTK.Error($"The value set for field '{k}' is '{value}', however that value is NOT listed!\n\nSetting ignored!"); } } } } foreach (string k in MainClass.Dates.Keys) { if (!rec.value.ContainsKey(k)) { QuickGTK.Warn($"{MyDataBase.fields[k]} {k} contains no data in record '{recname}'! Creating data!"); rec.value[k] = "19/6/1975"; } MainClass.Dates[k].Value = rec.value[k]; } foreach (string k in MainClass.Times.Keys) { if (!rec.value.ContainsKey(k)) { QuickGTK.Warn($"{MyDataBase.fields[k]} {k} contains no data in record '{recname}'! Creating data!"); rec.value[k] = "01:02:03"; } MainClass.Times[k].Value = rec.value[k]; } foreach (string k in MainClass.Colors.Keys) { if (!rec.value.ContainsKey(k)) { QuickGTK.Warn($"{MyDataBase.fields[k]} {k} contains no data in record '{recname}'! Creating data!"); rec.value[k] = "255;255;255"; } MainClass.Colors[k].Value = rec.value[k]; } RunAllow(); uneditable = false; }