public async Task GetGiftHistory()
        {
            try
            {
                string msg = "";

                GiftHistoryManager giftHistoryManager = new GiftHistoryManager();
                UserManager        userManager        = new UserManager();
                ServerManager      serverManager      = new ServerManager();

                var gifts = await giftHistoryManager.GetUsersGiftByServerId(Convert.ToString(Context.Guild.Id));

                if (gifts != null)
                {
                    StringBuilder bld = new StringBuilder();
                    bld.AppendLine("Gifts given by the bot");
                    foreach (var g in gifts)
                    {
                        var user = await userManager.GetUserbyId(g.uId);

                        var server = await serverManager.getServerbyId(g.ServerId);

                        bld.AppendFormat("\nId :{0}", g.Id);
                        bld.AppendFormat("\nUserName :{0}", user.Username);
                        bld.AppendFormat("\nBirthday  :{0}", g.CharacterName);
                        bld.AppendFormat("\nGiftet at :{0}", g.GiftedAt);
                        bld.AppendFormat("\nYear: :{0}", g.Year);
                        bld.AppendFormat("\nServer Name :{0}", server.Name);
                        bld.AppendLine();
                    }
                    msg = bld.ToString();
                }
                else
                {
                    StringBuilder bld = new StringBuilder();
                    bld.AppendLine("Registered users with the bot");
                    bld.AppendLine("There is no history of gifts  ");
                    msg = bld.ToString();
                }

                var channel = await Context.User.GetOrCreateDMChannelAsync();

                if (channel != null)
                {
                    await channel.SendMessageAsync(msg);
                }
                //await ReplyAsync(msg);
            }
            catch (Exception ex)
            {
                CommonTools.ErrorReporting(ex);
            }
        }
        public async Task CleartGiftHistory()
        {
            try
            {
                string msg = "";

                GiftHistoryManager giftHistoryManager = new GiftHistoryManager();
                UserManager        userManager        = new UserManager();
                ServerManager      serverManager      = new ServerManager();

                var gifts = await giftHistoryManager.GetGiftHistory();

                if (gifts != null)
                {
                    await giftHistoryManager.DelGiftsByServerid(Convert.ToString(Context.Guild.Id));

                    msg = "Cleared the Gift  History! " + Context.Guild.Name;
                }
                else
                {
                    msg = "The Gift  History was empty " + Context.Guild.Name;
                }


                var channel = await Context.User.GetOrCreateDMChannelAsync();

                if (channel != null)
                {
                    await channel.SendMessageAsync(msg);
                }
                //await ReplyAsync(msg);
            }
            catch (Exception ex)
            {
                CommonTools.ErrorReporting(ex);
            }
        }
        public override async Task GuildMemberUpdated(SocketGuildUser arg1, SocketGuildUser arg2)
        {
            try
            {
                await base.GuildMemberUpdated(arg1, arg2);


                if (arg1.Status != arg2.Status && arg1.IsBot == false && arg2.IsBot == false)
                {
                    if (arg1.Status != Discord.UserStatus.Online && arg2.Status == Discord.UserStatus.Online)
                    // && arg2.Status!= Discord.UserStatus.DoNotDisturb && arg2.)
                    {
                        UserManager usermngr = new UserManager();
                        var         user     = await usermngr.GetUserbyId(Convert.ToString(arg1.Id));

                        if (user != null)
                        {
                            DateTime           date     = DateTime.Now;
                            GiftHistoryManager giftmngr = new GiftHistoryManager();


                            var birth = user.Birthday;
                            if (date.Day == birth.Day && date.Month == birth.Month)
                            {
                                FavoriteCharactersManager fvmngr = new FavoriteCharactersManager();

                                var fchar = fvmngr.GetUserFavorite(Convert.ToString(user.Id));
                                if (fchar != null && await giftmngr.isGiftGiven(user.Id, Convert.ToString(arg1.Guild.Id), DateTime.Now.Year) == false)
                                {
                                    int    i   = 0;
                                    Random rnd = new Random();
                                    i = rnd.Next(fchar.Count - 1);
                                    if (i > 0)
                                    {
                                        DanbooruDownloader san  = new DanbooruDownloader();
                                        string             file = await san.DownloadRandomimage(fchar[i].CharacterName);

                                        var dmchannel = await arg1.GetOrCreateDMChannelAsync();

                                        if (dmchannel != null)
                                        {
                                            if (file == null)
                                            {
                                                //await dmchannel.SendMessageAsync(String.Format("Did not find a random image to send you {0} from danbooru complex for {1}.",
                                                //    arg2.Mention, fchar[i].CharacterName));
                                                return;
                                            }
                                            Stream fil = File.OpenRead(file);

                                            await dmchannel.SendFileAsync(fil, file, String.Format("{0} Happy Birthday ! Sending you a random image for : {1} from danbooru (based boards )  as a present!"
                                                                                                   , arg2.Mention, fchar[i].CharacterName));
                                        }
                                        File.Delete(file);
                                        await giftmngr.AddGift(user.Id, fchar[i].CharacterName, Convert.ToString(arg1.Guild.Id));
                                    }
                                }
                            }
                        }
                    }
                }



                //return Task.CompletedTask;
            }
            catch (Exception ex)
            {
                CommonTools.ErrorReporting(ex);
                //return Task.CompletedTask;
            }
        }