Example #1
0
        public AppSettings(IHostingEnvironment env, RequestDelegate next, IConfiguration config)
        {
            Console.WriteLine("AppSettings AppSettings configure");
            _next            = next;
            AppConfiguration = config;
            var builder = new ConfigurationBuilder()
                          .SetBasePath(env.ContentRootPath)
                          .AddJsonFile("appsettings.json")
                          .AddJsonFile("usersettings.json");

            // создаем конфигурацию
            AppConfiguration = builder.Build();
            isDevEnvironment = env.IsDevelopment();

            //Костыль, здесь этого быть не должно, но боты должны запускаться после настройки конфигурации. Хотя, это в каком то смысле тоже часть конфигурации
            Console.WriteLine("pre bot run");
            new MainBot();
            new AdminBot();
            Console.WriteLine("post bot run");
            using (var db = new MobileContext())
            {
                db.Database.Migrate();
            }
        }
Example #2
0
        void Bot_OnMessage(object sender, MessageEventArgs e)
        {
            Message message = e.Message;

            if (message.Text == null)
            {
                return;
            }

            //Запись в админского бота с логом
            Console.WriteLine($"@{message.From.Username}: " + message.Text);
            AdminBot.adminLog(message);

            //проверка наличия человека в базе
            Participant participant;

            using (MobileContext db = new MobileContext())
            {
                //var parts = db.Participants.ToList();
                //var books = db.Bookings.ToList();
                //db.Bookings.Add(new Booking(books[0].Participant, DateTime.Now, DateTime.Now));
                //db.SaveChanges();
                //db.Participants.Add(new Participant("Виталий", "RunGiantBoom", new DateTime(2019, 12, 25, 12, 40, 20), "owner"));
                //db.SaveChanges();
                try
                {
                    participant = db.Participants.Single(c => c.Alias == message.From.Username);
                }
                catch (Exception ex)
                {
                    Message mes = mainbot.SendTextMessageAsync(message.Chat.Id, "Привет. Мы пока не знакомы. Напиши @RunGiantBoom чтобы получить доступ к музкомнате.", replyToMessageId: message.MessageId).Result;
                    AdminBot.adminLog("Exception " + ex.Message);
                    return;
                }
            }

            //вызов команды при её наличии и выход из функции
            switch (message.Text)
            {
            case "/book":
                BookCommand.ReplyWithImageSchedule(message, mainbot, participant);
                return;

            case "/book_text_version":
                BookCommand.ReplyWithTextSchedule(message, mainbot);
                return;

            case "/cancel":
                CancelCommand.PerformAnswer(message, mainbot, participant);
                return;

            case "/start":
                StartCommand.PerformAnswer(message, mainbot);
                return;

            case "/help":
                HelpCommand.PerformAnswer(message, mainbot);
                return;

            case "/checkin":
                return;

            case "/status":
                return;

            case "Пн":
                BookCommand.ReplyWithTimeInput(message, mainbot, participant, 0);
                return;

            case "Вт":
                BookCommand.ReplyWithTimeInput(message, mainbot, participant, 1);
                return;

            case "Ср":
                BookCommand.ReplyWithTimeInput(message, mainbot, participant, 2);
                return;

            case "Чт":
                BookCommand.ReplyWithTimeInput(message, mainbot, participant, 3);
                return;

            case "Пт":
                BookCommand.ReplyWithTimeInput(message, mainbot, participant, 4);
                return;

            case "Сб":
                BookCommand.ReplyWithTimeInput(message, mainbot, participant, 5);
                return;

            case "Вс":
                BookCommand.ReplyWithTimeInput(message, mainbot, participant, 6);
                return;

            default:
                //Если команды в сообщении не было, значит пытаемся распарсить время и создать бронь
                TextInputCommand.Book(message, mainbot, participant);
                return;
            }

            //commands.Add(new HelloCommand());
            //Update[] updates = bot.GetUpdatesAsync().Result;

            //foreach( Update update in updates)
            //{
            //    foreach( Command command in commands)
            //    {
            //        command.Execute(update.Message, bot);
            //    }
            //}
        }