private void AddOrderEntry(OrderEntry orderEntry)
        {
            var savedOrders = GetSavedOrders();

            Debug.LogError(orderEntry.uniqueCode);

            if (savedOrders == null)
            {
                savedOrders = new OrderTableSaveData
                {
                    orderEntries = new List <OrderEntry> {
                        orderEntry
                    }
                };
            }
            else
            {
                if (savedOrders.orderEntries.Count < maxNumberOfEntries)
                {
                    savedOrders.orderEntries.Add(orderEntry);
                }

                if (savedOrders.orderEntries.Count > maxNumberOfEntries)
                {
                    savedOrders.orderEntries.Clear();
                    savedOrders.orderEntries.Add(orderEntry);
                    Debug.LogError("Error - Max number of orders have been entered into order table");
                }
            }

            _orderCatalogueEntryTransformList = new List <Transform>();
            UpdateUi(savedOrders, _orderCatalogueEntryTransformList);
            SaveOrders(savedOrders);
        }
        private void UpdateUi(OrderTableSaveData savedOrders, List <Transform> transformList)
        {
            if (savedOrders == null)
            {
                Debug.LogError("OrderTableSaveData returned null");
                return;
            }

            var orderHolder = Resources.Load <GameObject>("Prefabs/Content/OrderEntryContent");

            var viewport = GameObjectFinder.FindSingleObjectByName("OrderEntryViewport").transform;
            var orderEntryContentHolder = Instantiate(orderHolder, viewport);

            foreach (Transform child in orderEntryContentHolder.transform)
            {
                Destroy(child.gameObject);
            }

            foreach (var entry in savedOrders.orderEntries)
            {
                var templateHeight = 100f;
                var entryObject    = Instantiate(orderEntryObject, orderEntryContentHolder.transform);
                entryObject.GetComponent <OrderEntryUniqueCode>().InitialiseOrderEntry(entry);
                var entryRectTransform = entryObject.GetComponent <RectTransform>();
                entryRectTransform.anchoredPosition = new Vector2(0, -templateHeight * transformList.Count);
                entryObject.gameObject.SetActive(true);

                SetStatusDropdownOption(entry.currentStatus, entryObject.transform);

                transformList.Add(entryObject.transform);
            }
        }
 public void SaveOrders(OrderTableSaveData orderTableSaveData)
 {
     using (StreamWriter stream = new StreamWriter(JsonTablePath))
     {
         var json = JsonUtility.ToJson(orderTableSaveData, true);
         stream.Write(json);
     }
 }