Example #1
0
        public ProcessorSettings GetSettings()
        {
            var telegramSetting = new TelegramSettings {
                Enabled = GetBool("TelegramEnabled"),
                Token   = GetString("TelegramBotToken"),
                ChatId  = GetString("TelegramChatId")
            };
            var elasticSearchClientSettings = new ElasticSearchClientSettings {
                ComponentForIndex = ComponentType.ElasticSearch,
                ElasticSearchUrl  = GetString("ElasticSearchClientUrl"),
                DefaultIndex      = GetString("ElasticSearchClientIndex"),
                FrameSize         = GetInt("ElasticSearchClientFrameSize"),
                ShopName          = GetString("ElasticSearchClientShopName")
            };
            var settings = new ProcessorSettings {
                AttemptsToDownload          = GetInt("AttemptsToDownload"),
                EnableExtendedStatistics    = GetBool("EnableExtendedStatistics"),
                DirectoryPath               = GetString("DirectoryPath"),
                DuplicateFile               = GetString("DuplicateFile"),
                ShowStatistics              = GetBool("ShowStatistics"),
                ElasticSearchClientSettings = elasticSearchClientSettings,
                TelegramSettings            = telegramSetting
            };

            return(settings);
        }
Example #2
0
 public TelegramService(IDatabase database, TelegramSettings settings, IMemoryCache cache, IDatabaseConnector <TelegramDatabaseCredentials> databaseConnector)
 {
     _database          = database;
     _settings          = settings;
     _cache             = cache;
     _databaseConnector = databaseConnector;
 }
Example #3
0
        private void MapTelegramSettings()
        {
            TelegramSettings telegramSettings = new TelegramSettings();

            Configuration.GetSection(nameof(TelegramSettings)).Bind(telegramSettings);
            AppSettingsProvider.TelegramSettings = telegramSettings;
        }
Example #4
0
 public TelegramService(TelegramSettings settings,
                        IEnumerable <ITelegramSubscriber> subscribers, ILogFactory logFactory)
 {
     _settings    = settings;
     _subscribers = subscribers;
     _log         = logFactory.CreateLog(this);
 }
Example #5
0
 public GetSettingsController(Microsoft.Extensions.Options.IOptionsMonitor <TelegramSettings> telegramSettings,
                              Services services)
 {
     _services         = services;
     _telegramService  = services.TelegramService;
     _telegramSettings = telegramSettings.CurrentValue;
 }
Example #6
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            TelegramSettings ts = new TelegramSettings();

            ts.Show();
            ts.Closed += Ts_Closed;
        }
Example #7
0
 public TelegramApiRequest(
     IOptions <TelegramSettings> telegramConfig,
     ILogger <TelegramApiRequest> logger)
 {
     _telegramConfig = telegramConfig.Value;
     _logger         = logger;
 }
Example #8
0
        public ValidationFailure Test(TelegramSettings settings)
        {
            try
            {
                const string title = "Test Notification";
                const string body = "This is a test message from Sonarr";

                SendNotification(title, body, settings);
            }
            catch (Exception ex)
            {
                _logger.Error(ex, "Unable to send test message: " + ex.Message);

                var restException = ex as RestException;

                if (restException != null && restException.Response.StatusCode == HttpStatusCode.BadRequest)
                {
                    var error = Json.Deserialize<TelegramError>(restException.Response.Content);
                    var property = error.Description.ContainsIgnoreCase("chat not found") ? "ChatId" : "BotToken";

                    return new ValidationFailure(property, error.Description);
                }

                return new ValidationFailure("BotToken", "Unable to send test message");
            }

            return null;
        }
Example #9
0
 public TelegramAlertClient(
     HttpClient httpClient,
     IOptions <TelegramSettings> telegramSettings)
 {
     _logger           = Log.ForContext("SourceContext", nameof(TelegramAlertClient));
     _httpClient       = httpClient;
     _telegramSettings = telegramSettings.Value;
 }
 public TelegramController(
     ITelegramBotClient telegramBot,
     TelegramSettings telegramSettings
     )
 {
     _telegramBot = telegramBot;
     _chatId      = telegramSettings.ChatId;
 }
