Example #1
0
        public void FillTest(int n)
        {
            n = Math.Min(n, 100);
            Items.Clear();
            Users.Clear();
            Supplies.Clear();
            var defImg = new Bitmap(Path.GetFullPath("item.png"));

            for (int i = 0; i < n; i++)
            {
                Items.Add(new Item($"Product_{i}", i % 2 == 0 ? "l" : "kg", i + 1, 10000, defImg));
                Users.Add(new User($"User_{i}", "1234"));
            }

            for (int i = 0; i < n; i++)
            {
                var k = new List <Portion>(10);
                for (int j = 0; j < 10; j++)
                {
                    k.Add(new Portion {
                        Item = Items[(i + j) % n], Amount = 1 + (i + j) % 100
                    });
                    Items[i % n].Sold += 1 + (i + j) % 100;
                }
                Users[i].History = k;
                Supplies.Add(new Supply(k, DateTime.Now - TimeSpan.FromDays(n - i)));
            }
            Supplies.Reverse();
            UpdateSupplies();
        }
Example #2
0
        public Matrix ToMatrix()
        {
            if (Demands.Sum() > Supplies.Sum())
            {
                var difference = Demands.Sum() - Supplies.Sum();

                Supplies.Add(difference);
            }
            else if (Supplies.Sum() > Demands.Sum())
            {
                var difference = Supplies.Sum() - Demands.Sum();

                Demands.Add(difference);
            }


            var newMatrix = new Matrix(Supplies.Count, Demands.Count)
            {
                Demands  = Demands.ToArray(),
                Supplies = Supplies.ToArray()
            };

            for (int i = 0; i < Rows; i++)
            {
                for (int j = 0; j < Columns; j++)
                {
                    newMatrix[i, j] = new Cell
                    {
                        Value = Array[i][j].Value,
                        State = State.NotAllocated
                    };
                }
            }

            return(newMatrix);
        }