Beispiel #1
0
        private void OnNewConnectToBotCommand()
        {
            try{
                TelegramBot = new TelegramBotObjectModel(TelegramToken);

                User bot = TelegramBot.CreateBot();

                if (!string.IsNullOrWhiteSpace(bot.Username))
                {
                    StatusMessage = string.Format("Connected to User ID: {0} ({1})",
                                                  bot.Id.ToString(), bot.Username
                                                  );
                }
                else
                {
                    StatusMessage = string.Format("Not Connected");
                }
            }



            catch (Exception e)
            {
                StatusMessage = string.Format("Error");
                new MessageBoxViewModel {
                    Caption = "Message Box",
                    Message = string.Format("Cant Connect to Telegram: \n{0} \n{1}", e.Message, e.InnerException == null ? "" : e.InnerException.InnerException.Message),
                    Image   = MessageBoxImage.Information
                }.Show(this.Dialogs);
            }
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="_staticEvents"></param>
        /// <param name="_responseCollection"></param>
        /// <param name="_responseObjectModel"></param>
        public ResponseConfigurationDialogTelegramMessageResponseViewModel(ObservableCollection <EventObjectModel> _staticEvents, ObservableCollection <ResponseObjectModel> _responseCollection, ResponseObjectModel _responseObjectModel)
        {
            resLoader = new ResourceLoader();

            ResponseObjectModel = _responseObjectModel;
            responseCollection  = _responseCollection;

            StatusMessage = string.Format("Not Connected");

            if (ResponseObjectModel != null && ResponseObjectModel.ResponseObject != null)
            {
                if (ResponseObjectModel.ResponseObject is TelegramMessageObjectModel)
                {
                    TelegramMessageObject = ResponseObjectModel.ResponseObject as TelegramMessageObjectModel;

                    if (TelegramMessageObject.Bot2Use.TelegramUsers.Where(x => x.UserStatus == TelegramUserStatus.UserIsAdmin).Select(x => x.UserStatus == TelegramUserStatus.UserIsAdmin).Single())
                    {
                        StatusMessage = string.Format("Online with ChatID: {0}", TelegramMessageObject.Bot2Use.TelegramUsers.Where(x => x.UserStatus == TelegramUserStatus.UserIsAdmin).Select(x => x.chatID).Single());

                        TelegramBotObjectCollection = new ObservableCollection <TelegramBotObjectModel>();
                        TelegramBotObjectCollection.Add(TelegramMessageObject.Bot2Use);
                        SelectedTelegramBotObject            = TelegramMessageObject.Bot2Use;
                        ResponseObjectModel.HasConfiguration = true;
                    }
                }
            }
            else
            {
                telegramBot           = new TelegramBotObjectModel();
                TelegramMessageObject = new TelegramMessageObjectModel(telegramBot);
                ResponseObjectModel   = new ResponseObjectModel(TelegramMessageObject);

                messagesWithBot = from q in responseCollection
                                  where !string.IsNullOrEmpty((q.ResponseObject as TelegramMessageObjectModel).Bot2Use.BotName)
                                  select(q.ResponseObject as TelegramMessageObjectModel);

                var query
                    = (from q in (from p in responseCollection where (p.ResponseObject is TelegramMessageObjectModel)select(p.ResponseObject as TelegramMessageObjectModel).Bot2Use).Select(p => p).Distinct() where q.BotName != null select q);

                foreach (EventObjectModel eventObject in _staticEvents)
                {
                    foreach (ResponseObjectModel responseObjectModel in from x in eventObject.ResponseCollection where x.ResponseObject is TelegramMessageObjectModel select x)
                    {
                        if (!query.Contains((responseObjectModel.ResponseObject as TelegramMessageObjectModel).Bot2Use))
                        {
                            TelegramBotObjectCollection = new ObservableCollection <TelegramBotObjectModel>(query as IEnumerable <TelegramBotObjectModel>);
                            TelegramBotObjectCollection.Add((responseObjectModel.ResponseObject as TelegramMessageObjectModel).Bot2Use);
                            SelectedTelegramBotObject = TelegramBotObjectCollection[0];
                        }
                    }
                }

                if (!query.Any() && TelegramBotObjectCollection == null)
                {
                    TelegramBotObjectCollection = new ObservableCollection <TelegramBotObjectModel>();
                }

                else
                {
                    if (TelegramBotObjectCollection == null)
                    {
                        TelegramBotObjectCollection = new ObservableCollection <TelegramBotObjectModel>(query as IEnumerable <TelegramBotObjectModel>);
                    }

                    if (this.TelegramBotObjectCollection.Count > 0 && SelectedTelegramBotObject == null)
                    {
                        SelectedTelegramBotObject = this.TelegramBotObjectCollection[0];
                    }

                    if (
                        SelectedTelegramBotObject != null &&
                        SelectedTelegramBotObject.TelegramUsers != null &&
                        SelectedTelegramBotObject.TelegramUsers.Count > 0 &&
                        SelectedTelegramBotObject.TelegramUsers.Where(x => x.UserStatus == TelegramUserStatus.UserIsAdmin).Select(x => x.UserStatus == TelegramUserStatus.UserIsAdmin).Single()
                        )
                    {
                        TelegramMessageObject.Bot2Use        = SelectedTelegramBotObject;
                        ResponseObjectModel.HasConfiguration = true;
                        StatusMessage = string.Format("Online with ChatID: {0}", TelegramMessageObject.Bot2Use.TelegramUsers.Where(x => x.UserStatus == TelegramUserStatus.UserIsAdmin).Select(x => x.chatID).Single());
                    }
                }

                //TelegramBotObjectCollection.Add((objectModel.ResponseObject as TelegramMessageObjectModel).Bot);
            }
        }