Example #11
0
 public TelegramRequest(
     ILoggerFactory loggerFactory,
     IReceiver fileReciever,
     TelegramSettings telegramConfig)
 // IOptions<TelegramSettings> telegramConfig)
 {
     _loggerFactory  = loggerFactory;
     _receiver       = fileReciever;
     _telegramConfig = telegramConfig;
 }
Example #12
0
 public Telegram(IClientSettings settings)
 {
     if (settings is TelegramSettings telegramSettings)
     {
         _settings = telegramSettings;
     }
     else
     {
         throw new ArgumentException("Wrong settings type for telegram");
     }
 }
        private static TelegramBotClient CreateClientWithProxy(TelegramSettings tgSettings, Socks5Settings socks5Settings)
        {
            var proxy = new HttpToSocks5Proxy(socks5Settings.Host, socks5Settings.Port, socks5Settings.Username, socks5Settings.Password);

            proxy.ResolveHostnamesLocally = true;
            var handler = new HttpClientHandler();

            handler.Proxy    = proxy;
            handler.UseProxy = true;
            var client = new HttpClient(handler);

            return(new TelegramBotClient(tgSettings.BotApiKey, client));
        }
Example #14
0
            private void SetSettingsSettings(TelegramSettings newSettings, bool save)
            {
                var state = _settings.States.FirstOrDefault(x => x.NationalNumber == NationalNumber);

                if (state == null)
                {
                    return;
                }
                state.Settings = newSettings;
                if (save)
                {
                    SaveSettings();
                }
            }
Example #15
0
        public void SendNotification(string title, string message, TelegramSettings settings)
        {
            //Format text to add the title before and bold using markdown
            var text = $"*{title}*\n{message}";
            var client = RestClientFactory.BuildClient(URL);
            var request = new RestRequest("bot{token}/sendmessage", Method.POST);

            request.AddUrlSegment("token", settings.BotToken);
            request.AddParameter("chat_id", settings.ChatId);
            request.AddParameter("parse_mode", "Markdown");
            request.AddParameter("text", text);

            client.ExecuteAndValidate(request);
        }
Example #16
0
        public async Task <bool> Telegram([FromBody] TelegramSettings settings)
        {
            try
            {
                settings.Enabled = true;
                await TelegramNotification.NotifyAsync(new NotificationOptions { NotificationType = NotificationType.Test, RequestId = -1 }, settings);

                return(true);
            }
            catch (Exception e)
            {
                Log.LogError(LoggingEvents.Api, e, "Could not test Telegram");
                return(false);
            }
        }
        public static IServiceCollection AddConfigurations(this IServiceCollection services, IConfiguration configuration)
        {
            dataStoreSettings = new DataStoreSettings();
            telegramSettings  = new TelegramSettings();
            loggingSettings   = new NuciLoggerSettings();

            configuration.Bind(nameof(DataStoreSettings), dataStoreSettings);
            configuration.Bind(nameof(TelegramSettings), telegramSettings);
            configuration.Bind(nameof(NuciLoggerSettings), loggingSettings);

            services.AddSingleton(dataStoreSettings);
            services.AddSingleton(telegramSettings);
            services.AddSingleton(loggingSettings);

            return(services);
        }
