Advertisement
Guest User

Untitled

a guest
Dec 9th, 2022
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.04 KB | None | 0 0
  1.         public async Task BuyNumber(string Service, string SelectService, bool call = false)
  2.         {
  3.             bool NoBalance = true;
  4.             var service = ListService().FirstOrDefault(x => x.ID_List == Service);
  5.             var Country = ListCountry().FirstOrDefault(x => x.ID_List == User.CountryDefault);
  6.             if (SelectService.Contains("buy1") && User.Balance >= db.ActivateModel.FirstOrDefault(x => x.IdList == Service).Cost)
  7.             {
  8.                 await BuyActivate(service.ID_Activate, Country.ID_Activate, service, Country, call, SelectService);
  9.                 string Number = User.Number; string Data = User.Data;
  10.                 ServiceReadySms(Number, Data, SelectService);  // Ждёт завершения метода, а надо чтобы работало без ожидания
  11.                 NoBalance = false;
  12.             }
  13.             if (SelectService.Contains("buy2") && call == false && User.Balance >= db.SmsHModel.FirstOrDefault(x => x.IdList == Service).Cost)
  14.             {
  15.                 await BuySmsH(service.ID_SmsHub, Country.ID_Sms, service, Country, SelectService);
  16.                 string Number = User.Number; string Data = User.Data;
  17.                 ServiceReadySms(Number, Data, SelectService); // Ждёт завершения метода, а надо чтобы работало без ожидания
  18.                 //Test();
  19.                 NoBalance = false;
  20.             }
  21.             if (SelectService.Contains("buy3") && User.Balance >= db.FiveSimModel.FirstOrDefault(x => x.IdList == Service).Cost)
  22.             {
  23.                 await BuyFive(service.ID_FiveSim, Country.ID_Five, service, Country, call, SelectService);
  24.                 string Number = User.Number; string Data = User.Data;
  25.                 ServiceReadySms(Number, Data, SelectService); // Ждёт завершения метода, а надо чтобы работало без ожидания
  26.                 NoBalance = false;
  27.             }
  28.             if(NoBalance)
  29.             {
  30.                 await SendNoBalance();
  31.                 return;
  32.             }
  33.             await SaveStatisticks(Service, SelectService);
  34.         }
  35.  
  36.  
  37.  
  38.  
  39. using Get_bot.Sms;
  40. using Get_bot.Keyboards;
  41. using Sms_code_libray;
  42. using Telegram.Bot;
  43. using Telegram.Bot.Types.Enums;
  44. using Telegram.Bot.Types.ReplyMarkups;
  45.  
  46. namespace Get_bot.Bot.Client
  47. {
  48.     public partial class UserClient : SmsGet
  49.     {
  50.         public async void ServiceReadySms(string Number, string ActivationId, string SelectService, int CodeCounter = 0)
  51.         {
  52.             try
  53.             {
  54.                 using (Context context = new())
  55.                 {
  56.                     var user = context.User.FirstOrDefault(x => x.ID == chatId);
  57.                     user.ReuseCode = true;
  58.                     lock (this)
  59.                         context.SaveChanges();
  60.                     if (SelectService.Contains("buy1"))
  61.                     {
  62.                         var message = MessageActivate(Number, ActivationId, user, CodeCounter).Result;
  63.                         await client.SendTextMessageAsync(chatId, message.Message, replyMarkup: message.Inline, parseMode: ParseMode.Markdown);
  64.                     }
  65.                     if (SelectService.Contains("buy2"))
  66.                     {
  67.  
  68.                         var message = MessageActivate(Number, ActivationId, user, CodeCounter).Result;
  69.                         await client.SendTextMessageAsync(chatId, message.Message, replyMarkup: message.Inline, parseMode: ParseMode.Markdown);
  70.                     }
  71.                     if (SelectService.Contains("buy3"))
  72.                     {
  73.                         var message = MessageActivate(Number, ActivationId, CodeCounter, user).Result;
  74.                         await client.SendTextMessageAsync(chatId, message.Message, replyMarkup: message.Inline, parseMode: ParseMode.Markdown);
  75.                     }
  76.                     user.ReuseCode = false;
  77.                     lock (this)
  78.                         context.SaveChanges();
  79.                 }
  80.             }
  81.             catch (Exception ex)
  82.             {
  83.                 string error = ex.ToString();
  84.             }
  85.         }
  86.         async Task<(string Message, InlineKeyboardMarkup Inline)> MessageActivate(string Number, string ActivationId, UserModel.User user, int CodeCounter = 0)
  87.         {
  88.             string Message = ""; InlineKeyboardMarkup Inline = null!;
  89.             ReplyKeyboards reply = new();
  90.             if(CodeCounter > 0)
  91.             {
  92.                 await Activate.ReuseActivation(ActivationId);
  93.             }
  94.                 var result = await Activate.GetStatus(ActivationId, 5, 1200);
  95.             string callback = user.CallBackSelectService;
  96.             if (result.Success)
  97.             {
  98.                 if (user.LangueRussia)
  99.                 {
  100.                     Message = $"*Номер:* `{Number}`\r\n*Код активации:* `{result.Code}`";
  101.                     reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Назад" } });
  102.                 }
  103.                 else
  104.                 {
  105.                     Message = $"*Number:* `{Number}`\r\n*Activation code:* `{result.Code}`";
  106.                     reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Back" } });
  107.                 }
  108.             }
  109.             else
  110.                 if (user.LangueRussia)
  111.             {
  112.                 Message = "Время активации вышло";
  113.                 reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Назад" } });
  114.             }
  115.             else
  116.             {
  117.                 Message = "Activation time out";
  118.                 reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Back" } });
  119.             }
  120.             Inline = reply.InlineGenerateButtons(reply.InlineValues);
  121.             return (Message, Inline);
  122.         }
  123.         async Task<(string Message, InlineKeyboardMarkup Inline)> MessageActivate(string Number, string ActivationId, UserModel.User user, int CodeCounter = 0)
  124.         {
  125.             string Message = ""; InlineKeyboardMarkup Inline = null!;
  126.             ReplyKeyboards reply = new();
  127.             if (CodeCounter > 0)
  128.             {
  129.                 await Activate.ReuseActivation(ActivationId);
  130.             }
  131.             var result = Activate.GetStatus(ActivationId, 5, 1200).Result;
  132.             string callback = user.CallBackSelectService;
  133.             if (result.Success)
  134.             {
  135.                 if (user.LangueRussia)
  136.                 {
  137.                     Message = $"*Номер:* `{Number}`\r\n*Код активации:* `{result.Code}`";
  138.                     reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Назад" } });
  139.                 }
  140.                 else
  141.                 {
  142.                     Message = $"*Number:* `{Number}`\r\n*Activation code:* `{result.Code}`";
  143.                     reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Back" } });
  144.                 }
  145.             }
  146.             else
  147.                 if (user.LangueRussia)
  148.             {
  149.                 Message = "Время активации вышло";
  150.                 reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Назад" } });
  151.             }
  152.             else
  153.             {
  154.                 Message = "Activation time out";
  155.                 reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Back" } });
  156.             }
  157.             Inline = reply.InlineGenerateButtons(reply.InlineValues);
  158.             return (Message, Inline);
  159.         }
  160.         async Task<(string Message, InlineKeyboardMarkup Inline)> MessageActivate(string Number, string ActivationId, int CodeCounter, UserModel.User user)
  161.         {
  162.             string Message = ""; InlineKeyboardMarkup Inline = null!;
  163.             for(int i = 0; i <= CodeCounter; i++)
  164.             {
  165.                 ReplyKeyboards reply = new();
  166.                 var result = await Activate.GetStatus(ActivationId, 5, 900, i);
  167.                 string callback = user.CallBackSelectService;
  168.                 if (result.Success)
  169.                 {
  170.                     if (user.LangueRussia)
  171.                     {
  172.                         Message = $"*Номер:* `{Number}`\r\n*Код активации:* `{result.Code.Sms.Last().Code}`";
  173.                         reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Назад" } });
  174.                     }
  175.                     else
  176.                     {
  177.                         Message = $"*Number:* `{Number}`\r\n*Activation code:* `{result.Code.Sms.Last().Code}`";
  178.                         reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Back" } });
  179.                     }
  180.                 }
  181.                 else
  182.                     if (user.LangueRussia)
  183.                 {
  184.                     Message = "Время активации вышло";
  185.                     reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Назад" } });
  186.                 }
  187.                 else
  188.                 {
  189.                     Message = "Activation time out";
  190.                     reply.InlineValues.Add(new List<ReplyKeyboards.InlineValue>() { new ReplyKeyboards.InlineValue() { ID = callback, Value = "🔙 Back" } });
  191.                 }
  192.                 Inline = reply.InlineGenerateButtons(reply.InlineValues);
  193.             }
  194.             return (Message, Inline);
  195.         }
  196.     }
  197. }
  198.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement