public void OnDiff(BaseModelDiff.DiffExpiredItem diff) { bool flag = false; if (Utility.IsExist(diff.add)) { List <ItemInfo> list = null; int num = -1; int i = 0; for (int count = diff.add.Count; i < count; i++) { ExpiredItem o = diff.add[i]; List <ItemInfo> list2 = list; if (num != o.itemId || list == null) { list2 = GetItemList((ItemInfo x) => x.tableID == o.itemId, 1); num = o.itemId; list = list2; } foreach (ItemInfo item in list2) { if (item.expiredAtItem == null) { item.expiredAtItem = new List <ExpiredItem>(); } item.expiredAtItem.Add(o); } } flag = true; } if (Utility.IsExist(diff.update)) { List <ItemInfo> list3 = null; int num2 = -1; int j = 0; for (int count2 = diff.update.Count; j < count2; j++) { ExpiredItem o2 = diff.update[j]; List <ItemInfo> list4 = list3; if (num2 != o2.itemId || list3 == null) { list4 = GetItemList((ItemInfo x) => x.tableID == o2.itemId, 1); num2 = o2.itemId; list3 = list4; } foreach (ItemInfo item2 in list4) { ExpiredItem expiredItem = item2.expiredAtItem.Find((ExpiredItem y) => y.uniqId.Equals(o2.uniqId)); expiredItem.expiredAt = o2.expiredAt; expiredItem.used = o2.used; } } flag = true; } if (flag) { MonoBehaviourSingleton <GameSceneManager> .I.SetNotify(GameSection.NOTIFY_FLAG.UPDATE_ITEM_INVENTORY); } }
private void DoWork(object state) { DateTime now = DateTime.Now; var scope = scopeFactory.CreateScope(); var dbContext = scope.ServiceProvider.GetRequiredService <AuctionDbContext>(); var latestSessionBid = dbContext.Bids .Where(x => x.AccountId == 1 && x.Item.BidStatus == BidStatus.Complete && x.IsLatestBidWinner) .OrderByDescending(x => x.BidSession).FirstOrDefault(); if (latestSessionBid != null) { var latestEndBid = dbContext.Bids .Where(x => x.BidSession == latestSessionBid.BidSession) .OrderByDescending(x => x.CurrentBid) .FirstOrDefault(); var existingExpiredItem = dbContext.ExpiredItems .FirstOrDefault(x => x.ItemId == latestEndBid.ItemId && x.SessionId == latestEndBid.BidSession); if (existingExpiredItem == null) { var model = new ExpiredItem { ItemId = latestEndBid.ItemId, ExpiredDate = now, SessionId = latestEndBid.BidSession, IsSeen = false }; dbContext.ExpiredItems.Add(model); dbContext.SaveChanges(); _logger.LogInformation("Expired Item ID: { Expired Item}", latestEndBid.ItemId + "was sent notification successful!"); } else { _logger.LogInformation("Notification of expired Item ID: { Expired Item}", latestEndBid.ItemId + " is existed"); } hubContext.Clients.All.SendAsync("refreshNotifications"); } else { _logger.LogInformation("Expired Item: There is no expired items"); } var count = Interlocked.Increment(ref executionCount) + "----" + now; _logger.LogInformation("Timed Hosted Service is working"); _logger.LogInformation("Count {Count}", count); }
public override void UpdateUI() { SetLabelText((Enum)UI.STR_TITLE, StringTable.Get(STRING_CATEGORY.COMMON, 103u)); SetLabelText((Enum)UI.STR_TITLE_REFLECT, StringTable.Get(STRING_CATEGORY.COMMON, 103u)); List <ItemInfo> itemList = MonoBehaviourSingleton <InventoryManager> .I.GetItemList((ItemInfo x) => x.tableData.type == ITEM_TYPE.TICKET, 0); ExpiredItem[] showList = GetItemList(itemList).ToArray(); GetCtrl(UI.LBL_CAUTION).GetComponent <UILabel>().supportEncoding = true; string text = StringTable.Get(STRING_CATEGORY.SHOP, 14u); SetLabelText((Enum)UI.LBL_CAUTION, text); SetActive((Enum)UI.BTN_TO_GACHA, MonoBehaviourSingleton <GameSceneManager> .I.GetCurrentSceneName() != "ShopScene"); SetActive((Enum)UI.GRD_LIST, showList.Length > 0); SetActive((Enum)UI.STR_ORDER_NON_LIST, showList.Length == 0); SetActive((Enum)UI.OBJ_ACTIVE_ROOT, showList.Length > 0); SetActive((Enum)UI.OBJ_INACTIVE_ROOT, showList.Length == 0); if (showList.Length == 0) { SetLabelText((Enum)UI.LBL_MAX, "0"); SetLabelText((Enum)UI.LBL_NOW, "0"); UIScrollView component = GetCtrl(UI.SCR_LIST).GetComponent <UIScrollView>(); if (component != null) { component.set_enabled(false); component.verticalScrollBar.alpha = 0f; } } else { pageMax = 1 + (showList.Length - 1) / 10; bool flag = pageMax > 1; SetActive((Enum)UI.OBJ_ACTIVE_ROOT, flag); SetActive((Enum)UI.OBJ_INACTIVE_ROOT, !flag); SetLabelText((Enum)UI.LBL_MAX, pageMax.ToString()); SetLabelText((Enum)UI.LBL_NOW, nowPage.ToString()); int num = 10 * (nowPage - 1); int num2 = (nowPage != pageMax) ? 10 : (showList.Length - num); ExpiredItem[] array = new ExpiredItem[num2]; Array.Copy(showList, num, array, 0, num2); showList = array; SetGrid(UI.GRD_LIST, "GachaTicketListItem", showList.Length, true, delegate(int i, Transform t, bool is_recycle) { ExpiredItem expiredItem = showList[i]; ItemTable.ItemData itemData = Singleton <ItemTable> .I.GetItemData((uint)expiredItem.itemId); UITexture component2 = FindCtrl(t, UI.TEX_ICON).GetComponent <UITexture>(); ResourceLoad.LoadItemIconTexture(component2, itemData.iconID); SetLabelText(t, UI.LBL_NAME, itemData.name); string empty = string.Empty; string empty2 = string.Empty; if (string.IsNullOrEmpty(expiredItem.expiredAt)) { empty = "-"; empty2 = "-"; } else { empty = expiredItem.expiredAt; empty2 = TimeManager.GetRemainTimeToText(expiredItem.expiredAt, 1); } SetLabelText(t, UI.LBL_LIMIT, empty); SetLabelText(t, UI.LBL_COUNTDOWN, empty2); }); } }