/// <summary> /// 刷新数据 /// </summary> public async void Update(Fresh fresh) { var list = await _api.GetFreshDetail(fresh); if (list == null) { isLoading = true; } else { // 根据设备类型设置不同的CSS文件 //string css = SetCss(); // 处理文档中各种格式标记 string text_content = SetContent(list.FreshContentSlim); // 设置文章中的标题 string title = SetTitle(fresh); string header_slim = "<head>" + SetCss(false) + "</head>"; string header_ex = "<head>" + SetCss(true) + "</head>"; string body = "<body>" + title + text_content + "</body>"; list.FreshContentEx = "<!DOCTYPE HTML>\n<html>" + header_ex + body + "</html>"; list.FreshContentSlim = "<!DOCTYPE HTML>\n<html>" + header_slim + body + "</html>"; isLoading = false; } FreshDetails = list; }
public FreshDetailViewModel(Fresh fresh) { _freshDetails = new FreshDetail() { FreshInfo = fresh, FreshContentSlim = "", FreshContentEx = "" }; Update(_freshDetails.FreshInfo); }
private void addNewToolStripMenuItem_Click(object sender, EventArgs e) { if (!(liquidOrders.Any()) && string.IsNullOrEmpty(filePath)) { MessageBox.Show(messageAddToNothing, "Warning", MessageBoxButtons.OK); } else { //var liquid = new Drink("topo", Volume.M) as Liquid; //liquidOrders.Add(liquid); //source.Add(GetAnonymous(liquid)); ItemForm formAdd = new ItemForm(); DialogResult result = formAdd.ShowDialog(this); if (result == DialogResult.Cancel) { return; } if (result == DialogResult.OK) { Liquid newLiquid; if (formAdd.comboBoxType.SelectedText == "Drink") { newLiquid = new Drink(formAdd.textBoxName.Text, ParseToVolume(formAdd.comboBoxSize.Text)); liquidOrders.Add(newLiquid); source.Add(GetAnonymous(newLiquid)); MessageBox.Show("New Drink Added"); } else if (formAdd.comboBoxType.SelectedText == "Fresh") { newLiquid = new Fresh(formAdd.textBoxName.Text, formAdd.textBoxFruit.Text, ParseToVolume(formAdd.comboBoxSize.Text)); liquidOrders.Add(newLiquid); source.Add(GetAnonymous(newLiquid)); MessageBox.Show("New Fresh Added"); } else if (formAdd.comboBoxType.SelectedText == "Coffee") { newLiquid = new CoffeeDrink(formAdd.textBoxSortOfCoffee.Text, formAdd.radioButtonCoffeine.Checked); liquidOrders.Add(newLiquid); source.Add(GetAnonymous(newLiquid)); MessageBox.Show("New CoffeeDrink Added"); } else { throw new Exception("It's not a Liquid!"); } MessageBox.Show("Adding Finished"); } } }
public void CheesePriceShouldNotBeLessThan0() { Utils.ReceivedDate = new DateTime(2021, 02, 15); var currentDate = Utils.ReceivedDate; Cheese cheese = new Fresh("Queso Fresco", "2021-02-14", "10", 1.10, CheeseType.Name.Fresh, Utils.ReceivedDate); for (int i = 0; i <= 14; i++) { cheese.SetPrice(cheese, currentDate); currentDate = currentDate.AddDays(1); } Assert.Equal(0, PriceFormatter.ShowPriceAsDecimal(cheese.Price)); }
public void FreshCheesePriceShouldExpire() { Utils.ReceivedDate = new DateTime(2021, 02, 15); var currentDate = Utils.ReceivedDate; Cheese cheese = new Fresh("Queso Fresco", "2021-02-14", "2", 2.21, CheeseType.Name.Fresh, Utils.ReceivedDate); for (int i = 0; i <= 3; i++) { cheese.SetPrice(cheese, currentDate); currentDate = currentDate.AddDays(1); } Assert.True(cheese.IsExpired(currentDate)); }
public void FreshCheesePriceShouldDecreaseAtTwiceTheRateOfStandarCheese() { Utils.ReceivedDate = new DateTime(2021, 02, 15); var currentDate = Utils.ReceivedDate; Cheese cheese = new Fresh("Queso Fresco", "2021-02-14", "4", 2.21, CheeseType.Name.Fresh, Utils.ReceivedDate); for (int i = 0; i < 2; i++) { cheese.SetPrice(cheese, currentDate); currentDate = currentDate.AddDays(1); } Assert.Equal(1.41, PriceFormatter.ShowPriceAsDecimal(cheese.Price)); }
/// <summary> /// 新鲜事详情 /// </summary> /// <returns></returns> public async Task <FreshDetail> GetFreshDetail(Fresh fresh) { try { if (ConnectivityManager.Current.Network == NetworkType.NotConnected) //无网络连接 { FreshDetail list = await FileHelper.Current.ReadObjectAsync <FreshDetail>($"freshDetail-{fresh.ID}.json"); return(list); } else { JsonObject json = await GetJson(string.Format(ServiceURL.URL_FRESH_NEWS_DETAIL, fresh.ID)); if (json != null) { var post = json["post"]; string htmlContent = (post.GetObject())["content"].GetString(); if (fresh.Tag == null) { var tag = Tags.parse((post.GetObject())["tags"].ToString()); fresh.Tag = tag; } FreshDetail list = new FreshDetail() { FreshInfo = fresh, FreshContentSlim = htmlContent, FreshContentEx = htmlContent }; await FileHelper.Current.WriteObjectAsync <FreshDetail>(list, $"freshDetail-{fresh.ID}.json"); return(list); } else { return(null); } } } catch { return(null); } }
public static Liquid ParseToLiquid(string fileContent) { var fileString = fileContent.Split('-'); Liquid item; switch (fileString[0]) { case ("Drink"): item = new Drink(fileString[1], ParseToVolume(fileString[2])); return(item); case ("Fresh"): item = new Fresh(fileString[1], fileString[3], ParseToVolume(fileString[2])); return(item); case ("CoffeeDrink"): item = new CoffeeDrink(fileString[1], bool.Parse(fileString[2])); return(item); default: throw new Exception("Not a Liquid type"); //return new Liquid(); } }
public void InitializeAssumptions() { #region A bel A <Kab> B var f1 = new Believe { Agent1 = AgentList["A"], Formula = new SharedKey() }; ((SharedKey)f1.Formula).Agent1 = f1.Agent1; ((SharedKey)f1.Formula).Agent2 = AgentList["B"]; ((SharedKey)f1.Formula).Key = "Kab"; InitialAssumptions.Add(f1); #endregion #region B bel A<Kab> B var f2 = new Believe { Agent1 = AgentList["B"], Formula = new SharedKey() }; ((SharedKey)f2.Formula).Agent1 = AgentList["A"]; ((SharedKey)f2.Formula).Agent2 = AgentList["B"]; ((SharedKey)f2.Formula).Key = "Kab"; InitialAssumptions.Add(f2); #endregion #region B bel A <Kab'> B var f3 = new Believe { Agent1 = AgentList["B"], Formula = new SharedKey() }; ((SharedKey)f3.Formula).Agent1 = AgentList["A"]; ((SharedKey)f3.Formula).Agent2 = AgentList["B"]; ((SharedKey)f3.Formula).Key = "Kab'"; InitialAssumptions.Add(f3); #endregion #region A bel B controls A<K>B var f4 = new Believe { Agent1 = AgentList["A"] }; var f5 = new Controls { Agent1 = AgentList["B"] }; var f6 = new SharedKey(); f4.Formula = f5; f5.Formula = f6; f6.Agent1 = AgentList["A"]; f6.Agent2 = AgentList["B"]; f6.Key = "K"; InitialAssumptions.Add(f4); #endregion #region A bel fresh(Na) var f10 = new Believe { Agent1 = AgentList["A"] }; var f11 = new Fresh { Message = "Na" }; f10.Formula = f11; InitialAssumptions.Add(f10); #endregion #region B bel fresh(Nb) var f12 = new Believe { Agent1 = AgentList["B"] }; var f13 = new Fresh { Message = "Nb" }; f12.Formula = f13; InitialAssumptions.Add(f12); #endregion #region B bel fresh(Nb') var f14 = new Believe { Agent1 = AgentList["B"] }; var f15 = new Fresh { Message = "Nb'" }; f14.Formula = f15; InitialAssumptions.Add(f14); #endregion }
public void InitializeAssumptions() { #region A bel A <Kas>S var f1 = new Believe { Agent1 = AgentList["A"], Formula = new SharedKey() }; ((SharedKey)f1.Formula).Agent1 = f1.Agent1; ((SharedKey)f1.Formula).Agent2 = AgentList["S"]; ((SharedKey)f1.Formula).Key = "Kas"; InitialAssumptions.Add(f1); #endregion #region S bel A<Kas>S var f2 = new Believe { Agent1 = AgentList["S"], Formula = new SharedKey() }; ((SharedKey)f2.Formula).Agent1 = AgentList["A"]; ((SharedKey)f2.Formula).Agent2 = AgentList["S"]; ((SharedKey)f2.Formula).Key = "Kas"; InitialAssumptions.Add(f2); #endregion #region S bel A<Kab>S var f3 = new Believe { Agent1 = AgentList["S"], Formula = new SharedKey() }; ((SharedKey)f3.Formula).Agent1 = AgentList["A"]; ((SharedKey)f3.Formula).Agent2 = AgentList["S"]; ((SharedKey)f3.Formula).Key = "Kab"; InitialAssumptions.Add(f3); #endregion #region A bel S controls A<K>B var f4 = new Believe { Agent1 = AgentList["A"] }; var f5 = new Controls { Agent1 = AgentList["S"] }; var f6 = new SharedKey(); f4.Formula = f5; f5.Formula = f6; f6.Agent1 = AgentList["A"]; f6.Agent2 = AgentList["B"]; f6.Key = "K"; InitialAssumptions.Add(f4); #endregion #region B bel S controls A<K>B var f7 = new Believe { Agent1 = AgentList["B"] }; var f8 = new Controls { Agent1 = AgentList["S"] }; var f9 = new SharedKey(); f7.Formula = f8; f8.Formula = f9; f9.Agent1 = AgentList["A"]; f9.Agent2 = AgentList["B"]; f9.Key = "K"; InitialAssumptions.Add(f7); #endregion #region A bel fresh(TS) var f10 = new Believe { Agent1 = AgentList["A"] }; var f11 = new Fresh { Message = "TS" }; f10.Formula = f11; InitialAssumptions.Add(f10); #endregion #region B bel fresh(TS) var f12 = new Believe { Agent1 = AgentList["B"] }; var f13 = new Fresh { Message = "TS" }; f12.Formula = f13; InitialAssumptions.Add(f12); #endregion #region B bel fresh(TA) var f14 = new Believe { Agent1 = AgentList["B"] }; var f15 = new Fresh { Message = "TA" }; f14.Formula = f15; InitialAssumptions.Add(f14); #endregion #region A bel fresh(TA) var f16 = new Believe { Agent1 = AgentList["A"] }; var f17 = new Fresh { Message = "TA" }; f16.Formula = f17; InitialAssumptions.Add(f16); #endregion #region B bel B <Kbs>S var f18 = new Believe { Agent1 = AgentList["B"], Formula = new SharedKey() }; ((SharedKey)f18.Formula).Agent1 = f18.Agent1; ((SharedKey)f18.Formula).Agent2 = AgentList["S"]; ((SharedKey)f18.Formula).Key = "Kbs"; InitialAssumptions.Add(f18); #endregion #region S bel B <Kbs>S var f19 = new Believe { Agent1 = AgentList["S"], Formula = new SharedKey() }; ((SharedKey)f19.Formula).Agent1 = AgentList["B"]; ((SharedKey)f19.Formula).Agent2 = AgentList["S"]; ((SharedKey)f19.Formula).Key = "Kbs"; InitialAssumptions.Add(f19); #endregion }
private static string SetTitle(Fresh fresh) { return(@"<em>" + fresh.Author.Name + " @ " + fresh.Tag?[0].Title + @"</em>" + @"<h2 class=""FreshTitle"">" + fresh.Title + "</h2>" + "<em>" + fresh.Date + @"</em>"); }
public void InitializeAssumptions() { #region A bel A <Kas>S var i1 = new Believe { Agent1 = AgentList["A"], Formula = new SharedKey() }; ((SharedKey)i1.Formula).Agent1 = AgentList["A"]; ((SharedKey)i1.Formula).Agent2 = AgentList["S"]; ((SharedKey)i1.Formula).Key = "Kas"; InitialAssumptions.Add(i1); #endregion #region B bel B <Kbs>S var i2 = new Believe { Agent1 = AgentList["B"], Formula = new SharedKey() }; ((SharedKey)i2.Formula).Agent1 = AgentList["B"]; ((SharedKey)i2.Formula).Agent2 = AgentList["S"]; ((SharedKey)i2.Formula).Key = "Kbs"; InitialAssumptions.Add(i2); #endregion #region A bel S controls A<K>B var i3 = new Believe { Agent1 = AgentList["A"] }; var i4 = new Controls { Agent1 = AgentList["S"] }; var i5 = new SharedKey(); i3.Formula = i4; i4.Formula = i5; i5.Agent1 = AgentList["A"]; i5.Agent2 = AgentList["B"]; i5.Key = "K"; InitialAssumptions.Add(i3); #endregion #region B bel S controls A<K>B var i6 = new Believe { Agent1 = AgentList["B"] }; var i7 = new Controls { Agent1 = AgentList["S"] }; var i10 = new SharedKey(); i6.Formula = i7; i7.Formula = i10; i10.Agent1 = AgentList["A"]; i10.Agent2 = AgentList["B"]; i10.Key = "K"; InitialAssumptions.Add(i6); #endregion #region A bel fresh(Na) var i11 = new Believe { Agent1 = AgentList["A"], Formula = new Fresh() }; ((Fresh)i11.Formula).Message = "Na"; InitialAssumptions.Add(i11); #endregion #region B bel fresh(Nb) var i12 = new Believe { Agent1 = AgentList["B"], Formula = new Fresh() }; ((Fresh)i12.Formula).Message = "Nb"; InitialAssumptions.Add(i12); #endregion #region A bel S controls fresh(A,K>B) var i13 = new Believe { Agent1 = AgentList["A"] }; var i14 = new Controls { Agent1 = AgentList["S"] }; var i15 = new Fresh(); i13.Formula = i14; i14.Formula = i15; i15.Formula = new SharedKey(); ((SharedKey)i15.Formula).Key = "K"; ((SharedKey)i15.Formula).Agent1 = AgentList["A"]; ((SharedKey)i15.Formula).Agent1 = AgentList["B"]; InitialAssumptions.Add(i13); #endregion }
public void InitializeProtocolSteps() { #region Step 1: A receives {Na, a<Kab>B, fresh(Kab), {A<Kab>B}Kbs}Kas var step1Sees = new Receives { Agent1 = AgentList["A"] }; var encryptionFormula = new Encryption { Key = "Kas" }; step1Sees.Formula = encryptionFormula; var concatenateFormula = new Concatenate(); encryptionFormula.Formula = concatenateFormula; var baseLogicFormula = new BaseLogic { Message = "Na" }; concatenateFormula.Formulas.Add(baseLogicFormula); var sharedKeyFormula = new SharedKey { Key = "Kab", Agent1 = AgentList["A"], Agent2 = AgentList["B"] }; concatenateFormula.Formulas.Add(sharedKeyFormula); var freshFormula = new Fresh { Message = "Kab" }; concatenateFormula.Formulas.Add(freshFormula); var encryptionFormula2 = new Encryption { Key = "Kbs" }; var sharedKeyFormula2 = new SharedKey() { Key = "Kab", Agent1 = AgentList["A"], Agent2 = AgentList["B"] }; encryptionFormula2.Formula = sharedKeyFormula2; concatenateFormula.Formulas.Add(encryptionFormula2); ProtocolSteps.Add(step1Sees); #endregion // pas1 NSSK #region Step 2: B receives {A<Kab>B}Kbs var step2Sees = new Receives { Agent1 = AgentList["B"], Formula = new Encryption() }; ((Encryption)step2Sees.Formula).Formula = new SharedKey(); ((Encryption)step2Sees.Formula).Key = "Kbs"; ((SharedKey)((Encryption)step2Sees.Formula).Formula).Agent1 = AgentList["A"]; ((SharedKey)((Encryption)step2Sees.Formula).Formula).Agent2 = AgentList["B"]; ((SharedKey)((Encryption)step2Sees.Formula).Formula).Key = "Kab"; ProtocolSteps.Add(step2Sees); #endregion // pas2 NSSK #region Step 3: A receives {Nb,A<Kab>B}Kab var step3Sees = new Receives { Agent1 = AgentList["A"], Formula = new Encryption() }; ((Encryption)step3Sees.Formula).Key = "Kab"; ((Encryption)step3Sees.Formula).Formula = new Concatenate(); var par1 = new BaseLogic { Message = "Nb" }; ((Concatenate)((Encryption)step3Sees.Formula).Formula).Formulas.Add(par1); var par2 = new SharedKey { Key = "Kab", Agent1 = AgentList["A"], Agent2 = AgentList["B"] }; ((Concatenate)((Encryption)step3Sees.Formula).Formula).Formulas.Add(par2); ProtocolSteps.Add(step3Sees); //pas3 NSSK #endregion #region Step 4: B receives {Nb,A<Kab>B}Kab var step4Sees = new Receives() { Agent1 = AgentList["B"], Formula = new Encryption() }; ((Encryption)step4Sees.Formula).Key = "Kab"; ((Encryption)step4Sees.Formula).Formula = new Concatenate(); var param1 = new BaseLogic { Message = "Nb" }; ((Concatenate)((Encryption)step4Sees.Formula).Formula).Formulas.Add(param1); var param2 = new SharedKey { Key = "KB", Agent1 = AgentList["A"], Agent2 = AgentList["B"] }; ((Concatenate)((Encryption)step4Sees.Formula).Formula).Formulas.Add(param2); ProtocolSteps.Add(step4Sees); //pas4 NSSK #endregion }