private void LoadApiDictionary() { apiDictionary = new Dictionary <string, FunctionCaller>(); FunctionCaller loginGuest = new FunctionCaller() { }; loginGuest.functionNoParams = authentication.Login; apiDictionary.Add("Login as guest", loginGuest); FunctionCaller loginUser = new FunctionCaller(); loginUser.function2Params = (username, password) => authentication.Login(username, password); loginUser.parameters.Add("Username"); loginUser.parameters.Add("Password"); apiDictionary.Add("Login user with id", loginUser); FunctionCaller createAccount = new FunctionCaller(); createAccount.function3Params = (email, username, password) => authentication.CreateAccount(email, username, password); createAccount.parameters.Add("Email"); createAccount.parameters.Add("Username"); createAccount.parameters.Add("Password"); apiDictionary.Add("Create account with email", createAccount); FunctionCaller changeBackgroundColor = new FunctionCaller(); changeBackgroundColor.functionNoParams = () => backgroundColorChanger.ChangeBackgroundColor(); apiDictionary.Add("Change background color", changeBackgroundColor); FunctionCaller saveBackgroundColor = new FunctionCaller(); saveBackgroundColor.functionNoParams = () => backgroundColorChanger.SaveBackgroundColor(); apiDictionary.Add("Save background color", saveBackgroundColor); FunctionCaller getBackgroundColor = new FunctionCaller(); getBackgroundColor.functionNoParams = () => backgroundColorChanger.GetBackgroundColor(); apiDictionary.Add("Get background color", getBackgroundColor); FunctionCaller createGroup = new FunctionCaller(); createGroup.function3Params = (adminUsername, password, groupName) => groupController.CreateGroup(adminUsername, password, groupName); createGroup.parameters.Add("Admin Username"); createGroup.parameters.Add("Password"); createGroup.parameters.Add("Group Name"); apiDictionary.Add("Create group", createGroup); FunctionCaller invitePlayerToGroup = new FunctionCaller(); invitePlayerToGroup.function4Params = (adminUsername, password, groupName, usernameToInvite) => groupController.InvitePlayerToGroup(adminUsername, password, groupName, usernameToInvite); invitePlayerToGroup.parameters.Add("Admin Username"); invitePlayerToGroup.parameters.Add("Password"); invitePlayerToGroup.parameters.Add("Group Name"); invitePlayerToGroup.parameters.Add("Username To Invite"); apiDictionary.Add("Invite player to group", invitePlayerToGroup); FunctionCaller acceptInvitationToGroup = new FunctionCaller(); acceptInvitationToGroup.function3Params = (usernameToAccept, password, groupName) => groupController.AcceptInvitationToGroup(usernameToAccept, password, groupName); acceptInvitationToGroup.parameters.Add("Username To Accept"); acceptInvitationToGroup.parameters.Add("Password"); acceptInvitationToGroup.parameters.Add("Group Name"); apiDictionary.Add("Accept invitation to group", acceptInvitationToGroup); FunctionCaller fetchApiPolicy = new FunctionCaller(); fetchApiPolicy.functionNoParams = () => apiAccessPolicyController.FetchApiPolicy(); apiDictionary.Add("Fetch API access policy", fetchApiPolicy); FunctionCaller readDropTableData = new FunctionCaller(); readDropTableData.function1Param = (tableId) => dropTableController.ReadDropTableData(tableId); readDropTableData.parameters.Add("Drop table id"); apiDictionary.Add("Read drop table data", readDropTableData); FunctionCaller grantRandomItemToUser = new FunctionCaller(); grantRandomItemToUser.function4Params = (adminUsername, password, usernameReceivingItem, dropTableId) => dropTableController.GrantRandomItemToUser(adminUsername, password, usernameReceivingItem, dropTableId); grantRandomItemToUser.parameters.Add("Admin Username"); grantRandomItemToUser.parameters.Add("Password"); grantRandomItemToUser.parameters.Add("Username Receiving Item"); grantRandomItemToUser.parameters.Add("Drop Table Id"); apiDictionary.Add("Grant user random item", grantRandomItemToUser); FunctionCaller purchaseItem = new FunctionCaller(); purchaseItem.function4Params = (username, password, itemId, price) => playerInventoryController.PurchaseItem(username, password, itemId, price); purchaseItem.parameters.Add("Username"); purchaseItem.parameters.Add("Password"); purchaseItem.parameters.Add("Item Id"); purchaseItem.parameters.Add("Price"); apiDictionary.Add("Purchase item", purchaseItem); FunctionCaller getInventory = new FunctionCaller(); getInventory.function2Params = (username, password) => playerInventoryController.GetInventory(username, password); getInventory.parameters.Add("Username"); getInventory.parameters.Add("Password"); apiDictionary.Add("Get inventory", getInventory); FunctionCaller consumeItem = new FunctionCaller(); consumeItem.function3Params = (username, password, itemId) => playerInventoryController.ConsumeItem(username, password, itemId); consumeItem.parameters.Add("Username"); consumeItem.parameters.Add("Password"); consumeItem.parameters.Add("Item Id"); apiDictionary.Add("Consume item", consumeItem); FunctionCaller redeemCoupon = new FunctionCaller(); redeemCoupon.function3Params = (username, password, couponCode) => couponController.RedeemCoupon(username, password, couponCode); redeemCoupon.parameters.Add("Username"); redeemCoupon.parameters.Add("Password"); redeemCoupon.parameters.Add("Coupon Code"); apiDictionary.Add("Redeem Coupon", redeemCoupon); FunctionCaller updatePlayerStatistic = new FunctionCaller(); updatePlayerStatistic.function2Params = (username, password) => statisticsController.UpdatePlayerStatistics(username, password); updatePlayerStatistic.parameters.Add("Username"); updatePlayerStatistic.parameters.Add("Password"); apiDictionary.Add("Update player statistic", updatePlayerStatistic); }