public void BotRun() { context.Database.EnsureCreated(); MainProvider provider = new MainProvider(); client = new TelegramBotClient(Constant.Token); CommandProvider commandProvider = new CommandProvider(client, provider); client.StartReceiving(); List <string> commandList = CommandList.GetCommands(); var scope = new ServiceCollection() .AddScoped <IMessageHandler, MessageHandler>(x => new MessageHandler(client, provider, commandProvider)) .AddScoped <ICallbackHandler, CallBackHandler>(i => new CallBackHandler(client, provider)).BuildServiceProvider(); client.OnCallbackQuery += async(object sender, CallbackQueryEventArgs args) => { var callbackHandler = scope.GetService <ICallbackHandler>(); await callbackHandler.BaseCallBackHandler(args); }; client.OnMessage += async(object sender, MessageEventArgs args) => { var handler = scope.GetService <IMessageHandler>(); await handler.BaseHandlerMessage(args, args.Message.Text); }; }
public void DeleteAllAccessTokens() { using (var proc = MainProvider.CreateDataProcedure("TRUNCATE TABLE AccessTokens")) { proc.CommandType = CommandType.Text; proc.ExecuteNonQuery(); } }
public MessageHandler(TelegramBotClient client, MainProvider provider, CommandProvider commandProvider) { this.client = client; this.provider = provider; this.commandProvider = commandProvider; stopChat = new StopChat(client, provider); }
public void DeleteAccessTokensByContent(int contentId) { using (var proc = MainProvider.CreateDataProcedure("DELETE FROM [dbo].[AccessTokens] WHERE [ContentId] = @ContentId") .AddParameter("@ContentId", contentId)) { proc.CommandType = CommandType.Text; proc.ExecuteNonQuery(); } }
public CallBackHandler(TelegramBotClient client, MainProvider provider) { this.provider = provider; this.client = client; ordersCallback = new CallBackOrders(client, provider); offerCallback = new RequestOfferCallBack(client, provider); myOffersCallback = new ShowMyOffersCallBack(client, provider); startDialogCallBack = new StartDialogCallBack(client, provider); showUsersCallback = new CallBackShowUsers(client, provider); }
public void DeleteAccessToken(string tokenValue) { using (var proc = MainProvider.CreateDataProcedure("DELETE FROM [dbo].[AccessTokens] " + $"WHERE [Value] = @Value COLLATE {AccessTokenValueCollationName}") .AddParameter("@Value", tokenValue)) { proc.CommandType = CommandType.Text; proc.ExecuteNonQuery(); } }
public void CleanupAccessTokens() { var sql = "DELETE FROM [dbo].[AccessTokens] WHERE [ExpirationDate] < DATEADD(MINUTE, -30, GETUTCDATE())"; using (var proc = MainProvider.CreateDataProcedure(sql)) { proc.CommandType = CommandType.Text; proc.ExecuteNonQuery(); } }
public AccessToken LoadAccessTokenById(int accessTokenId) { using (var proc = MainProvider.CreateDataProcedure("SELECT TOP 1 * FROM [dbo].[AccessTokens] WHERE [AccessTokenId] = @Id") .AddParameter("@Id", accessTokenId)) { proc.CommandType = CommandType.Text; using (var reader = proc.ExecuteReader()) return(reader.Read() ? GetAccessTokenFromReader(reader) : null); } }
public MessageHandler(TelegramBotClient client, MainProvider provider, CommandProvider commandProvider, AdminHandler adminHandler) { this.client = client; this.provider = provider; this.commandProvider = commandProvider; this.adminHandler = adminHandler; authSystem = new AuthenticateSystem(client, provider); chatCommands = new ChatCommands(client, provider); addCash = new AddCash(client, provider); }
public AccessToken LoadAccessToken(string tokenValue, int contentId, string feature) { var sql = "SELECT TOP 1 * FROM [dbo].[AccessTokens] " + $"WHERE [Value] = @Value COLLATE {AccessTokenValueCollationName} AND [ExpirationDate] > GETUTCDATE() AND " + (contentId != 0 ? $"ContentId = {contentId} AND " : "ContentId IS NULL AND ") + (feature != null ? $"Feature = '{feature}'" : "Feature IS NULL"); using (var proc = MainProvider.CreateDataProcedure(sql) .AddParameter("@Value", tokenValue)) { proc.CommandType = CommandType.Text; using (var reader = proc.ExecuteReader()) return(reader.Read() ? GetAccessTokenFromReader(reader) : null); } }
public AccessToken[] LoadAccessTokens(int userId) { using (var proc = MainProvider.CreateDataProcedure("SELECT * FROM [dbo].[AccessTokens] " + "WHERE [UserId] = @UserId AND [ExpirationDate] > GETUTCDATE()") .AddParameter("@UserId", userId)) { proc.CommandType = CommandType.Text; var tokens = new List <AccessToken>(); using (var reader = proc.ExecuteReader()) while (reader.Read()) { tokens.Add(GetAccessTokenFromReader(reader)); } return(tokens.ToArray()); } }
public void UpdateAccessToken(string tokenValue, DateTime newExpirationDate) { using (var proc = MainProvider.CreateDataProcedure("UPDATE [AccessTokens] " + "SET [ExpirationDate] = @NewExpirationDate " + " OUTPUT INSERTED.AccessTokenId" + " WHERE [Value] = @Value " + $" COLLATE {AccessTokenValueCollationName} AND [ExpirationDate] > GETUTCDATE()") .AddParameter("@Value", tokenValue) .AddParameter("@NewExpirationDate", newExpirationDate)) { proc.CommandType = CommandType.Text; var result = proc.ExecuteScalar(); if (result == null || result == DBNull.Value) { throw new InvalidAccessTokenException("Token not found or it is expired."); } } }
public void SaveAccessToken(AccessToken token) { using (var proc = MainProvider.CreateDataProcedure( "INSERT INTO [dbo].[AccessTokens] " + "([Value],[UserId],[ContentId],[Feature],[CreationDate],[ExpirationDate]) VALUES " + "(@Value, @UserId, @ContentId, @Feature, @CreationDate, @ExpirationDate)" + "SELECT @@IDENTITY") .AddParameter("@Value", token.Value, DbType.String, 1000) .AddParameter("@UserId", token.UserId) .AddParameter("@ContentId", token.ContentId != 0 ? (object)token.ContentId : DBNull.Value, DbType.Int32) .AddParameter("@Feature", token.Feature != null ? (object)token.Feature : DBNull.Value, DbType.String, 1000) .AddParameter("@CreationDate", token.CreationDate) .AddParameter("@ExpirationDate", token.ExpirationDate)) { proc.CommandType = CommandType.Text; var result = proc.ExecuteScalar(); token.Id = Convert.ToInt32(result); } }
public StartDialogCallBack(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public BuisnessCommandsProvider(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public ShowMyOffersCallBack(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public BuisnessRegistration(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public StopChat(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public GenerateButtons(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public ChatCommands(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public CallBackShowUsers(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public PilotCommandProvider(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public AuthenticateSystem(TelegramBotClient client, MainProvider provider) { this.client = client; this.provider = provider; }
public AdminHandler(TelegramBotClient client, MainProvider provider) { this.client = client; this.provider = provider; }
public ShowUsersCommand(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public AddCash(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public CreateBuisnessTask(MainProvider provider, TelegramBotClient client) { this.provider = provider; this.client = client; }
public RequestOfferCallBack(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public ShowOrders(TelegramBotClient client, MainProvider provider) : base(client, provider) { }
public FlyNow(TelegramBotClient client, MainProvider provider) : base(client, provider) { }