public static JObject enc_sess_get_itemlist(FIFakeContext context) { var itemList = context.dbContext.GetList <DBItem>(); InsertUpdated(context, itemList.ToArray()); return(GetDefaultJObject(context)); }
public static JObject enc_sess_shop_buyingredient(FIFakeContext context) { CheckParameterExists(context, "id"); var id = context.body["id"].Value <int>(); var single = context.staticData.GetByID <GDShopIngredient>(id); //Check my level.. var user = context.dbContext.GetSingle <DBUserInfo>(); if (user.userLv < single.unlockLv) { throw new FIException(FIErr.Shop_Ingredient_NotEnoughLevel); } //Check if i have enough money.. if (Storage_CheckCanDisposeItems(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, single.reqGold)) == false) { throw new FIException(FIErr.Shop_Ingredient_NotEnoughGold); } //Insert and dispose.. Storage_DisposeItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, single.reqGold)); Storage_InsertItem(context, Tuple.Create <int, int>(single.item.id, 1)); return(GetDefaultJObject(context)); }
public static JObject enc_sess_craft_getcraftinfo(FIFakeContext context) { #region Get DBCraftingTable List var list = context.dbContext.GetList <DBCraftingTable>(); if (list.Count <= 0) { var created = context.dbContext.Create <DBCraftingTable>(); created.craftingTableID = GDInstKey.CraftingTable__lowTable; list.Add(created); } InsertUpdated(context, list.ToArray()); #endregion #region Get DBCraftingRecipeUnlock List var unlockedRecipeList = context.dbContext.GetList <DBCraftingRecipeUnlock>(); if (unlockedRecipeList.Count <= 0) { var created = context.dbContext.Create <DBCraftingRecipeUnlock>(); created.recipeID = GDInstKey.CraftRecipeData_craftRecipe0; } unlockedRecipeList = context.dbContext.GetList <DBCraftingRecipeUnlock>(); InsertUpdated(context, unlockedRecipeList.ToArray()); #endregion #region Get DBCraftingItem List var makingList = context.dbContext.GetList <DBCraftingItem>(); if (makingList.Count > 0) { InsertUpdated(context, makingList.ToArray()); } #endregion return(GetDefaultJObject(context)); }
public static JObject enc_sess_craft_getcategoryinfo(FIFakeContext context) { //Category var list = context.dbContext.GetList <DBCraftingRecipeCategoryUnlock>(); if (list.Count <= 0) { //Create one category opened! var firstCategory = context.staticData.GetList <GDCraftCategoryInfo>().FirstOrDefault(); var created = context.dbContext.Create <DBCraftingRecipeCategoryUnlock>(); created.categoryID = firstCategory.id; list.Add(created); } InsertUpdated(context, list.ToArray()); //Recipe var recipeList = context.dbContext.GetList <DBCraftingRecipeUnlock>(); if (recipeList.Count <= 0) { var firstCategory = context.staticData.GetList <GDCraftCategoryInfo>().FirstOrDefault(); var firstRecipe = context.staticData.GetList <GDCraftRecipeData>() .Where(x => x.category == firstCategory.type) .FirstOrDefault(); var created = context.dbContext.Create <DBCraftingRecipeUnlock>(); created.recipeID = firstRecipe.id; recipeList.Add(created); } InsertUpdated(context, recipeList.ToArray()); return(GetDefaultJObject(context)); }
static void InsertUpdated(FIFakeContext context, params FIRBaseData[] args) { if (context.Items.ContainsKey("updated") == false) { context.Items.Add("updated", new Dictionary <System.Type, Dictionary <int, FIRBaseData> >()); } var dic = context.Items["updated"] as Dictionary <System.Type, Dictionary <int, FIRBaseData> >; foreach (var item in args) { var curType = item.GetType(); Dictionary <int, FIRBaseData> curDic = null; if (dic.ContainsKey(curType) == false) { curDic = new Dictionary <int, FIRBaseData>(); dic.Add(curType, curDic); } else { curDic = dic[curType]; } if (curDic.ContainsKey(item.uid) == true) { curDic.Remove(item.uid); } curDic.Add(item.uid, item); } }
public static JObject enc_sess_resource_buyitemswithdia(FIFakeContext context) { CheckParameterExists(context, "itemArr"); var itemArr = context.body["itemArr"].ToTupleArr <int, int>(); var merged = Storage_MergeItems(itemArr); //Check if items are all buyable with dia.. int totalDia = 0; foreach (var item in merged) { var data = context.staticData.GetByID <GDItemData>(item.Item1); if (data.diaPrice == 0) { throw new FIException(FIErr.Resource_CannotBuyItemWithDia); } totalDia += data.diaPrice * item.Item2; } //Check can insert items to inventory.. if (Storage_CheckCanInsertItems(context, merged) == false) { throw new FIException(FIErr.Resource_CannotInsertStorageIsFull); } //DisposeDia.. Storage_DisposeItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_diaPoint, totalDia)); Storage_InsertItem(context, merged); return(GetDefaultJObject(context)); }
public static JObject enc_sess_shop_buyinteriorwithdia(FIFakeContext context) { CheckParameterExists(context, "id"); var id = context.body["id"].Value <int>(); var single = context.staticData.GetByID <GDShopInterior>(id); //Check if i have enough money.. if (Storage_CheckCanDisposeItems(context, Tuple.Create <int, int>(GDInstKey.ItemData_diaPoint, single.unlockDia)) == false) { throw new FIException(FIErr.Shop_Interior_NotEnoughDia); } //Check if i already bought.. var myInterior = context.dbContext.GetList <DBInterior>() .Where(x => x.interiorID == single.interior.id) .FirstOrDefault(); if (myInterior != null) { throw new FIException(FIErr.Shop_Interior_AlreadyHasWithDia); } //Dispose.. Storage_DisposeItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_diaPoint, single.unlockDia)); myInterior = context.dbContext.Create <DBInterior>(); myInterior.interiorID = single.interior.id; InsertUpdated(context, myInterior); return(GetDefaultJObject(context)); }
static void CheckParameterExists(FIFakeContext context, params string[] args) { var requiredList = args.ToList(); foreach (var item in args) { var obj = context.body[item]; if (obj != null) { requiredList.Remove(item); } } if (requiredList.Count > 0) { System.Text.StringBuilder builder = new System.Text.StringBuilder(); for (int i = 0; i < requiredList.Count; i++) { builder.Append(requiredList[i]); if (i < requiredList.Count - 1) { builder.Append(","); } } throw new FIException(FIErr.ParameterMissing, builder.ToString()); } }
public static JObject enc_sess_auth_userLogin(FIFakeContext HttpContext) { //Check already logged in.. var userInfoJObject = (HttpContext.Items["sess"] as JObject)["userinfo"] as JObject; if (userInfoJObject != null) { throw new FIException(FIErr.Auth_AlreadyUserLoggedIn); } var authuid = (HttpContext.Items["sess"] as JObject)["authuid"].Value <int>(); //find if there is user data var newUserData = (from item in HttpContext.dbContext.GetList <DBUserInfo>() where item.authUID == authuid select item).FirstOrDefault(); if (newUserData == null) { throw new FIException(FIErr.Auth_NoUserInDatabase, "There is no user data in db"); } var userJObject = JObject.FromObject(newUserData); (HttpContext.Items["sess"] as JObject).Add(new JProperty("userinfo", userJObject)); InsertUpdated(HttpContext, newUserData); return(GetDefaultJObject(HttpContext)); // return GetNoErrJObject( GetArrProperty("updated",new object[]{newUserData}) ); }
public static JObject enc_sess_storage_sellitem(FIFakeContext context) { CheckParameterExists(context, "listOfSellItems"); var list = context.body["listOfSellItems"] as JArray; var listOfItems = new List <Tuple <int, int> >(); foreach (var item in list) { listOfItems.Add(Tuple.Create <int, int>(item["uid"].Value <int>(), item["cnt"].Value <int>())); } //Check every item exists.. var disposingItemArr = listOfItems.ToArray(); if (Storage_CheckCanDisposeItems(context, disposingItemArr) == false) { throw new FIException(FIErr.Storage_CannotDisposeMoreThanHas); } int totalPrice = 0; //Calc price foreach (var item in disposingItemArr) { var staticItem = context.staticData.GetByID <GDItemData>(item.Item1); int singlePrice = staticItem.GetSellPrice(item.Item2); totalPrice += singlePrice; } Storage_DisposeItem(context, disposingItemArr); Storage_InsertItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, totalPrice)); return(GetDefaultJObject(context)); }
public static JObject enc_sess_inctime(FIFakeContext context) { CheckParameterExists(context, "time"); var timespan = context.body["time"].Value <System.TimeSpan>(); loginTime += timespan; return(GetDefaultJObject(context)); }
public static JObject enc_sess_order_accept(FIFakeContext context) { CheckParameterExists(context, "uid"); int uid = context.body["uid"].Value <int>(); if (context.dbContext.ContainsID <DBOrder>(uid) == false) { throw new FIException(FIErr.Order_CannotFindData); } var orderData = context.dbContext.GetByID <DBOrder>(uid); //Check its right time.. if (orderData.waitStartedTime + context.easy.GlobalInfo.orderRegenTime > CurrentTime) { throw new FIException(FIErr.Order_Cooltime); } //Check if I have all needs.. var orderItemList = context.dbContext.GetList <DBOrderItem>().Where(x => x.orderUID == uid).ToList(); var myItemList = context.dbContext.GetList <DBItem>(); var toDisposeList = new List <Tuple <int, int> >(); // var toGiveList = new List<Tuple<int,int>>(); int totalGold = 0; int totalExp = 0; foreach (var item in orderItemList) { var foundItem = myItemList.Where(x => x.itemID == item.itemID).FirstOrDefault(); if (foundItem == null) { throw new FIException(FIErr.Order_CannotDisposeItemDoesntHave); } if (foundItem.count < item.itemCnt) { throw new FIException(FIErr.Order_CannotDisposeItemDoesntHaveEnough); } toDisposeList.Add(Tuple.Create <int, int>(foundItem.itemID, item.itemCnt)); totalGold += item.CalcOrderPrice(context.staticData); totalExp += item.CalcOrderRewardExp(context.staticData); } //All checks out. dispose item. and give item.. AssignOrderRequest(context, orderData, false); InsertUpdated(context, orderData); Storage_DisposeItem(context, toDisposeList.ToArray()); Storage_InsertItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, totalGold), Tuple.Create <int, int>(GDInstKey.ItemData_userExp, totalExp) ); //Achievement.. Achievement_Increase(context, GDAchievementType.OrderCount, 1); return(GetDefaultJObject(context)); }
public static JObject Internal_IsUserLoggedIn(FIFakeContext HttpContext) { var userInfoJObject = (HttpContext.Items["sess"] as JObject)["userinfo"] as JObject; if (userInfoJObject == null) { throw new FIException(FIErr.Auth_UserNotLoggedIn, "user not logged in"); } return(userInfoJObject); }
static void Storage_DisposeItem(FIFakeContext context, params Tuple <int, int>[] args) { foreach (var item in args) { var runtimeItem = context.dbContext.GetList <DBItem>().Where(x => x.itemID == item.Item1).FirstOrDefault(); runtimeItem = runtimeItem ?? context.dbContext.Create <DBItem>(); runtimeItem.itemID = item.Item1; UnityEngine.Debug.Log(string.Format("Dispose itemID={0} itemCnt={1} to={2}", item.Item1, item.Item2, runtimeItem.count)); runtimeItem.count -= item.Item2; InsertUpdated(context, runtimeItem); } }
static void AssignCustomerRequest(FIFakeContext context, DBCustomer customer, bool giveDelay) { //First pick which i have.. List <DBItem> myItems = null; myItems = context.dbContext.GetList <DBItem>() .Where(x => x.count > 0) .Where(x => { var single = context.staticData.GetByID <GDItemData>(x.itemID); return(single.type.IsFlagSet(GDItemDataType.CustomerEat) == true); }).ToList(); if (myItems.Count <= 0) { //Doesnt have anything.. request for that I can make. var listOfAvailable = context.staticData.GetList <GDItemData>() .Where(x => { if (x.type.IsFlagSet(GDItemDataType.CustomerEat) && x.baseLv <= context.easy.UserInfo.userLv) { return(true); } return(false); }).ToList(); if (listOfAvailable.Count <= 0) { throw new FIException(FIErr.Customer_NeedUserCanMakeAtLeastOne); } int randNum = UnityEngine.Random.Range(0, listOfAvailable.Count); customer.itemID = listOfAvailable[randNum].id; customer.itemCnt = UnityEngine.Random.Range(1, 3 + 1); } else { //I have something that i can request!. int randNum = UnityEngine.Random.Range(0, myItems.Count); customer.itemID = myItems[randNum].itemID; int reqCnt = (myItems[randNum].count / 3); if (reqCnt <= 0) { reqCnt = 1; } customer.itemCnt = reqCnt; } if (giveDelay == false) { customer.waitStartedTime = CurrentTime - context.easy.GlobalInfo.customerRegenTime; } else { customer.waitStartedTime = CurrentTime; } }
static void Achievement_Increase(FIFakeContext context, GDAchievementType type, int count = 1) { var single = context.dbContext.GetList <DBAchievementTypeCount>() .Where(x => x.type == type).FirstOrDefault(); if (single == null) { single = context.dbContext.Create <DBAchievementTypeCount>(); single.type = type; } single.cnt += count; InsertUpdated(context, single); }
public static JObject enc_sess_achievement_getlist(FIFakeContext context) { var achievementList = context.dbContext.GetList <DBAchievementCleared>(); var achievementTypeList = context.dbContext.GetList <DBAchievementTypeCount>(); if (achievementList.Count > 0) { InsertUpdated(context, achievementList.ToArray()); } if (achievementTypeList.Count > 0) { InsertUpdated(context, achievementTypeList.ToArray()); } return(GetDefaultJObject(context)); }
public static JObject enc_sess_searchitem_getinfo(FIFakeContext context) { var searchInfo = context.dbContext.GetList <DBSearchItemInfo>().FirstOrDefault(); if (searchInfo == null) { searchInfo = context.dbContext.Create <DBSearchItemInfo>(); searchInfo.isProcessing = false; searchInfo.startedTime = System.DateTime.Now; searchInfo.foundItemID = -1; searchInfo.foundCnt = -1; } InsertUpdated(context, searchInfo); return(GetDefaultJObject(context)); }
static bool Storage_CheckCanDisposeItems(FIFakeContext context, params Tuple <int, int>[] args) { foreach (var item in args) { var runtimeItem = context.dbContext.GetList <DBItem>().Where(x => x.itemID == item.Item1).FirstOrDefault(); if (runtimeItem == null) { return(false); } if (runtimeItem.count < item.Item2) { return(false); } } return(true); }
static void AssignOrderRequest(FIFakeContext context, DBOrder order, bool giveDelay) { //Remove existing items first... var existOrderItemList = context.dbContext.GetList <DBOrderItem>().Where(x => x.orderUID == order.uid).ToList(); foreach (var item in existOrderItemList) { // Debug.LogWarning("Found existing item="+item.orderUID+" id="+item.uid); context.dbContext.Dispose <DBOrderItem>(item.uid); } if (existOrderItemList.Count > 0) { InsertDeleted(context, existOrderItemList.ToArray()); } int availableTypeCnt = UnityEngine.Random.Range(1, 4); var listOfAvailable = context.staticData.GetList <GDItemData>() .Where(x => { if (x.type.IsFlagSet(GDItemDataType.CustomerEat) && x.baseLv <= context.easy.UserInfo.userLv) { return(true); } return(false); }).ToList(); availableTypeCnt = System.Math.Min(availableTypeCnt, listOfAvailable.Count); for (int i = 0; i < availableTypeCnt; i++) { var itemData = context.dbContext.Create <DBOrderItem>(); itemData.orderUID = order.uid; int randNum = Random.Range(0, listOfAvailable.Count); itemData.itemID = listOfAvailable[randNum].id; itemData.itemCnt = Random.Range(listOfAvailable[randNum].baseReqMin, listOfAvailable[randNum].baseReqMax + 1); listOfAvailable.RemoveAt(randNum); InsertUpdated(context, itemData); } if (giveDelay == false) { order.waitStartedTime = CurrentTime - context.easy.GlobalInfo.orderRegenTime; } else { order.waitStartedTime = CurrentTime; } }
public static JObject enc_sess_customer_accept(FIFakeContext context) { CheckParameterExists(context, "uid"); int uid = context.body["uid"].Value <int>(); if (context.dbContext.ContainsID <DBCustomer>(uid) == false) { throw new FIException(FIErr.Customer_CannotFindData); } var customerData = context.dbContext.GetByID <DBCustomer>(uid); //Check its right time.. if (customerData.waitStartedTime + context.easy.GlobalInfo.customerRegenTime > CurrentTime) { throw new FIException(FIErr.Customer_Cooltime); } //Check if I have all needs.. // var myItemList = context.dbContext.GetList<DBItem>(); Tuple <int, int> reqItem = Tuple.Create <int, int>(customerData.itemID, customerData.itemCnt); if (Storage_CheckCanDisposeItems(context, reqItem) == false) { throw new FIException(FIErr.Customer_CannotDisposeItemDoesntHaveEnough); } var itemData = context.staticData.GetByID <GDItemData>(customerData.itemID); int totalGold = itemData.GetCustomerPrice(customerData.itemCnt); int totalExp = 3; Tuple <int, int>[] rewardItemArr = new Tuple <int, int>[] { Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, totalGold), Tuple.Create <int, int>(GDInstKey.ItemData_userExp, totalExp) }; //All checks out. dispose item. and give item.. AssignCustomerRequest(context, customerData, true); InsertUpdated(context, customerData); Storage_DisposeItem(context, reqItem); Storage_InsertItem(context, rewardItemArr); //Achievement.. Achievement_Increase(context, GDAchievementType.CustomerCount, 1); return(GetDefaultJObject(context)); }
static JObject GetDefaultJObject(FIFakeContext context, params JProperty[] args) { var jObj = new JObject(); jObj.Add(new JProperty("err", FIErr.Okay)); InsertUpdated(context, new DBGlobalData() { ServerTime = CurrentTime } ); if (args.Length > 0) { jObj.Add(args); } if (context.Items.ContainsKey("updated") == true) { var listOfItems = new List <object>(); var topDic = context.Items["updated"] as Dictionary <System.Type, Dictionary <int, FIRBaseData> >; foreach (var outer in topDic) { foreach (var inner in outer.Value) { listOfItems.Add(inner.Value); } } jObj.Add(GetArrProperty("updated", listOfItems.ToArray())); } if (context.Items.ContainsKey("deleted") == true) { var listOfItems = new List <object>(); var topDic = context.Items["deleted"] as Dictionary <System.Type, Dictionary <int, FIRBaseData> >; foreach (var outer in topDic) { foreach (var inner in outer.Value) { listOfItems.Add(inner.Value); } } jObj.Add(GetArrProperty("deleted", listOfItems.ToArray())); } return(jObj); }
public static JObject enc_sess_achievement_collect(FIFakeContext context) { CheckParameterExists(context, "id"); var id = context.body["id"].Value <int>(); var staticData = context.staticData.GetByID <GDAchievementData>(id); //Check if this is active achievement.. if (staticData.unlockReq != null) { var precedingAchievement = context.dbContext.GetList <DBAchievementCleared>().Where(x => x.achievementID == staticData.unlockReq.id).FirstOrDefault(); if (precedingAchievement == null) { throw new FIException(FIErr.Achievement_PrecedingAchievementNotCleared); } } //Check if its available.. if (staticData.reqAchiev == GDAchievementType.Invalid) { throw new FIException(FIErr.Achievement_ThisAchievementIsNotForClear); } var progress = context.dbContext.GetList <DBAchievementTypeCount>() .Where(x => x.type == staticData.reqAchiev).FirstOrDefault(); if (progress == null) { throw new FIException(FIErr.Achievement_CannotFindAchievementTypeCountData); } if (progress.cnt < staticData.reqAchievCnt) { throw new FIException(FIErr.Achievement_NotEnoughCnt); } //Can clear var clearedData = context.dbContext.Create <DBAchievementCleared>(); clearedData.achievementID = staticData.id; InsertUpdated(context, clearedData); //Insert reward! Storage_InsertItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_diaPoint, staticData.rewardDiaCnt)); return(GetDefaultJObject(context)); }
public static JObject enc_sess_craft_unlockrecipe(FIFakeContext context) { CheckParameterExists(context, "id"); var id = context.body["id"].Value <int>(); var staticRecipe = context.staticData.GetByID <GDCraftRecipeData>(id); var runtimeRecipe = context.dbContext.GetList <DBCraftingRecipeUnlock>().Where(x => x.recipeID == id).FirstOrDefault(); var userLv = context.dbContext.GetSingle <DBUserInfo>().userLv; var unlockReqLv = staticRecipe.unlockLv; var unlockReqGold = staticRecipe.unlockReqGold; //Check #region Check I already learned recipe if (runtimeRecipe != null) { throw new FIException(FIErr.Crafting_UnlockRecipeAlreadyHave); } #endregion #region Check My level is confirm if (userLv < unlockReqLv) { throw new FIException(FIErr.Crafting_UnlockRecipeCannotLevelBelow); } #endregion #region Check I have enough gold if (Storage_CheckCanDisposeItems(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, unlockReqGold)) == false) { throw new FIException(FIErr.Crafting_UnlockRecipeNotEnoughGold); } #endregion //Action #region DisposeItem Storage_DisposeItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, unlockReqGold)); #endregion #region Insert unlocked data.. runtimeRecipe = context.dbContext.Create <DBCraftingRecipeUnlock>(); runtimeRecipe.recipeID = id; InsertUpdated(context, runtimeRecipe); #endregion return(GetDefaultJObject(context)); }
static void User_InsertExp(FIFakeContext context, int totalExp) { var userInfo = context.dbContext.GetSingle <DBUserInfo>(); var lvInfoList = context.staticData.GetList <GDUserLvInfo>(); if (userInfo.userLv + 1 >= lvInfoList.Count) { //Max level! no need exp.. return; } var lvInfo = lvInfoList[userInfo.userLv + 1]; userInfo.curExp += totalExp; if (userInfo.curExp >= lvInfo.reqExp) { userInfo.curExp -= lvInfo.reqExp; userInfo.userLv++; } InsertUpdated(context, userInfo); }
public static JObject enc_sess_craft_selltable(FIFakeContext context) { CheckParameterExists(context, "uid"); var uid = context.body["uid"].Value <int>(); //Check #region TableExists.. var totalTables = context.dbContext.GetList <DBCraftingTable>(); var runtimeTable = totalTables.Where(x => x.uid == uid).FirstOrDefault(); if (runtimeTable == null) { throw new FIException(FIErr.Crafting_SellTableCannotFindTable); } #endregion #region IsOnlyOneTable? Then dont sell.. if (totalTables.Count <= 1) { throw new FIException(FIErr.Crafting_SellTableCannotSellOnlyOneTable); } #endregion #region Check if there is making item.. var currMakingItemList = context.dbContext.GetList <DBCraftingItem>().Where(x => x.tableUID == runtimeTable.uid).ToList(); if (currMakingItemList.Count > 0) { throw new FIException(FIErr.Crafting_SellTableCannotSellThereIsSomethingMaking); } #endregion //Action #region DisposeTable.. context.dbContext.Dispose <DBCraftingTable>(uid); InsertDeleted(context, runtimeTable); #endregion #region GiveRewards.. var staticData = context.staticData.GetByID <GDCraftingTable>(runtimeTable.craftingTableID); // staticData.sellPrice Storage_InsertItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, staticData.sellPrice)); #endregion return(GetDefaultJObject(context)); }
public static JObject enc_sess_auth_createuserinfo(FIFakeContext HttpContext) { CheckParameterExists(HttpContext, "nick"); var authuid = (HttpContext.Items["sess"] as JObject)["authuid"].Value <int>(); //check already has user data.. var newUserData = (from item in HttpContext.dbContext.GetList <DBUserInfo>() where item.authUID == authuid select item).FirstOrDefault(); if (newUserData != null) { throw new FIException(FIErr.Auth_AlreadyUserCreated, "Already created user"); } //create data in database.. var createdUser = HttpContext.dbContext.Create <DBUserInfo>(); createdUser.authUID = authuid; createdUser.nick = (string)HttpContext.body["nick"]; return(GetNoErrJObject()); }
public static JObject enc_sess_shop_buycraftingtable(FIFakeContext context) { CheckParameterExists(context, "id"); var id = context.body["id"].Value <int>(); var single = context.staticData.GetByID <GDShopCraftingTable>(id); //Check my level.. var user = context.dbContext.GetSingle <DBUserInfo>(); if (user.userLv < single.unlockLv) { throw new FIException(FIErr.Shop_CraftingTable_NotEnoughLevel); } //Check if i have enough money.. if (Storage_CheckCanDisposeItems(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, single.reqGold)) == false) { throw new FIException(FIErr.Shop_CraftingTable_NotEnoughGold); } //Check My table is full.. var listOfTables = context.dbContext.GetList <DBCraftingTable>(); if (listOfTables.Count >= context.easy.GlobalInfo.totalCraftingTableCnt) { throw new FIException(FIErr.Shop_CraftingTable_AlreadyFull); } //Insert and dispose.. Storage_DisposeItem(context, Tuple.Create <int, int>(GDInstKey.ItemData_goldPoint, single.reqGold)); //Create table.. var createdTable = context.dbContext.Create <DBCraftingTable>(); createdTable.craftingTableID = single.table.id; createdTable.createdTime = CurrentTime; InsertUpdated(context, createdTable); return(GetDefaultJObject(context)); }
static void Storage_InsertItem(FIFakeContext context, params Tuple <int, int>[] args) { int totalExp = 0; foreach (var item in args) { if (item.Item1 == GDInstKey.ItemData_userExp) { totalExp += item.Item2; continue; } var runtimeItem = context.dbContext.GetList <DBItem>().Where(x => x.itemID == item.Item1).FirstOrDefault(); runtimeItem = runtimeItem ?? context.dbContext.Create <DBItem>(); runtimeItem.itemID = item.Item1; runtimeItem.count += item.Item2; InsertUpdated(context, runtimeItem); } if (totalExp > 0) { User_InsertExp(context, totalExp); } }
public static JObject enc_sess_customer_getlist(FIFakeContext context) { var list = context.dbContext.GetList <DBCustomer>(); if (list.Count <= 0) { //Create! for (int i = 0; i < MAX_CUSTOMER_CNT; i++) { var single = context.dbContext.Create <DBCustomer>(); var customerDataList = context.staticData.GetList <GDCustomerData>(); single.customerID = customerDataList[UnityEngine.Random.Range(0, customerDataList.Count)].id; InsertUpdated(context, single); AssignCustomerRequest(context, single, true); } } else { InsertUpdated(context, list.ToArray()); } return(GetDefaultJObject(context)); }