示例#1
0
 private Actions(PurchaseActions pActions, UserActions uActions, StoreActions sActions, NotificationManager notification)
 {
     Purchase     = pActions;
     User         = uActions;
     Store        = sActions;
     Notification = notification;
 }
示例#2
0
        public void GetAllFruitsAmount_HappyPath_Test()
        {
            int actual;
            int expected = 398;

            StoreActions baseFruitAmount = new StoreActions();

            actual = baseFruitAmount.GetAllFruitsAmount(List <BaseFruit> fruitsList);

            NUnit.Framework.Assert.AreEqual(expected, actual, $"Expected result is {0}, but actual result was {1}");
        }
示例#3
0
        public void GetAllFruitsAmount_Fail_Test()
        {
            List <int> fruitAmount = new List <int>();

            fruitAmount.Add(100);
            fruitAmount.Add(50);
            fruitAmount.Add(10);
            fruitAmount.Add(200);

            int actual;
            int expected;

            StoreActions baseFruitAmount = new StoreActions();

            actual   = baseFruitAmount.GetAllFruitsAmount(List <int> fruitAmount);
            expected = baseFruitAmount.GetAllFruitsAmount(List <BaseFruit> fruitsList);

            NUnit.Framework.Assert.AreEqual(expected, actual, $"Expected result is {0}, but actual result was {1}");
        }
示例#4
0
        public static string Init(string adminUsername, string adminPassword, string?init_operations_loc, out NotificationManager notification,
                                  out PurchaseActions PurchaseActions, out UserActions UserActions, out StoreActions StoreActions, bool useInMemoryDB = false)
        {
            Logger.writeEvent("SetUp: Initailzing System");
            Json         = new JsonResponse();
            notification = new NotificationManager();
            string result = InitiateMarketFacade(adminUsername, adminPassword, notification, out IMarketFacade newMarketFacade, useInMemoryDB);

            PurchaseActions = new PurchaseActions(newMarketFacade);
            UserActions     = new UserActions(newMarketFacade);
            StoreActions    = new StoreActions(newMarketFacade);
            if (!Json.deserializeSuccess(result))// error on MarketFacade Init
            {
                return(result);
            }
            else if (!ExternalSystemsAreConnected(newMarketFacade))
            {
                Logger.writeEvent("SetUp: External Systems Error");
                return(Json.Create_json_response(false, "External Systems Error"));
            }
            else
            {
                if (init_operations_loc != null)
                {
                    try
                    {
                        string op_lines = File.ReadAllText(init_operations_loc);
                        Run_init_operations(op_lines, UserActions, StoreActions, PurchaseActions);
                    }
                    catch (Exception e)
                    {
                        Logger.writeError(e);
                        Logger.writeEvent("SetUp: Invalid operations File");
                        return(Json.Create_json_response(false, "Invalid operations File"));
                    }
                }
                Logger.writeEvent("SetUp: Initailzation Completed Successfully");
                return(result);
            }
        }
示例#5
0
        private static void SetupMenu()
        {
            if (setupDone)
            {
                return;
            }
            setupDone = true;
            MenuController.AddMenu(mainMenu);

            MenuController.EnableMenuToggleKeyOnController = false;
            MenuController.MenuToggleKey = (Control)0;

            //Buy Menu
            MenuController.AddSubmenu(mainMenu, BuyMenu.GetMenu());

            MenuItem subMenuBuyBtn = new MenuItem(GetConfig.Langs["BuyButton"], " ")
            {
                RightIcon = MenuItem.Icon.ARROW_RIGHT
            };

            mainMenu.AddMenuItem(subMenuBuyBtn);
            MenuController.BindMenuItem(mainMenu, BuyMenu.GetMenu(), subMenuBuyBtn);

            //Sell Menu
            MenuController.AddSubmenu(mainMenu, SellMenu.GetMenu());

            MenuItem subMenuSellBtn = new MenuItem(GetConfig.Langs["SellButton"], " ")
            {
                RightIcon = MenuItem.Icon.ARROW_RIGHT
            };

            mainMenu.AddMenuItem(subMenuSellBtn);
            MenuController.BindMenuItem(mainMenu, SellMenu.GetMenu(), subMenuSellBtn);

            mainMenu.OnMenuClose += (_menu) =>
            {
                StoreActions.ExitBuyStore();
            };
        }
 private void Awake()
 {
     INSTANCE = this;
 }
