public void RiskLevel(int day, TransmissionRiskLevel expected) { var tek = new Tek { RollingStartNumber = new DateTime(2020, 1, day, 0, 0, 0, DateTimeKind.Utc).ToRollingStartNumber() }; var calculation = new TransmissionRiskLevelCalculationV1(); var result = calculation.Calculate(tek.RollingStartNumber, _DateOfSystemsOnset); Assert.AreEqual(expected, result); }
public static TekEntity MapToEntity(Tek value) { return(new TekEntity { KeyData = value.KeyData, RollingPeriod = value.RollingPeriod, RollingStartNumber = value.RollingStartNumber, PublishingState = value.PublishingState, PublishAfter = value.PublishAfter, Region = value.Region }); }
private string[] ValidateSingleTek(Tek item) { if (_LastPublishedRsn.HasValue && item.RollingStartNumber <= _LastPublishedRsn) { return(new[] { "Before last published" }); } if (item.StartDate > _Workflow.Created.Date) { //Kill 'same day' keys return(new[] { "Too recent" }); } var now = _DateTimeProvider.Snapshot; if (item.StartDate == now.Date) { // this is a ‘same day key’, generated on the day the user gets result. // it must arrive within the call window (Step 4 from proposed process) if (_Workflow.AuthorisedByCaregiver != null && !(now - _Workflow.AuthorisedByCaregiver < TimeSpan.FromMinutes(_Config.AuthorisationWindowMinutes))) { return(new[] { "Authorisation window expired" }); } item.PublishAfter = _DateTimeProvider.Snapshot.AddMinutes(_Config.PublishingDelayInMinutes); _Valid.Add(item); return(new [] { "Same day key accepted - Reason:Before call or within call window Key." }); //TODO text reason from doc seems ambiguous. } // key from result day that arrives after today with extra check to ensure it’s a 1.4 device and not a tampered 1.5 device (Step 5) if (item.StartDate == _Workflow.Created.Date && _WorkflowHasKeyOnCreationDate) { return(new[] { "Tek for result day after midnight rejected - already a tek present for that day" }); } // Key from the past accepted. _Valid.Add(item); return(new string[0]); }
private void button1_Click(object sender, EventArgs e) { if (Blighchekbox.CheckState == CheckState.Checked) //if (comboBox1.Text == "bligh") { if (Tad <= 0.5) { Tad = 0.5; texta.Text = Tad.ToString(); } else { texta.Text = Tad.ToString(); }// end of tad if (Tbd <= 0.5) { Tbd = 0.5; radtextb.Text = Tbd.ToString(); } else { radtextb.Text = Tbd.ToString(); }// end of tbd if (Tcd <= 0.5) { Tcd = 0.5; radtextc.Text = Tcd.ToString(); } else { radtextc.Text = Tcd.ToString(); } //end of tcd if (Tdd <= 0.5) { Tdd = 0.5; radtextd.Text = Tdd.ToString(); } else { radtextd.Text = Tdd.ToString(); } //end of tdd if (Ted <= 0.5) { Ted = 0.5; radtexte.Text = Ted.ToString(); } else { radtexte.Text = Ted.ToString(); } //end of ted if (Tfd <= 0.5) { Tfd = 0.5; radtextf.Text = Tfd.ToString(); } else { radtextf.Text = Tfd.ToString(); } //end of tfd } //end of If if (Khoslachekbox.CheckState == CheckState.Checked) // if(comboBox1.Text=="khosla") { if (Tak <= 0.5) { Tak = 0.5; texta.Text = Tak.ToString(); } else { texta.Text = Tak.ToString(); }// end of tad if (Tbk <= 0.5) { Tbk = 0.5; radtextb.Text = Tbk.ToString(); } else { radtextb.Text = Tbk.ToString(); }// end of tbd if (Tck <= 0.5) { Tck = 0.5; radtextc.Text = Tck.ToString(); } else { radtextc.Text = Tck.ToString(); } //end of tcd if (Tdk <= 0.5) { Tdk = 0.5; radtextd.Text = Tdk.ToString(); } else { radtextd.Text = Tdk.ToString(); } //end of tdd if (Tek <= 0.5) { Tek = 0.5; radtexte.Text = Tek.ToString(); } else { radtexte.Text = Tek.ToString(); } //end of ted if (Tfk <= 0.5) { Tfk = 0.5; radtextf.Text = Tfk.ToString(); } else { radtextf.Text = Tfk.ToString(); } //end of tfd } Dynamicbtn.Visible = true; }
private Dictionary <string, int> CalcPrimary() { Dictionary <string, int> primary = new Dictionary <string, int>(); primary.Add("Thatch", 0); primary.Add("Fiber", 0); primary.Add("Wood", 0); primary.Add("Stone", 0); primary.Add("Metal", 0); primary.Add("Paste", 0); primary.Add("Polymer", 0); primary.Add("Crystal", 0); primary.Add("Element", 0); Dictionary <string, int> Foundation = new Dictionary <string, int>(); Dictionary <string, int> Walls = new Dictionary <string, int>(); Dictionary <string, int> Ceiling = new Dictionary <string, int>(); Dictionary <string, int> Doorframe = new Dictionary <string, int>(); Dictionary <string, int> Door = new Dictionary <string, int>(); Dictionary <string, int> Windowframe = new Dictionary <string, int>(); Dictionary <string, int> Window = new Dictionary <string, int>(); switch (primaryMaterial) { case "Thatch": { Thatch materialCost = new Thatch(); Foundation = materialCost.Foundation; Walls = materialCost.Wall; Ceiling = materialCost.Ceiling; Doorframe = materialCost.Doorframe; Door = materialCost.Door; break; } case "Wood": { Wood materialCost = new Wood(); Foundation = materialCost.Foundation; Walls = materialCost.Wall; Ceiling = materialCost.Ceiling; Doorframe = materialCost.Doorframe; Door = materialCost.Door; Windowframe = materialCost.Windowframe; Window = materialCost.Window; break; } case "Stone": { Stone materialCost = new Stone(); Foundation = materialCost.Foundation; Walls = materialCost.Wall; Ceiling = materialCost.Ceiling; Doorframe = materialCost.Doorframe; Door = materialCost.Door; Windowframe = materialCost.Windowframe; Window = materialCost.Window; break; } case "Metal": { Metal materialCost = new Metal(); Foundation = materialCost.Foundation; Walls = materialCost.Wall; Ceiling = materialCost.Ceiling; Doorframe = materialCost.Doorframe; Door = materialCost.Door; Windowframe = materialCost.Windowframe; Window = materialCost.Window; break; } case "Tek": { Tek materialCost = new Tek(); Foundation = materialCost.Foundation; Walls = materialCost.Wall; Ceiling = materialCost.Ceiling; Doorframe = materialCost.Doorframe; Door = materialCost.Door; Windowframe = materialCost.Windowframe; Window = materialCost.Window; break; } } foreach (KeyValuePair <string, int> kv in Foundation) { primary[kv.Key] += kv.Value * foundation; } foreach (KeyValuePair <string, int> kv in Walls) { primary[kv.Key] += kv.Value * walls; } foreach (KeyValuePair <string, int> kv in Ceiling) { primary[kv.Key] += kv.Value * roof; } foreach (KeyValuePair <string, int> kv in Doorframe) { primary[kv.Key] += kv.Value * doors; } foreach (KeyValuePair <string, int> kv in Door) { primary[kv.Key] += kv.Value * doors; } if (primaryMaterial != "Thatch") { foreach (KeyValuePair <string, int> kv in Windowframe) { primary[kv.Key] += kv.Value * windows; } foreach (KeyValuePair <string, int> kv in Window) { primary[kv.Key] += kv.Value * windows; } } return(primary); }
private Dictionary <string, int> CalcSecondary() { Dictionary <string, int> secondary = new Dictionary <string, int>(); secondary.Add("Thatch", 0); secondary.Add("Fiber", 0); secondary.Add("Wood", 0); secondary.Add("Stone", 0); secondary.Add("Metal", 0); secondary.Add("Paste", 0); secondary.Add("Polymer", 0); secondary.Add("Crystal", 0); secondary.Add("Element", 0); Dictionary <string, int> Ceiling = new Dictionary <string, int>(); switch (secondaryMaterial) { case "Thatch": { Thatch materialCost = new Thatch(); Ceiling = materialCost.Ceiling; break; } case "Wood": { Wood materialCost = new Wood(); Ceiling = materialCost.Ceiling; break; } case "Stone": { Stone materialCost = new Stone(); Ceiling = materialCost.Ceiling; break; } case "Metal": { Metal materialCost = new Metal(); Ceiling = materialCost.Ceiling; break; } case "Tek": { Tek materialCost = new Tek(); Ceiling = materialCost.Ceiling; break; } } foreach (KeyValuePair <string, int> kv in Ceiling) { secondary[kv.Key] += kv.Value * foundation * (floors - 1); } return(secondary); }