示例#1
0
        public async Task <UserWaifusAPI> GetUserWaifus(ulong userId)
        {
            try
            {
                IUser user = _client.GetUser(userId) ?? await _restClient.GetUserAsync(userId) as IUser;

                using (var soraContext = new SoraContext())
                {
                    var userwaifus = new UserWaifusAPI();
                    var userdb     = Utility.OnlyGetUser(userId, soraContext);
                    if (userdb == null || userdb.UserWaifus.Count == 0)
                    {
                        userwaifus.Success = false;
                        return(userwaifus);
                    }

                    userwaifus.Success   = true;
                    userwaifus.Username  = user?.Username ?? "Undefined";
                    userwaifus.AvatarUrl = user?.GetAvatarUrl();

                    foreach (var userWaifu in userdb.UserWaifus)
                    {
                        var waifu = soraContext.Waifus.FirstOrDefault(x => x.Id == userWaifu.WaifuId);
                        if (waifu == null)
                        {
                            continue;
                        }

                        userwaifus.Waifus.Add(new UserWaifuAPI()
                        {
                            Count      = userWaifu.Count,
                            Id         = waifu.Id,
                            ImageUrl   = waifu.ImageUrl,
                            Name       = waifu.Name,
                            Rarity     = WaifuService.GetRarityString(waifu.Rarity),
                            SortRarity = waifu.Rarity
                        });
                    }

                    if (userwaifus.Waifus.Count == 0)
                    {
                        userwaifus.Success = false;
                        return(userwaifus);
                    }

                    userwaifus.Waifus = userwaifus.Waifus.OrderByDescending(x => x.SortRarity).ToList();

                    return(userwaifus);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(null);
        }
        private async Task <List <InstagramModel> > GetWaifus()
        {
            var waifus = await WaifuService.GetWaifus(page);

            page++;
            if (waifus.Count == 0)
            {
                page = page--;
            }
            return(waifus.Select(w => new InstagramModel {
                PostImage = w.Image, ProfilePicture = w.User.ImgProfile, UserName = w.User.Name
            }).ToList());
        }
示例#3
0
 public WaifuModule(WaifuService waifuService)
 {
     _waifuService = waifuService;
 }