Пример #1
0
        public BotAPI(Proxy proxy = null)
        {
            Configs  = BotManager.Core.Configs;
            Dialogs  = BotManager.Core.Dialogs;
            Commands = BotManager.Core.Commands;

            ContextController = new UserInputContextController();
            UiController      = BotManager.Core.Repository.CreateUiDispatcher(ContextController);
            UsersController   = BotManager.Core.Repository.CreateUserController();
            DataParser        = new DataParser();

            // start telegram api initializing
            HttpClient httpClient = null;

            try
            {
                BotManager.Core?.LogController?.LogSystem(new DebugMessage($"Start initializing Telegram Bot Api...\r\nUse proxy: {Configs.UseProxy}"));

                if (Configs.UseProxy)
                {
                    BotManager.Core?.LogController?.LogImportant(new DebugMessage($"Proxy enabled. Use proxy: <<xxx>>"));
                    // init httpClient
                    httpClient = new HttpClient();

                    BotManager.Core?.LogController?.LogImportant(new DebugMessage($"Proxy NOT IMPLEMENTED"));
                }

                Api                        = new TelegramBotClient(Configs.BotHash, httpClient);
                Api.OnMessage             += Api_OnMessage;
                Api.OnCallbackQuery       += Api_OnCallbackQuery;
                Api.OnInlineQuery         += Api_OnInlineQuery;
                Api.OnReceiveError        += Api_OnReceiveError;
                Api.OnReceiveGeneralError += Api_OnReceiveGeneralError;
                Api.OnUpdate              += Api_OnUpdate;

                // here we get some useful bot info and at the same time
                // checks if connection established or not.
                BotManager.Core?.LogController?.LogImportant(new DebugMessage($"Conect Api client with bot token: <<{Configs.BotHash}>> ..."));
                System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
                sw.Start();

                BotInfo = Api.GetMeAsync().Result;
                BotName = BotInfo.Username;
                ContextController.SetIgnored(BotInfo.Id);

                sw.Stop();
                BotManager.Core?.LogController?
                .LogSucces(new DebugMessage($"Conection is cuccess (response time = {sw.Elapsed})\r\n--> Bot Api initialized and ready!"));
            }
            catch (Exception e)
            {
                BotManager.Core?.LogController?.LogCritical(new DebugMessage("Api initialization failed!", "BotApi()", e));
            }
            finally
            {
                httpClient?.Dispose();
            }
        }
Пример #2
0
        public void Can_GetBaseUsers()
        {
            // Arrange
            Mock <IRepository> mockRepository = new Mock <IRepository>();

            mockRepository.Setup(mRepo => mRepo.BaseUsers).Returns(new baseusers[]
            {
                new baseusers
                {
                    Login    = "******",
                    Password = "******",
                    ID       = "d1f7908b-6967-42c2-be5d-b4f157168ac9"
                },
                new baseusers
                {
                    Login    = "******",
                    Password = "******",
                    ID       = "da9e2795-4818-4606-883f-8cf7d0a9c2fb"
                },
                new baseusers
                {
                    Login    = "******",
                    Password = "******",
                    ID       = "713e77ca-d526-49b1-8e34-8b71bc96bcd4"
                }
            }.AsQueryable());


            // Create controller
            BaseUserController controller = new BaseUserController(mockRepository.Object);

            // Act
            var resultIndex   = (IList <baseusers>)controller.Index().Model;
            var resultDetails = (baseusers)controller.Details("da9e2795-4818-4606-883f-8cf7d0a9c2fb").Model;

            // Assert Index
            Assert.AreEqual(resultIndex.Count, 3);
            Assert.AreEqual(resultIndex[0].Login, "Login");
            Assert.AreEqual(resultIndex[2].ID, "713e77ca-d526-49b1-8e34-8b71bc96bcd4");

            // Assert Details
            Assert.AreEqual(resultDetails.Login, "guest");
        }