From aa3678e9673cee864513e44f465398a17cdb3946 Mon Sep 17 00:00:00 2001 From: vsa Date: Sat, 29 Oct 2022 12:00:46 +0700 Subject: [PATCH] 29.10.2022 --- Shop/Shop/Form1.cs | 11 +++++++--- Shop/Shop/Model/CShelf.cs | 42 ++++++++++++++++++++++++++++++++++-- Shop/Shop/Model/CShop.cs | 30 +++++++++++++++++++++++--- Shop/Документ1.vsdx | Bin 0 -> 24122 bytes 4 files changed, 75 insertions(+), 8 deletions(-) create mode 100644 Shop/Документ1.vsdx diff --git a/Shop/Shop/Form1.cs b/Shop/Shop/Form1.cs index dfbe3fb..a0199ba 100644 --- a/Shop/Shop/Form1.cs +++ b/Shop/Shop/Form1.cs @@ -43,14 +43,19 @@ namespace ShopWin private void h_initShop() { _shop = new CShop("Shop1"); - _shop.ShelfList.Add(new CShelf("1")); - _shop.ShelfList.Add(new CShelf("2")); + _shop.ShelfList.Add(new CShelf("1", h_OnBreak)); + _shop.ShelfList.Add(new CShelf("2", h_OnBreak)); _shop.FillTest(3); } + private void h_OnBreak(CShelf pShelf) + { + // + } + private void timer1_Tick(object sender, EventArgs e) { - _shop.Tick(); + // _shop.Tick(); h_RefreshShop(); } } diff --git a/Shop/Shop/Model/CShelf.cs b/Shop/Shop/Model/CShelf.cs index 98ccc28..892b5ec 100644 --- a/Shop/Shop/Model/CShelf.cs +++ b/Shop/Shop/Model/CShelf.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading; namespace ShopWin.Model @@ -21,11 +22,41 @@ namespace ShopWin.Model /// public List ProductList; - public CShelf(string number) + private Action _OnBreak; + + private bool m_isBroken; + /// + /// Свойство сломано ли + /// + public bool IsBroken + { + get { return m_isBroken; } + set + { + if (m_isBroken == value) return; + if (m_isBroken) return; + m_isBroken = value; + + if (m_isBroken) { + if (_OnBreak != null) { + _OnBreak(this); + } + } + } + } + + + /// + /// Конструктор + /// + /// + /// + public CShelf(string number, Action fnOnBreak = null ) { Number = number; MaxWeight = 1000; ProductList = new List(); + _OnBreak = fnOnBreak; } public void FillTest(int iCount) @@ -43,9 +74,16 @@ namespace ShopWin.Model iSumWeight += ProductList[ii].Weight; } + IsBroken = iSumWeight > MaxWeight; return iSumWeight > MaxWeight; } + public void RemoveProduct() + { + if (ProductList.Count > 0) { + ProductList.RemoveAt(0); + } + } } } diff --git a/Shop/Shop/Model/CShop.cs b/Shop/Shop/Model/CShop.cs index 2243aaa..0548b8d 100644 --- a/Shop/Shop/Model/CShop.cs +++ b/Shop/Shop/Model/CShop.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading; namespace ShopWin.Model { @@ -9,20 +10,43 @@ namespace ShopWin.Model public class CShop { private Random _random = new Random(); + private System.Threading.Timer _timer; + + public string Title = ""; public List ShelfList = new List(); public CShop(string title) { Title = title; + _timer = new Timer(h_tick, null, + new TimeSpan(0, 0, 0, 0, 1000), + new TimeSpan(0, 0, 0, 0, 1000) + ); + } + + private void h_tick(object state) + { + this.Tick(); } public void Tick() + { + h_ShelfBroke(); + h_GoodsSold(); + } + + private void h_ShelfBroke() + { + for (int ii = 0; ii < ShelfList.Count; ii++) { + ShelfList[ii].CheckBrokenState(); + } + } + + private void h_GoodsSold() { if (_random.Next(0, 10) == 1) { - if (ShelfList[0].ProductList.Count > 0) { - ShelfList[0].ProductList.RemoveAt(0); - } + ShelfList[0].RemoveProduct(); } } diff --git a/Shop/Документ1.vsdx b/Shop/Документ1.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..26f1f53847218e25346c3cbe23d42af0868759ed GIT binary patch literal 24122 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