Beispiel #1
0
 private bool CheckDate(string value)
 {
     try
     {
         List <Rides> buf = new List <Rides>();
         foreach (Rides ride in sample)
         {
             if ((ride.dateTime.Day.ToString() + "." + ride.dateTime.Month.ToString()) == value)
             {
                 buf.Add(ride);
                 date  = ride.dateTime.Date;
                 stadi = stadiya.время;
             }
         }
         if (buf.Count > 0)
         {
             sample = buf;
             return(true);
         }
         return(false);
     }
     catch
     {
         return(false);
     }
 }
Beispiel #2
0
 public void DeleteStatement()
 {
     direction   = "";
     name        = "";
     phoneNumber = "";
     count       = 0;
     stadi       = stadiya.направление;
     isProcess   = false;
     Task.Factory.StartNew(() => MailSender.SendBreakEmailAsync(this));
 }
Beispiel #3
0
 private void CheckTime(string value)
 {
     foreach (Rides ride in sample)
     {
         if (ride.dateTime.ToShortTimeString() == value)
         {
             time = ride.dateTime;
         }
     }
     stadi = stadiya.места;
 }
Beispiel #4
0
 private bool SetCount(string value)
 {
     try
     {
         this.count = int.Parse(value);
         stadi      = stadiya.имя;
         return(true);
     }
     catch
     {
         return(false);
     }
 }
Beispiel #5
0
        private bool CheckDirection(string value)
        {
            try
            {
                value = value.Replace(" ", "");
                string from = value.Split('-')[0];
                string to   = value.Split('-')[1];

                foreach (Direction direction in Direction.directions)
                {
                    if (direction.from == from && direction.to == to)
                    {
                        this.direction = value;
                        stadi          = stadiya.дата;
                        return(true);
                    }
                }
                return(false);
            }
            catch { return(false); }
        }
Beispiel #6
0
 private void SetName(string value)
 {
     this.name = value;
     stadi     = stadiya.телефон;
 }
Beispiel #7
0
        public async void SetParams(Telegram.Bot.Types.Message message)
        {
            if (message.Text == "Дальше")
            {
                pageNumber++;
            }
            if (message.Text == "Назад")
            {
                pageNumber--;
            }

            switch (stadi)
            {
            case stadiya.направление:
                if (CheckDirection(message.Text))
                {
                    List <string> answer = new List <string>();
                    foreach (Rides ride in Rides.rides)
                    {
                        if ((ride.direction.from + "-" + ride.direction.to) == direction)
                        {
                            sample.Add(ride);
                            answer.Add(ride.dateTime.Day.ToString() + "." + ride.dateTime.Month.ToString());
                        }
                    }
                    if (answer.Count <= 0)
                    {
                        isProcess = false;
                        stadi     = stadiya.направление;
                        await BotBehaviour.Bot.SendTextMessageAsync(
                            message.Chat.Id,
                            "Извините, на данный момент маршруты в этом направлении не зарегистрированы", replyMarkup : new ReplyKeyboardRemove());

                        return;
                    }
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Выберите дату поездки",
                        replyMarkup : GetKeyboard(answer, pageNumber));
                }
                else
                {
                    List <string> ways = new List <string>();
                    foreach (Direction dir in Direction.directions)
                    {
                        ways.Add(dir.from + "-" + dir.to);
                    }
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Выберите маршрут",
                        replyMarkup : GetKeyboard(ways, pageNumber));
                }
                break;

            case stadiya.дата:
                if (CheckDate(message.Text))
                {
                    List <string> answer = new List <string>();
                    foreach (Rides ride in sample)
                    {
                        answer.Add(ride.dateTime.ToShortTimeString());
                    }
                    if (answer.Count <= 0)
                    {
                        isProcess = false;
                        stadi     = stadiya.направление;
                        await BotBehaviour.Bot.SendTextMessageAsync(
                            message.Chat.Id,
                            "Извините, на данный момент маршруты в этом направлении не зарегистрированы", replyMarkup : new ReplyKeyboardRemove());

                        return;
                    }
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Выберите время",
                        replyMarkup : GetKeyboard(answer, pageNumber));
                }
                else
                {
                    List <string> answer = new List <string>();
                    foreach (Rides ride in Rides.rides)
                    {
                        if ((ride.direction.from + "-" + ride.direction.to) == direction)
                        {
                            answer.Add(ride.dateTime.Day.ToString() + "." + ride.dateTime.Month.ToString());
                        }
                    }
                    if (answer.Count <= 0)
                    {
                        isProcess = false;
                        stadi     = stadiya.направление;
                        await BotBehaviour.Bot.SendTextMessageAsync(
                            message.Chat.Id,
                            "Извините, на данный момент маршруты в этом направлении не зарегистрированы", replyMarkup : new ReplyKeyboardRemove());

                        return;
                    }
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Произошла ошибка, повторите ввод",
                        replyMarkup : GetKeyboard(answer, pageNumber));
                }
                break;

            case stadiya.время:

                CheckTime(message.Text);
                await BotBehaviour.Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Введите колличество мест, которые хотите забронировать", replyMarkup : new ReplyKeyboardRemove());

                break;

            case stadiya.имя:
                SetName(message.Text);
                await BotBehaviour.Bot.SendTextMessageAsync(
                    message.Chat.Id,
                    "Введите ваш номер телефона");

                break;

            case stadiya.места:
                if (SetCount(message.Text))
                {
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Введите имя и фамилию");
                }
                else
                {
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Повторите ввод используя только цифры, введите колличество мест, которые хотите забронировать");
                }
                break;

            case stadiya.телефон:
                if (CheckPhone(message.Text))
                {
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Спасибо! Вы забронировались на рейс: " + date.Date + " числа в " + time.ToShortTimeString() + " по направлению " + direction + ".Остались вопросы, напишите нам в чат @perevoz74");

                    stadi = stadiya.направление;
                    await MailSender.SendEmailAsync(this);

                    isProcess = false;
                }
                else
                {
                    await BotBehaviour.Bot.SendTextMessageAsync(
                        message.Chat.Id,
                        "Номер введен неверно, введите номер в формате 8 960 123 45 67");
                }
                break;
            }
        }