private static void DatabasePersonalInit(CommandEventArgs e) { using (var context = new discordbotEntities_draw()) { string str = e.Server.Id.ToString(); var entity = context.personal.Where(input => (input.userid == e.User.NicknameMention && input.channal == str)).FirstOrDefault(); if (entity != null) { entity.username = e.User.Name; entity.SSR = 0; entity.SR = 0; entity.R = 0; entity.totaldrawcount = 0; } else { context.personal.Add(new personal { userid = e.User.NicknameMention, username = e.User.Name, channal = e.Server.Id.ToString(), SSR = 0, SR = 0, R = 0, totaldrawcount = 0 }); } context.SaveChanges(); } }
private static async Task DatabaseRankProb(CommandEventArgs e, string type, int count) { using (var context = new discordbotEntities_draw()) { string str = e.Server.Id.ToString(); IQueryable <personal> entitylist; if (type.ToLower().Equals("bottom")) { entitylist = context.personal.Where(input => (input.channal == str && input.totaldrawcount >= count)).OrderBy(t => (Math.Round((double)t.SSR / (double)t.totaldrawcount, 4) * 100)); } else { entitylist = context.personal.Where(input => (input.channal == str && input.totaldrawcount >= count)).OrderByDescending(t => (Math.Round((double)t.SSR / (double)t.totaldrawcount, 4) * 100)); } string rank_result = "```\n"; if (type.ToLower().Equals("bottom")) { rank_result += "千川ちひろ模擬抽卡 非洲排行榜QQ.......(至少" + DrawCount + "抽的情況下)\n\n"; } else { rank_result += "千川ちひろ模擬抽卡 歐洲排行榜.........(至少" + DrawCount + "抽的情況下)\n\n"; } int i = 1; foreach (var entity in entitylist) { if (i == 6) { break; } if (entity.totaldrawcount != 0) { rank_result += ((i + ".").PadRight(3) + (Math.Round((double)entity.SSR / (double)entity.totaldrawcount, 4) * 100).ToString("f2").PadLeft(6) + "%").PadRight(15) + entity.username + "\n"; } else { rank_result += ((i + ".").PadRight(3) + "0.00".PadLeft(6) + "%").PadRight(15) + entity.username + "\n"; } i++; } rank_result += "```"; await e.Channel.SendMessage(rank_result); } }
private static void DatabasePersonalUpdate(CommandEventArgs e, int countSSR, int countSR, int countR, int count) { using (var context = new discordbotEntities_draw()) { string str = e.Server.Id.ToString(); var entity = context.personal.Where(input => (input.userid == e.User.NicknameMention && input.channal == str)).FirstOrDefault(); if (entity != null) { entity.username = e.User.Name; entity.SSR += countSSR; entity.SR += countSR; entity.R += countR; entity.totaldrawcount += count; } context.SaveChanges(); } }
private static async Task DatabasePersonalProb(CommandEventArgs e) { using (var context = new discordbotEntities_draw()) { string str = e.Server.Id.ToString(); var entity = context.personal.Where(input => (input.userid == e.User.NicknameMention && input.channal == str)).FirstOrDefault(); if (entity != null) { if (entity.totaldrawcount == 0) { await e.Channel.SendMessage(e.User.NicknameMention + " SSR機率約為:" + "0.00%" + " 已抽0張"); } else { await e.Channel.SendMessage(e.User.NicknameMention + " SSR機率約為:" + (Math.Round((double)entity.SSR / (double)entity.totaldrawcount, 4) * 100).ToString("f2") + "%" + " 已抽" + entity.totaldrawcount + "張"); } } else { await e.Channel.SendMessage(e.User.NicknameMention + " 您還沒有建立資料請輸入:\n!draw -init"); } } }