Beispiel #1
0
 internal BotException(BotError error) : base($"Erro {(int)error}.")
 {
 }
Beispiel #2
0
 private void BotErrorHandler(BotError error, string server)
 {
     AddToBuffer(server, null, string.Format("[{0}] \u0002{1} Error\u0002: {2}", DateTime.Now.ToString("HH:mm:ss"), error.Type, error.Message));
 }
Beispiel #3
0
        public static async Task Execute(CallbackData data)
        {
            //отправить подтверждение
            var receiver = data.Sender.Id;

            if (client.Settings.DataReadingPeriod != null)
            {
                //проверка даты
                var day = DateTime.Now.Date.Day;
                if (day < client.Settings.DataReadingPeriod.From || day > client.Settings.DataReadingPeriod.To)
                {
                    await client.SendTextMessage(receiver, BotError.Period(client.Settings.DataReadingPeriod.From.ToString(), client.Settings.DataReadingPeriod.To.ToString()));

                    return;
                }
            }
            //достать данные из таблицы
            var flats = Handlers.GoogleSheetsHandler.CheckFlatData(data.Sender.Id);

            if (flats.Count == 0)
            {
                var message = new KeyboardMessage
                {
                    Receiver     = receiver,
                    Sender       = client.BotUserData,
                    Text         = $"У вас не привязана ни одна квартира.",
                    TrackingData = ViberBotTrackingData.Empty(),
                    Keyboard     = KeyboardHandler.MainMenu
                };

                await client.SendMessage(receiver, message);
            }
            else if (flats.Count == 1)
            {
                var flatNumber = flats.FirstOrDefault().ToString();
                var lastData   = Handlers.GoogleSheetsHandler.GetFlatData(flatNumber);

                var trackingData = JsonConvert.DeserializeObject <ViberBotTrackingData>(data.Message.TrackingData);
                trackingData.Add(DataField.FlatNumber.ToString(), flatNumber);

                var message = new KeyboardMessage
                {
                    Receiver     = receiver,
                    Sender       = client.BotUserData,
                    Text         = $"Квартира - { flatNumber}. Предыдущие показания счетчика - {lastData}. Введите текущие показания.",
                    TrackingData = ViberBotTrackingData.Build("EnterSendDataAction", "СonfirmSendDataAction", trackingData.Data),
                    Keyboard     = KeyboardHandler.Cancel
                };

                await client.SendMessage(receiver, message);
            }
            else if (flats.Count > 1)
            {
                var flatButtonsData = new List <string[]>();
                foreach (var flat in flats)
                {
                    flatButtonsData.Add(new string[] { flat.ToString(), flat.ToString() });
                }
                flatButtonsData.Add(new string[] { "Отмена", "Cancel" });

                var message = new KeyboardMessage
                {
                    Receiver     = receiver,
                    Sender       = client.BotUserData,
                    Text         = $"У вас указано несколько квартир. Выберите нужную.",
                    TrackingData = ViberBotTrackingData.Build("StartSendDataAction", "EnterSendDataAction"),
                    Keyboard     = KeyboardHandler.CustomButtons(flatButtonsData.ToArray())
                };

                await client.SendMessage(receiver, message);
            }
        }
        private static void BotErrorHandler(BotError error, string server)
        {
            string message = string.Format("[{0}] [{1}] \u0002{2} Error\u0002: {3}", DateTime.Now.ToString("HH:mm:ss"), server, error.Type, error.Message);

            Console.WriteLine(message);
        }