コード例 #1
0
        public void ShowGroupTimetable(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            MessageTransfer msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            var group = result.Entities.OfType("groupName");
            var day   = result.Entities.OfType <DateEntity>(Sys.Date) ?? new DateEntity("", DateTime.Now);

            int groupId = -1;

            try
            {
                groupId = CistApi.GetGroupIdFromName(group.Value);
            }
            catch (Exception)
            {
                msg.Message = "Что-то я не нашел такой группы, попробуй ещё раз!";
                result.SendResponse(msg.ToJson());
                return;
            }

            DayTimetable timetable = CistApi.GetGroupTimetable(groupId, day.DateTime);

            msg.Message = timetable?.ToString() ?? $"В расписании нету пар на {day.DateTime.ToShortDateString()}";
            result.SendResponse(msg.ToJson());
        }
コード例 #2
0
        public void ShowTeacherNearestTimetable(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            var msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            var teacher   = result.Entities.OfType("teacherName");
            var day       = DateTime.Now;
            int teacherId = -1;

            try
            {
                teacherId = CistApi.GetTeacherIdFromName(teacher.Value);
            }
            catch (Exception)
            {
                msg.Message = "Что-то я не нашел такого преподователя, попробуй ещё раз!";
                result.SendResponse(msg.ToJson());
                return;
            }

            var timetable = CistApi.GetTeacherNearestTimetable(teacherId, day);

            msg.Message = timetable != null
                ? $"Ближайшая пара у {teacher}:\n" + timetable?.ToString()
                : $"В расписании нету пар для {teacher}";

            result.SendResponse(msg.ToJson());
        }
コード例 #3
0
        public void ShowTeacherTimetable(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            MessageTransfer msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            var teacher   = result.Entities.OfType("teacherName");
            var day       = result.Entities.OfType <DateEntity>(Sys.Date);
            int teacherId = -1;

            try
            {
                teacherId = CistApi.GetTeacherIdFromName(teacher.Value);
            }
            catch (Exception)
            {
                msg.Message = "Что-то я не нашел такого преподователя, попробуй ещё раз!";
                result.SendResponse(msg.ToJson());
                return;
            }

            DayTimetable timetable = CistApi.GetTeacherTimetable(teacherId, day.DateTime);

            msg.Message = timetable?.ToString() ?? $"В расписании нету пар на {day.DateTime.ToShortDateString()}";
            result.SendResponse(msg.ToJson());
        }
コード例 #4
0
        public void ShowNextDayTimetable(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            MessageTransfer msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            var day = result.Entities.OfType <DateEntity>(Sys.Date);

            DayTimetable timetable = new DayTimetable();

            switch (user.Role)
            {
            case Role.Student:
                timetable = CistApi.GetGroupTimetable((user as Student).GroupId, day.DateTime);
                break;

            case Role.Teacher:
                timetable = CistApi.GetTeacherTimetable((user as Teacher).TeacherId, day.DateTime);
                break;

            default:
                break;
            }

            msg.Message = timetable?.ToString() ?? $"В расписании нету пар на {day.DateTime.ToShortDateString()}";
            result.SendResponse(msg.ToJson());
        }
コード例 #5
0
        public void ShowTodayTimetable(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            MessageTransfer msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            DayTimetable timetable = new DayTimetable();

            switch (user.Role)
            {
            case Role.Student:
                timetable = CistApi.GetGroupTimetable((user as Student).GroupId, DateTime.Now);
                break;

            case Role.Teacher:
                timetable = CistApi.GetTeacherTimetable((user as Teacher).TeacherId, DateTime.Now);
                break;

            default:
                break;
            }

            msg.Message = timetable?.ToString() ?? "На сегодня пар нету!";
            result.SendResponse(msg.ToJson());
        }
コード例 #6
0
        public void Default(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            MessageTransfer msg = new MessageTransfer
            {
                ChatId  = user.Id,
                Message = $"Ой, что-то я не разобрал что тут написано {Emoji.Confused} \nМожете повторить ввод?"
            };

            result.SendResponse(msg.ToJson());
        }
コード例 #7
0
        public void ShowNureFeed(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            var msg = new MessageTransfer()
            {
                ChatId = user.Id
            };


            try
            {
                msg.Message = CistApi.GetNureFeed();
            }
            catch (Exception)
            {
                msg.Message = "К сожалению, сервер с новостями не работает!";
                result.SendResponse(msg.ToJson());
                return;
            }

            result.SendResponse(msg.ToJson());
        }
コード例 #8
0
        public async void ShowTodayWeather(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            MessageTransfer msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            var openClient     = new OpenWeatherMapClient("22a6ae75fa60f187c896025ec05038ce");
            var currentWeather = await openClient.CurrentWeather.GetByCityId(706483, MetricSystem.Metric, OpenWeatherMapLanguage.RU);

            msg.Message = $"В Харькове сейчас {currentWeather.Temperature.Value}° {Emoji.Sunny}\n" +
                          $"На небе {currentWeather.Weather.Value}\n" +
                          $"Обновленно:{currentWeather.LastUpdate.Value}";
            result.SendResponse(msg.ToJson());
        }
コード例 #9
0
        public async void ShowWeather(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            var day = result.Entities.OfType <DateEntity>(Sys.Date);

            MessageTransfer msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            var openClient     = new OpenWeatherMapClient("22a6ae75fa60f187c896025ec05038ce");
            var currentWeather = await openClient.Forecast.GetByCityId(706483, true, MetricSystem.Metric, OpenWeatherMapLanguage.RU);

            var dayWeather = currentWeather.Forecast.SingleOrDefault(a => a.Day.ToShortDateString().Equals(day.DateTime.ToShortDateString()));

            msg.Message = dayWeather == null ? $"Извините, но у мен не вышло найти прогноз на {day.DateTime.ToShortDateString()}" : $"В Харькове будет от {dayWeather.Temperature.Min}° до {dayWeather.Temperature.Max}° {Emoji.Sunny}\n";

            result.SendResponse(msg.ToJson());
        }
コード例 #10
0
        public void ShowMap(Context context, Result result)
        {
            var user = context.SharedData.OfType <User>();

            context.SharedData.Remove(user);
            var msg = new MessageTransfer()
            {
                ChatId = user.Id
            };

            msg.Message     = "Отправьте пожалуйста своё местоположение!";
            msg.ReplyMarkup = new ReplyKeyboardMarkup(new[]
            {
                new KeyboardButton($"{Emoji.Round_Pushpin} Моё местоположение")
                {
                    RequestLocation = true
                }
            }
                                                      );

            result.SendResponse(msg.ToJson());
        }