Example #18
0
        public override async Task Run(object prm)
        {
            if (IsRunning || _me != null)
            {
                return;
            }
            IsRunning = true;
            try
            {
                Settings = TelegramSettings.Load(SettingsManager.FileSettingsPath);
                if (Settings.TelegramModule == null || string.IsNullOrEmpty(Settings.TelegramModule.Token))
                {
                    await LogHelper.LogError("Token is not set for Telegram module!", Category);

                    return;
                }
                if (Settings.TelegramModule.RelayChannels.Count == 0 || Settings.TelegramModule.RelayChannels.All(a => a.Telegram == 0) ||
                    Settings.TelegramModule.RelayChannels.All(a => a.Discord == 0))
                {
                    await LogHelper.LogError("No relay channels set for Telegram module!", Category);

                    return;
                }
                _client            = new TelegramBotClient(Settings.TelegramModule.Token);
                _client.OnMessage += BotClient_OnMessage;
                if (!await _client.TestApiAsync())
                {
                    await LogHelper.LogError("API ERROR!", Category);

                    return;
                }
                _client.OnReceiveError        += _client_OnReceiveError;
                _client.OnReceiveGeneralError += _client_OnReceiveGeneralError;
                _me = await _client.GetMeAsync();

                _client.StartReceiving();
                await LogHelper.LogInfo("Telegram bot connected!", Category);
            }
            catch (Exception ex)
            {
                await LogHelper.LogEx(ex.Message, ex, Category);
            }
            finally
            {
                IsRunning = false;
            }
        }
        private void ReadTelegramSettings()
        {
            var settingsPath = Path.Combine(Directory.GetCurrentDirectory(), TlgrmFilePath);

            if (File.Exists(settingsPath))
            {
                var jsonSettings = new JsonSerializerSettings();
                jsonSettings.Converters.Add(new StringEnumConverter {
                    CamelCaseText = true
                });
                jsonSettings.ObjectCreationHandling = ObjectCreationHandling.Replace;
                jsonSettings.DefaultValueHandling   = DefaultValueHandling.Populate;

                _tlgrmSettings = SerializeUtils.DeserializeDataJson <TelegramSettings>(settingsPath) ?? new TelegramSettings();
                return;
            }
            _tlgrmSettings = new TelegramSettings();
        }
Example #20
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            if (environment.IsDevelopment())
            {
                appConfiguration = new AppConfiguration(new TelegramSettings(), new SoundCloudSettings());
                configurationRoot.Bind(appConfiguration);
                services.AddSingleton <IAppConfiguration>(appConfiguration);
            }
            else if (environment.IsProduction())
            {
                var envDictionary = new Dictionary <string, string>();
                foreach (var item in Environment.GetEnvironmentVariables())
                {
                    var entry = item is DictionaryEntry dictionaryEntry ? dictionaryEntry : default;
                    envDictionary[entry.Key.ToString()] = entry.Value.ToString();
                }

                var soundCloudSettings = new SoundCloudSettings
                {
                    ClientId = envDictionary[nameof(SoundCloudSettings.ClientId).ToUpper()]
                };
                var telegramSettings = new TelegramSettings
                {
                    BotToken = envDictionary[nameof(TelegramSettings.BotToken).ToUpper()]
                };
                var appConfig = new AppConfiguration(telegramSettings, soundCloudSettings)
                {
                    WebhookUrl     = "https://soundcloud-in-play-tg-bot.herokuapp.com",
                    AllowedUpdates = configurationRoot.GetSection(nameof(AppConfiguration.AllowedUpdates)).Get <UpdateType[]>()
                };
                services.AddSingleton <IAppConfiguration>(appConfig);
            }

            services.AddControllers().AddNewtonsoftJson();
            //services.AddSingleton<IAppConfiguration>(appConfiguration);
            services.AddSingleton <IBotProvider, BotProvider>();
            services.AddHostedService <BotInitializerHostedService>();
            services.AddScoped <ICurrentMessageProvider, CurrentMessageProvider>();
            services.AddHttpClient();
            services.AddTelegramCommands();
            services.AddSoundCloudServices();
            services.AddCaches();
        }
Example #21
0
        //public Session Session
        //{
        //    get { return this.session; }
        //}


        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="authModel">Telegram authenthication model</param>
        /// <param name="settings">Telegram settings for client</param>
        public TelegramClient(
            TelegramSettings settings = null)
        {
            settings ??= new TelegramSettings();
            settings.SessionStore ??= new FileSessionStore();
            settings.SessionId ??= "session";

            //settings.Handler ??= null;
            //settings.DcIpVersion = DataCenterIPVersion.Default;

            //this.apiHash = apiHash;
            //this.apiId = apiId;
            //this.handler = handler;
            //this.dcIpVersion = dcIpVersion;

            this._session  = TelegramSession.TryLoadOrCreateNew(settings.SessionStore, settings.SessionId);
            this.transport = new TcpTransport(
                this._session.DataCenter.Address,
                this._session.DataCenter.Port,
                this.handler);
        }
