public async void OnLoginCommandExecute(object obj)
        {
            await Task.Run(async() =>
            {
                Regex regex = new Regex(@"^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$");
                if (regex.IsMatch(PhoneNumber))
                {
                    IsLoggEnabled = false;
                    TeleStatus    = "Загрузка...";

                    TelegramContext = new TelegramLogic(PhoneNumber);
                    string path     = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Sessions");
                    var tmpfiles    = Directory.GetFiles(path, "*", SearchOption.AllDirectories).ToList();

                    foreach (var item in tmpfiles)
                    {
                        FileSessionStore.Add(Path.GetFileName(item));
                    }
                    foreach (var item in FileSessionStore)
                    {
                        if (item.Equals(PhoneNumber + ".dat"))
                        {
                            await TelegramContext.LogInAsync();


                            TLChannelFulls = await TelegramContext.GetFullInfoCannelsAsync();
                            foreach (var channel in TLChannelFulls)
                            {
                                ChannelsNames.Add(channel.About);
                            }

                            MySelectedItem    = ChannelsNames?[0];
                            IsProgramStarted  = true;
                            IsStartEnabled    = true;
                            IsCanChangeNumber = false;
                            TeleStatus        = "Вы вошли успешно!!! ";
                            TelegramContext.LogOut();
                            return;
                        }
                    }

                    try
                    {
                        await TelegramContext.GetCodeAuthenticateAsync();
                        TeleStatus = "Ждите код для подтверждения";
                        IsSetCode  = true;
                    }
                    catch (Exception ex)
                    {
                        TeleStatus = ex.Message;
                        File.Delete(PhoneNumber + ".dat");
                        IsLoggEnabled = true;
                    }
                }
                else
                {
                    TeleStatus = "Некорректный номер!\nПопробуйте: +1234...";
                }
            });
        }
Ejemplo n.º 2
0
        /// <summary>
        /// On update, update items.
        /// </summary>
        protected override void OnUpdate()
        {
            try
            {
                if (_feed == null)
                {
                    _feed = RssFeed.Read(base.Address);

                    if (_feed.Channels.Count == 1)
                    {
                        // Some feeds have those symbols in their names.
                        _name = _feed.Channels[0].Title.Replace("\r", "").Replace("\n", "").Trim();
                    }
                    else
                    {
                        _name = _feed.Url.ToString();
                    }

                    List <string> names = new List <string>();
                    foreach (RssChannel channel in _feed.Channels)
                    {
                        names.Add(channel.Title);
                    }

                    foreach (string name in names)
                    {
                        if (ChannelsNames.Contains(name) == false)
                        {
                            EventSourceChannel channel = new EventSourceChannel(name, true);
                            channel.Initialize(this);
                            base.AddChannel(channel);
                        }
                    }
                }
                else
                {
                    _feed = RssFeed.Read(_feed);
                }

                //OperationalStateEnum newState = OperationalStateEnum.Operational;
            }
            catch (WebException we)
            {// Feed not found or some other problem.
                SystemMonitor.OperationWarning("Failed to initialize feed [" + Address + ", " + we.Message + "]");
                ChangeOperationalState(OperationalStateEnum.NotOperational);
            }
            catch (Exception ex)
            {// RssFeed class launches IOExceptions too, so get safe here.
                SystemMonitor.OperationWarning("Failed to initialize feed [" + Address + ", " + ex.Message + "]");
                ChangeOperationalState(OperationalStateEnum.NotOperational);
            }

            DoUpdateItems();

            //RaisePersistenceDataUpdatedEvent();
        }
        public async void OnSendCodeCommandExecute(object obj)
        {
            await Task.Run(async() =>
            {
                TeleStatus = "Ожидание подтверждения";

                IsSetCode            = false;
                TelegramContext.Code = AuthCode;
                try
                {
                    await TelegramContext.AuthUserAsync();


                    TeleStatus        = "Вы вошли успешно!!!";
                    IsProgramStarted  = true;
                    IsStartEnabled    = true;
                    IsCanChangeNumber = false;

                    TLChannelFulls = await TelegramContext.GetFullInfoCannelsAsync();
                    foreach (var channel in TLChannelFulls)
                    {
                        ChannelsNames.Add(channel.About);
                    }
                    TelegramContext.LogOut();
                    MySelectedItem = ChannelsNames?[0];
                }
                catch (Exception ex)
                {
                    TeleStatus = ex.Message;

                    if (File.Exists(PhotoPath + "dat"))
                    {
                        File.Delete(PhotoPath + "dat");
                    }
                }
            });
        }
Ejemplo n.º 4
0
        public override void OnUpdate()
        {
            OperationalStateEnum newState;

            try
            {
                if (_feed == null)
                {
                    _feed = RssFeed.Read(base.Address);

                    if (_feed.Channels.Count == 1)
                    {
                        // Some feeds have those symbols in their names.
                        _name = _feed.Channels[0].Title.Replace("\r", "").Replace("\n", "").Trim();
                    }
                    else
                    {
                        _name = _feed.Url.ToString();
                    }

                    List <string> names = new List <string>();
                    foreach (RssChannel channel in _feed.Channels)
                    {
                        names.Add(channel.Title);
                    }

                    foreach (string name in names)
                    {
                        if (ChannelsNames.Contains(name) == false)
                        {
                            base.AddChannel(name, true);
                        }
                    }

                    // Retrieve web site shortcut icon.
                    //if (_icon == null)
                    //{
                    //    _icon = GeneralHelper.GetWebSiteShortcutIcon(new Uri(Address));
                    //}
                }
                else
                {
                    _feed = RssFeed.Read(_feed);
                }

                newState = OperationalStateEnum.Operational;
            }
            catch (WebException we)
            {// Feed not found or some other problem.
                SystemMonitor.OperationWarning("Failed to initialize feed [" + Address + ", " + we.Message + "]");
                newState = OperationalStateEnum.NotOperational;
            }
            catch (Exception ex)
            {// RssFeed class launches IOExceptions too, so get safe here.
                SystemMonitor.OperationWarning("Failed to initialize feed [" + Address + ", " + ex.Message + "]");
                newState = OperationalStateEnum.NotOperational;
            }

            OperationalStateEnum oldState = _operationalState;

            _operationalState = newState;
            if (newState != _operationalState)
            {
                RaiseOperationalStatusChangedEvent(oldState);
            }

            UpdateItems();

            RaisePersistenceDataUpdatedEvent();
        }