public async Task <IActionResult> getformitems(int serviceid) { List <FormItem> formitems = null; ItemError e = new ItemError(); CancellationTokenSource cts; cts = new CancellationTokenSource(); cts.CancelAfter(settings.Value.redisCancellationToken); Redis redis = new Redis(settings, cache); string key = "formitems_" + serviceid; //check redis cache for details try { formitems = await redis.getformitems(key, cts.Token); if (formitems != null && formitems.Count > 0) { return(CreatedAtAction("getformitems", formitems)); } } catch (Exception ex) { Console.Write(ex.Message); } //Get cost items from Sql try { formitems = await serviceSqlRepo.GetFormItems(serviceid); } catch (Exception ex) { Console.Write(ex.Message); } //Write to Redis try { if (formitems != null && formitems.Count > 0) { await redis.setformitems(key, formitems, cts.Token); } } catch (Exception ex) { Console.Write(ex.Message); } return(CreatedAtAction("getformitems", formitems)); }
public void TakeLoot(Player Plr, byte Id) { if (Id >= Loots.Length || Loots[Id] == null) Plr.SendLocalizeString("", GameData.Localized_text.TEXT_CANT_LOOT_THAT); else { ItemError Error = Plr.ItmInterface.CreateItem(Loots[Id].Item, 1); if (Error == ItemError.RESULT_OK) Loots[Id] = null; else Plr.SendLocalizeString("", GameData.Localized_text.TEXT_OVERAGE_CANT_LOOT); } }
static public void BuyItemVendor(Player Plr, InteractMenu Menu, uint Entry) { int Num = (Menu.Page * MAX_ITEM_PAGE) + Menu.Num; ushort Count = (ushort)(Menu.Count > 0 ? Menu.Count : 1); List <Creature_vendor> Vendors = GetVendorItems(Entry); Log.Success("BuyItemVendor", "Count=" + Count + ",Num=" + Num + ",Size=" + Vendors.Count); if (Vendors.Count <= Num) { return; } if (!Plr.HaveMoney((Vendors[Num].Price) * Count)) { Plr.SendLocalizeString("", GameData.Localized_text.TEXT_MERCHANT_INSUFFICIENT_MONEY_TO_BUY); return; } foreach (KeyValuePair <UInt16, Item_Info> Kp in Vendors[Num].ItemsReqInfo) { if (!Plr.ItmInterface.HasItemCount(Kp.Value.Entry, Kp.Key)) { Plr.SendLocalizeString("", GameData.Localized_text.TEXT_MERCHANT_FAIL_PURCHASE_REQUIREMENT); return; } } ItemError Error = Plr.ItmInterface.CreateItem(Vendors[Num].Info, Count); if (Error == ItemError.RESULT_OK) { Plr.RemoveMoney((Vendors[Num].Price) * Count); foreach (KeyValuePair <UInt16, Item_Info> Kp in Vendors[Num].ItemsReqInfo) { Plr.ItmInterface.RemoveItem(Kp.Value.Entry, Kp.Key); } } else if (Error == ItemError.RESULT_MAX_BAG) { Plr.SendLocalizeString("", GameData.Localized_text.TEXT_MERCHANT_INSUFFICIENT_SPACE_TO_BUY); } else if (Error == ItemError.RESULT_ITEMID_INVALID) { } }
public ItemError Use(Connection c) { ItemError err = ItemError.None; if (c.Character.CanUseItemNow(this)) { switch (_template.ItemFunction) { case ItemTemplate.ItemUseFunction.GainHealth: if (c.Character.CurHP < c.Character.MaxHP) { _durability--; // Adjust character health c.Character.TakeDamage(-_template.ItemFunctionParam); // Send health change to client c.SendPacket(new HealthChangePacket(c.Character.CurHP)); } else { err = ItemError.UnableToUseItem; } break; default: case ItemTemplate.ItemUseFunction.None: break; } } else { err = ItemError.YouCanUseItAfterTheCooldownTimeRunsOut; } return(err); }
public PostBoardWebhookRequest(string boardId, WebhookTypes webhookType, WebhookCodes webhookCode, string itemId, int newTransactions, ItemError error = null) { BoardId = boardId; WebhookType = webhookType; WebhookCode = webhookCode; ItemId = itemId; NewTransactions = newTransactions; Error = error; }