Example #22
0
        public void Load()
        {
            var fileSource = LoadFromFile();
            var json       = JToken.Parse(fileSource);

            Bittrex = new BittrexSettings
            {
                Key    = json["bittrex"]["key"].ToObject <string>(),
                Secret = json["bittrex"]["secret"].ToObject <string>(),
                Market = json["bittrex"]["market"].ToObject <string>(),

                RiskManager = new BittrexRiskManagerSettings
                {
                    BaseCurrency = json["bittrex"]["riskManager"]["baseCurrency"].ToObject <string>(),
                    Type         = json["bittrex"]["riskManager"]["type"].ToObject <string>() == "percent" ?
                                   RiskManagerBalanceType.Percent : RiskManagerBalanceType.Fixed,
                    Percent         = json["bittrex"]["riskManager"]["percent"].ToObject <int>(),
                    Amount          = json["bittrex"]["riskManager"]["amount"].ToObject <decimal>(),
                    BalanceMinLimit = json["bittrex"]["riskManager"]["balanceMinLimit"].ToObject <decimal>()
                }
            };
            Db = new MongoDbSettings
            {
                DbConnectoin = json["database"]["connectionString"].ToObject <string>(),
                DbName       = json["database"]["dataBaseName"].ToObject <string>()
            };
            RabbitMQ = new RabbitMqSettings
            {
                Host             = new Uri(json["rabbitMq"]["host"].ToObject <string>()),
                ConcurrencyLimit = json["rabbitMq"]["concurrencyLimit"].ToObject <int>()
            };
            Telegram = new TelegramSettings
            {
                ApiKey      = json["telegram"]["apiKey"].ToObject <int>(),
                ApiHash     = json["telegram"]["apiHash"].ToObject <string>(),
                PhoneNumber = json["telegram"]["phoneNumber"].ToObject <string>(),
                Enabled     = json["telegram"]["enabled"].ToObject <bool>()
            };
        }
Example #23
0
        public TelegramBot(Settings settings, XabeConverter xabeConverter)
        {
            _settings       = settings.Telegram;
            _videoСonverter = xabeConverter;
            //_voiceСonverter = new VoskAudioRecognizer();

            Console.WriteLine("Starting Telegram Bot");

            var cts = new CancellationTokenSource();
            var cancellationToken = cts.Token;

            var receiverOptions = new ReceiverOptions
            {
                AllowedUpdates = { } // receive all update types
            };

            _client = new TelegramBotClient(_settings.Token);
            _client.StartReceiving(HandleUpdateAsync, HandleErrorAsync, receiverOptions, cancellationToken);

            var(id, name) = GetBotInfoAsync().Result;

            Console.WriteLine($"Telegram Bot init successfully. ID: {id} | Name: {name}");
        }
Example #24
0
            private static void Save(Service service, uint accountId, TelegramSettings settings)
            {
                try
                {
                    settings.AccountId = accountId;

                    SettingsManager.Save(service, settings);

                    if (ServiceManager.IsRunning(service))
                    {
                        Utils.DebugPrint("Service is running. Aborting....");
                        ServiceManager.Abort(service).Wait();
                    }

                    Utils.DebugPrint("Starting the service...!");
                    ServiceManager.Start(service, true);
                }
                catch (Exception ex)
                {
                    Utils.DebugPrint("Failed to save the Telegram service: " + ex);
                }

                MutableSettingsManager.Delete <TelegramSetupSettings>();
            }
Example #25
0
            private static void Save(Service service, uint accountId, TelegramSettings settings)
            {
                try
                {
                    settings.AccountId = accountId;

                    SettingsManager.Save(service, settings);

                    if (ServiceManager.IsRunning(service))
                    {
                        Utils.DebugPrint("Service is running. Aborting....");
                        ServiceManager.Abort(service).Wait();
                    }

                    Utils.DebugPrint("Starting the service...!");
                    ServiceManager.Start(service, true);
                }
                catch (Exception ex)
                {
                    Utils.DebugPrint("Failed to save the Telegram service: " + ex);
                }

                MutableSettingsManager.Delete<TelegramSetupSettings>();
            }