示例#7
0
        private static void Run_init_operations(string init_operations, UserActions userActions, StoreActions storeActions, PurchaseActions purchaseActions)
        {
            string script_header = @"
        using ServiceLayer.Services;
        using ServiceLayer;
        using System;
        public class ActionsRunner : IActionsRunner {
            public void Run(UserActions userActions, StoreActions storeActions, PurchaseActions purchaseActions, Guid sessionID, JsonResponse Json)
            {
";
            string script_footer = @"
            
            }
        }
        return typeof(ActionsRunner);
";
            var    script        = CSharpScript.Create(script_header + init_operations + script_footer,
                                                       ScriptOptions.Default.WithReferences(Assembly.GetExecutingAssembly()));

            script.Compile();
            var runner_type = (Type)script.RunAsync().Result.ReturnValue;
            var runner      = (IActionsRunner)Activator.CreateInstance(runner_type);

            runner.Run(userActions, storeActions, purchaseActions, Guid.NewGuid(), new JsonResponse());
        }
示例#8
0
        private static void SetupMenu()
        {
            if (setupDone)
            {
                return;
            }
            setupDone = true;
            MenuController.AddMenu(sellMenu);

            MenuController.EnableMenuToggleKeyOnController = false;
            MenuController.MenuToggleKey = (Control)0;

            MenuController.AddSubmenu(sellMenu, sellMenuConfirm);

            MenuItem subMenuConfirmSellBtnYes = new MenuItem("", " ")
            {
                RightIcon = MenuItem.Icon.TICK
            };
            MenuItem subMenuConfirmSellBtnNo = new MenuItem(GetConfig.Langs["SellConfirmButtonNo"], " ")
            {
                RightIcon = MenuItem.Icon.ARROW_LEFT
            };

            sellMenuConfirm.AddMenuItem(subMenuConfirmSellBtnYes);
            sellMenuConfirm.AddMenuItem(subMenuConfirmSellBtnNo);

            sellMenu.OnListItemSelect += (_menu, _listItem, _listIndex, _itemIndex) =>
            {
                indexItem    = _itemIndex;
                quantityItem = _listIndex + 1;
                double totalPrice = double.Parse(GetConfig.Config["Stores"][StoreActions.LaststoreId]["ItemsSell"][_itemIndex]["SellPrice"].ToString()) * quantityItem;
                sellMenuConfirm.MenuTitle      = GetConfig.ItemsFromDB[GetConfig.Config["Stores"][StoreActions.LaststoreId]["ItemsSell"][_itemIndex]["Name"].ToString()]["label"].ToString();
                subMenuConfirmSellBtnYes.Label = string.Format(GetConfig.Langs["SellConfirmButtonYes"], (_listIndex + 1).ToString(), GetConfig.ItemsFromDB[GetConfig.Config["Stores"][StoreActions.LaststoreId]["ItemsSell"][_itemIndex]["Name"].ToString()]["label"].ToString(), totalPrice.ToString());
            };

            sellMenu.OnIndexChange += (_menu, _oldItem, _newItem, _oldIndex, _newIndex) =>
            {
                StoreActions.CreateObjectOnTable(_newIndex, "ItemsSell");
            };

            sellMenu.OnMenuOpen += (_menu) =>
            {
                sellMenu.ClearMenuItems();

                foreach (var item in GetConfig.Config["Stores"][StoreActions.LaststoreId]["ItemsSell"])
                {
                    List <string> quantityList = new List <string>();

                    for (var i = 1; i < 101; i++)
                    {
                        quantityList.Add($"{GetConfig.Langs["Quantity"]} #{i}");
                    }

                    MenuListItem _itemToSell = new MenuListItem(GetConfig.ItemsFromDB[item["Name"].ToString()]["label"].ToString() + $" ${item["BuySell"]}", quantityList, 0, "")
                    {
                    };

                    sellMenu.AddMenuItem(_itemToSell);
                    MenuController.BindMenuItem(sellMenu, sellMenuConfirm, _itemToSell);
                }
                StoreActions.CreateObjectOnTable(_menu.CurrentIndex, "ItemsSell");
            };

            sellMenuConfirm.OnItemSelect += (_menu, _item, _index) =>
            {
                if (_index == 0)
                {
                    StoreActions.SellItemStore(indexItem, quantityItem);
                    sellMenu.OpenMenu();
                    sellMenuConfirm.CloseMenu();
                }
                else
                {
                    sellMenu.OpenMenu();
                    sellMenuConfirm.CloseMenu();
                }
            };
        }
 void Awake()
 {
     INSTANCE = this;
 }
示例#10
0
 internal static void SetUp(PurchaseActions pActions, UserActions uActions, StoreActions sActions, NotificationManager notification)
 {
     instance = new Actions(pActions, uActions, sActions, notification);
 }