예제 #1
0
        public WaifuInfoStats GetFullWaifuInfoAsync(ulong targetId)
        {
            using (var uow = _db.GetDbContext())
            {
                var wi = uow.Waifus.GetWaifuInfo(targetId);
                if (wi is null)
                {
                    wi = new WaifuInfoStats
                    {
                        AffinityCount = 0,
                        AffinityName  = null,
                        ClaimCount    = 0,
                        ClaimerName   = null,
                        Claims        = new List <string>(),
                        Fans          = new List <string>(),
                        DivorceCount  = 0,
                        FullName      = null,
                        Items         = new List <WaifuItem>(),
                        Price         = 1
                    };
                }

                return(wi);
            }
        }
예제 #2
0
        public WaifuInfoStats GetFullWaifuInfoAsync(IGuildUser target)
        {
            using (var uow = _db.GetDbContext())
            {
                var du = uow.DiscordUsers.GetOrCreate(target);
                var wi = uow.Waifus.GetWaifuInfo(target.Id);
                if (wi == null)
                {
                    wi = new WaifuInfoStats
                    {
                        AffinityCount = 0,
                        AffinityName  = null,
                        ClaimCount    = 0,
                        ClaimerName   = null,
                        Claims30      = new List <string>(),
                        DivorceCount  = 0,
                        FullName      = target.ToString(),
                        Items         = new List <WaifuItem>(),
                        Price         = 1
                    };
                }

                return(wi);
            }
        }
예제 #3
0
        /*public async Task<bool> GiftWaifuAsync(ulong from, int count, IUser giftedWaifu, WaifuItem itemObj)
         * {
         *  if (!await _cs.RemoveAsync(from, "Bought waifu item", itemObj.Price*count, gamble: true))
         *  {
         *      return false;
         *  }
         *
         *  using (var uow = _db.UnitOfWork)
         *  {
         *      var w = uow.Waifus.ByWaifuUserId(giftedWaifu.Id, set => set.Include(x => x.Items)
         *          .Include(x => x.Claimer));
         *      if (w == null)
         *      {
         *          uow.Waifus.Add(w = new WaifuInfo()
         *          {
         *              Affinity = null,
         *              Claimer = null,
         *              Price = 1,
         *              Waifu = uow.DiscordUsers.GetOrCreate(giftedWaifu),
         *          });
         *      }
         *
         *      for (int i = 0; i < count; i++)
         *      {
         *          AddItems(giftedWaifu, itemObj);
         *      }
         *
         *      if (w.Claimer?.UserId == from)
         *      {
         *          w.Price += (int)(itemObj.Price * count * 0.95);
         *      }
         *      else
         *          w.Price += (itemObj.Price * count) / 2;
         *
         *      await uow.CompleteAsync();
         *  }
         *
         *  return true;
         * }*/

        /*public void AddItems(IUser giftedWaifu, WaifuItem itemObj)
         * {
         *  using (var uow = _db.UnitOfWork)
         *  {
         *      var w = uow.Waifus.ByWaifuUserId(giftedWaifu.Id, set => set.Include(x => x.Items)
         *          .Include(x => x.Claimer));
         *      w.Items.Add(itemObj);
         *      uow.Complete();
         *  }
         * }*/

        public WaifuInfoStats GetFullWaifuInfoAsync(IGuildUser target)
        {
            using (var uow = _db.UnitOfWork)
            {
                var du   = uow.DiscordUsers.GetOrCreate(target);
                var wi   = uow.Waifus.GetWaifuInfo(target.Id);
                var name = target.Username;
                if (!string.IsNullOrWhiteSpace(target.Nickname))
                {
                    name = target.Nickname;
                }

                if (wi == null)
                {
                    wi = new WaifuInfoStats
                    {
                        AffinityCount = 0,
                        AffinityName  = null,
                        ClaimCount    = 0,
                        ClaimerName   = null,
                        Claims30      = new List <string>(),
                        DivorceCount  = 0,
                        FullName      = name,
                        Items         = new List <WaifuItem>(),
                        Immune        = false,
                        Reputation    = 0,
                        Price         = 1,
                        Info          = null
                    };
                }
                wi.FullName = name;

                return(wi);
            }
        }
예제 #4
0
        public WaifuInfoStats GetCountInfoAsync(IUser target)
        {
            using (var uow = _db.UnitOfWork)
            {
                var wi = uow.Waifus.GetWaifuInfo(target.Id);
                if (wi == null)
                {
                    wi = new WaifuInfoStats
                    {
                        ClaimCount = 0,
                    };
                }

                return(wi);
            }
        }