Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        public FreshDetailViewModel(Fresh fresh)
        {
            _freshDetails = new FreshDetail()
            {
                FreshInfo = fresh, FreshContentSlim = "", FreshContentEx = ""
            };

            Update(_freshDetails.FreshInfo);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 7
0
        /// <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);
            }
        }
Esempio n. 8
0
        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();
            }
        }
Esempio n. 9
0
        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
        }
Esempio n. 10
0
        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
        }
Esempio n. 11
0
 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>");
 }
Esempio n. 12
0
        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
        }
Esempio n. 13
0
        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
        }