Example #26
0
            public Info(Service service, TabbedPage tabs, Verify verify)
            {
                _phoneNumberContainer                   = new StackLayout();
                _phoneNumberContainer.Orientation       = StackOrientation.Horizontal;
                _phoneNumberContainer.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumber                   = new PhoneEntry();
                _phoneNumber.Placeholder       = Localize.GetString("TelegramPhoneNumber");
                _phoneNumber.HorizontalOptions = LayoutOptions.FillAndExpand;
                _phoneNumberContainer.Children.Add(_phoneNumber);
                var programmaticChange = false;

                _firstName             = new Entry();
                _firstName.Placeholder = Localize.GetString("TelegramFirstName");

                _lastName             = new Entry();
                _lastName.Placeholder = Localize.GetString("TelegramLastName");

                _loadConversations                 = new CheckBox();
                _loadConversations.DefaultText     = Localize.GetString("TelegramLoadConversations");
                _loadConversations.CheckedChanged += (sender, e) =>
                {
                    //TODO:
                };
                _loadConversations.Checked = true;

                _next = new Button();
                _next.HorizontalOptions = LayoutOptions.FillAndExpand;
                _next.Text            = Localize.GetString("TelegramNext");
                _next.TextColor       = Color.White;
                _next.BackgroundColor = Color.FromHex("77D065");
                _next.Clicked        += async(sender, e) =>
                {
                    if (String.IsNullOrWhiteSpace(_firstName.Text))
                    {
                        await DisplayAlert(Localize.GetString("TelegramInvalidFirstNameTitle"), Localize.GetString("TelegramInvalidFirstNameMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    if (String.IsNullOrWhiteSpace(_lastName.Text))
                    {
                        await DisplayAlert(Localize.GetString("TelegramInvalidLastNameTitle"), Localize.GetString("TelegramInvalidLastNameMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    Func <Task> invalidNumber = () =>
                    {
                        return(DisplayAlert(Localize.GetString("TelegramInvalidNumberTitle"),
                                            Localize.GetString("TelegramInvalidNumberMessage"), Localize.GetString("TelegramOkay")));
                    };

                    if (!PhoneBook.IsPossibleNumber(_phoneNumber.Text))
                    {
                        await invalidNumber();

                        return;
                    }

                    var number          = PhoneBook.TryGetPhoneNumberLegible(_phoneNumber.Text);
                    var formattedNumber = PhoneBook.FormatPhoneNumber(number);

                    if (formattedNumber == null)
                    {
                        await invalidNumber();

                        return;
                    }

                    var nationalNumber = new string(formattedNumber.Item2.Where(Char.IsDigit).ToArray());

                    if (!await DisplayAlert(Localize.GetString("TelegramConfirmNumberTitle"),
                                            Localize.GetString("TelegramConfirmNumberMessage").Replace("[number]", number),
                                            Localize.GetString("TelegramYes"),
                                            Localize.GetString("TelegramNo")))
                    {
                        return;
                    }

                    _progressBar.IsVisible = true;
                    _next.IsEnabled        = false;
                    _firstName.IsEnabled   = false;
                    _lastName.IsEnabled    = false;
                    _phoneNumber.IsEnabled = false;
                    DependencyService.Get <IPluginPageControls>().BackPressEnabled = false;

                    TelegramSettings settings = null;

                    var skipSave = false;
                    var state    = _settings.States.FirstOrDefault(x => x.NationalNumber == nationalNumber);
                    if (state != null && state.Settings != null)
                    {
                        skipSave = true;
                        settings = state.Settings;
                    }
                    else
                    {
                        settings = await Task <TelegramSettings> .Factory.StartNew(() => { return(Telegram.GenerateAuthentication(service)); });
                    }

                    var firstName = _firstName.Text.Trim();
                    var lastName  = _lastName.Text.Trim();

                    DependencyService.Get <IPluginPageControls>().BackPressEnabled = true;
                    _firstName.IsEnabled   = true;
                    _lastName.IsEnabled    = true;
                    _phoneNumber.IsEnabled = true;
                    _next.IsEnabled        = true;
                    _progressBar.IsVisible = false;

                    if (settings == null)
                    {
                        await DisplayAlert(Localize.GetString("TelegramAuthGenerationFailedTitle"),
                                           Localize.GetString("TelegramAuthGenerationFailedMessage"), Localize.GetString("TelegramOkay"));

                        return;
                    }

                    if (!skipSave)
                    {
                        _settings.States.Add(new Setup.TelegramSetupSettings.State
                        {
                            Settings       = settings,
                            NationalNumber = nationalNumber
                        });
                        SaveSettings();
                    }

                    verify.CountryCode    = formattedNumber.Item1;
                    verify.NationalNumber = nationalNumber;
                    verify.FirstName      = firstName;
                    verify.LastName       = lastName;
                    tabs.Children.Add(verify);
                    tabs.CurrentPage = verify;
                };

                _image        = new Image();
                _image.Source = ImageSource.FromUri(
                    new Uri("https://lh4.ggpht.com/fuvTtxbZ1-dkEmzUMfKcgMJwW8PyY4fhJJ_NKT-NpIQJukszEY2GfCkJUF5ch6Co3w=w300"));
                _image.WidthRequest  = 100;
                _image.HeightRequest = 100;

                _progressBar = new ActivityIndicator();
                _progressBar.VerticalOptions = LayoutOptions.EndAndExpand;
                _progressBar.IsRunning       = true;
                _progressBar.IsVisible       = false;

                var stackLayout = new StackLayout();

                stackLayout.Spacing         = 20;
                stackLayout.Padding         = 25;
                stackLayout.VerticalOptions = LayoutOptions.Start;
                var children = stackLayout.Children;

                children.Add(_image);
                children.Add(_firstName);
                children.Add(_lastName);
                children.Add(_phoneNumberContainer);
                children.Add(_loadConversations);
                var nextLayout = new StackLayout();

                nextLayout.Spacing     = 20;
                nextLayout.Orientation = StackOrientation.Horizontal;
                nextLayout.Children.Add(_next);
                nextLayout.Children.Add(_progressBar);
                children.Add(nextLayout);

                Content = new ScrollView {
                    Content = stackLayout
                };
                Title = Localize.GetString("TelegramInformationTitle");
            }
 private static TelegramBotClient CreateClientWithoutProxy(TelegramSettings settings)
 => new TelegramBotClient(settings.BotApiKey);
Example #28
0
 public TelegramChannel(IOptionsMonitor <TelegramSettings> rulesAccessor, ILogger logger) : base(logger)
 {
     telegramSettings = rulesAccessor.CurrentValue;
 }
        public TelegramNotificationSender(TelegramSettings telegramSettings)
        {
            this.telegramSettings = telegramSettings;

            botClient = new TelegramBotClient(telegramSettings.AccessToken);
        }
Example #30
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddDbContextPool <DataContext>(options =>
                                                    options.UseSqlite(Configuration.GetConnectionString("DefaultConnection"), x =>
                                                                      x.SuppressForeignKeyEnforcement())
                                                    );
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            services.AddMemoryCache();

            // Setting Telegram
            var telegramConfig = new TelegramSettings();

            Configuration.Bind("TelegramSettings", telegramConfig);
            services.AddSingleton(telegramConfig);
            services.AddScoped <ITelegramRequest, TelegramRequest>();
            //services.Configure<TelegramSettings>(Configuration.GetSection("TelegramSettings");

            services.Configure <FilePaths>(Configuration.GetSection("FilePaths"));
            services.AddSingleton <IReceiver, FileReceiver>();
            services.AddSingleton(typeof(IMyLogger <>), typeof(MyLogger <>));

            services.AddScoped <IDataRepository, DataRepository>();
            services.AddScoped <IAuthRepository, AuthRepository>();
            services.AddScoped <IBackwardRepository, IBackwardRepository>();
            // Setting BD
            services.AddScoped <ITelegramView, TelegramView>();
            services.AddSingleton(provider => new MapperConfiguration(cfg => {
                var scope   = provider.GetRequiredService <IServiceScopeFactory>().CreateScope();
                var context = scope.ServiceProvider.GetService <DataContext>();

                cfg.AddProfile(new AutoMapperProfiles(context));
            }).CreateMapper());
            //services.AddAutoMapper(typeof(Startup));

            // Messages
            services.AddScoped <DataChecker>();
            services.AddScoped <MainMenuChecker>();
            //services.AddScoped<SimpleCommandChecker>();
            services.AddScoped <IMessageChecker>(provider => {
                var _messageChecker = (IMessageChecker)provider.GetService <DataChecker>();
                _messageChecker
                .SetNext(provider.GetService <MainMenuChecker>());
                //.SetNext(provider.GetService<SimpleCommandChecker>());

                return(_messageChecker);
            });

            services.AddScoped <DataCallbackChecker>();
            services.AddScoped <SettingsChecker>();
            services.AddScoped <CategoryCallbackChecker>();
            services.AddScoped <ICallbackChecker>(provider => {
                var _callbackChecker = (ICallbackChecker)provider.GetService <DataCallbackChecker>();
                _callbackChecker
                .SetNext(provider.GetService <SettingsChecker>())
                .SetNext(provider.GetService <CategoryCallbackChecker>());

                return(_callbackChecker);
            });

            services.AddTransient <Seed>();
        }
 public TelegramService(TelegramSettings settings, ILogFactory logFactory)
 {
     _settings = settings;
     _log      = logFactory.CreateLog(this);
 }
Example #32
0
 private void SetSettingsSettings(TelegramSettings newSettings, bool save)
 {
     var state = _settings.States.FirstOrDefault(x => x.NationalNumber == NationalNumber);
     if (state == null)
         return;
     state.Settings = newSettings;
     if (save)
     {
         SaveSettings();
     }
 }
Example #33
0
        public static void RegisterCredentials(ContainerBuilder builder)
        {
            builder.Register(b =>
            {
                var configuration = b.Resolve <IConfiguration>();
                var credentials   = new HangfireDatabaseCredentials();
                credentials.BuildConnectionString(
                    configuration["Hangfire:Sql:Url"],
                    configuration["Hangfire:Sql:Port"].To <int>(),
                    configuration["Hangfire:Sql:Catalog"],
                    configuration["Hangfire:Sql:User"],
                    configuration["Hangfire:Sql:Password"]);

                return(credentials);
            }).SingleInstance();

            builder.Register(b =>
            {
                var configuration = b.Resolve <IConfiguration>();
                var credentails   = new IdentityModelCredentials()
                {
                    ClientId     = configuration["Auth:Client:Id"],
                    ClientSecret = configuration["Auth:Client:Secret"]
                };

                return(credentails);
            }).SingleInstance();

            builder.Register(b =>
            {
                var configuration = b.Resolve <IConfiguration>();
                var credentails   = new RedisCredentials();
                credentails.BuildConnectionString(
                    configuration["Redis:Name"],
                    configuration["Redis:Password"],
                    configuration["Redis:Port"].To <int>(),
                    isSsl: true,
                    allowAdmin: true);

                return(ConnectionMultiplexer.Connect(credentails.ConnectionString));
            }).SingleInstance();

            builder.Register(b =>
            {
                var configuration = b.Resolve <IConfiguration>();
                var credentials   = new TelegramDatabaseCredentials();
                credentials.BuildConnectionString(
                    configuration["Api:Sql:Url"],
                    configuration["Api:Sql:Port"].To <int>(),
                    configuration["Api:Sql:Catalog"],
                    configuration["Api:Sql:User"],
                    configuration["Api:Sql:Password"]);

                return(credentials);
            }).SingleInstance();

            builder.Register(b =>
            {
                var configuration = b.Resolve <IConfiguration>();
                var settings      = new TelegramSettings()
                {
                    AppHash         = configuration["Telegram:Settings:AppHash"],
                    AppId           = configuration["Telegram:Settings:AppId"].To <int>(),
                    ServerAddress   = configuration["Telegram:Settings:ServerAddress"],
                    ServerPort      = configuration["Telegram:Settings:ServerPort"].To <int>(),
                    ServerPublicKey = configuration["Telegram:Settings:ServerPublicKey"]
                };

                return(settings);
            }).SingleInstance();

            builder.Register(b =>
            {
                var configuration           = b.Resolve <IConfiguration>();
                var connectionStringBuilder = new EventHubsConnectionStringBuilder(configuration["EventHub:ConnectionString"])
                {
                    EntityPath = configuration["EventHub:EntityPath"]
                };

                return(connectionStringBuilder);
            }).SingleInstance();
        }