public MainWindowViewModel()
        {
            _container = new UnityContainer();
            _container.RegisterType <ICheckStatusService, TelegramJoinChannel.BLL.Services.CheckStatusService>();
            _container.RegisterType <IChannelsService, TelegramJoinChannel.BLL.Services.ChannelsService>();
            IsAuthorisation     = true;
            _channelsService    = new ChannelsService(_container);
            _checkStatusService = new CheckStatusService(_container);
            InfoChannels        = _channelsService.GetChannelsInfo();
            StatChannels        = _checkStatusService.GetCheckChannelsInfo();
            if (StatChannels.Count != 0)
            {
                LastCheck = StatChannels.Last().CheckDate;
            }

            SetCode        = new RelayCommand(OnSetCode);
            Authenticate   = new RelayCommand(OnAuthenticate);
            CheckMarked    = new RelayCommand(OnCheckMarked);
            CheckAll       = new RelayCommand(OnCheckAll);
            DeleteSelected = new RelayCommand(OnDeleteSelected);
            Search         = new RelayCommand(OnSearch);
            UpdateChannale = new RelayCommand(OnUpdateChannale);

            AddChannel = new RelayCommand(OnAddChannel);

            _files            = new List <string>();
            _updateChannelsBD = new List <ChannelsInfo>();

            _tLChannelFull = new List <TLChannelFull>();
            _tLChannels    = new List <TLChannel>();

            UriList = new ObservableCollection <AddChannels>();

            _numberPhone = "+375293232203";
            Application.Current.MainWindow.Closing += MainWindow_Closing;
        }
        private async void OnCheckAll(object obj)
        {
            NoLinks            = 0;
            UpdatedAvatar      = 0;
            ChangeTitles       = 0;
            SubscribersChannel = 0;

            _tLChannelFull = await _telegramLogic.GetFullInfoCannelsAsync();

            _tLChannels = await _telegramLogic.GetInfoChannelsAsync();

            List <ChannelsInfo> cannelsTelegram = new List <ChannelsInfo>();

            foreach (var item in _tLChannelFull)
            {
                var channelsInfoTelegram = new ChannelsInfo();
                foreach (var item1 in _tLChannels)
                {
                    if (item.Id == item1.Id)
                    {
                        channelsInfoTelegram.NameChannel       = item1.Title;
                        channelsInfoTelegram.UriChannel        = item1.Username;
                        channelsInfoTelegram.IdChannel         = item1.Id;
                        channelsInfoTelegram.AccessHashChannel = (long)item1.AccessHash;
                        break;
                    }
                }
                if (item.ChatPhoto is TLPhoto tLPhoto)
                {
                    channelsInfoTelegram.AvatarChannel = DateTimeOffset.FromUnixTimeSeconds(tLPhoto.Date).DateTime;
                }
                else
                {
                    channelsInfoTelegram.AvatarChannel = new DateTime(2000, 1, 1);
                }
                channelsInfoTelegram.SubscribersChannel = (int)item.ParticipantsCount;
                cannelsTelegram.Add(channelsInfoTelegram);
            }

            string resultStatus = String.Empty;

            foreach (var itemInfoChannels in InfoChannels)
            {
                var isCheck = await _telegramLogic.CheckUriChannel(itemInfoChannels.AccessHashChannel, itemInfoChannels.IdChannel);

                if (!isCheck)
                {
                    resultStatus += $"Ссылка не действительна. ";
                    NoLinks++;
                    var tmpChannel = itemInfoChannels;
                    tmpChannel.Status = resultStatus;
                    _updateChannelsBD.Add(tmpChannel);
                    resultStatus = String.Empty;
                    continue;
                }

                foreach (var itemCannelsTelegram in cannelsTelegram)
                {
                    if (itemInfoChannels.IdChannel == itemCannelsTelegram.IdChannel)
                    {
                        if (DateTime.Compare(itemInfoChannels.AvatarChannel, itemCannelsTelegram.AvatarChannel) != 0)
                        {
                            resultStatus += $"Изменили аватар. ";
                            itemInfoChannels.AvatarChannel = itemCannelsTelegram.AvatarChannel;
                            UpdatedAvatar++;
                        }

                        if (!itemInfoChannels.NameChannel.Equals(itemCannelsTelegram.NameChannel))
                        {
                            resultStatus += $"Изменили имя группы. ";
                            itemInfoChannels.NameChannel = itemCannelsTelegram.NameChannel;
                            ChangeTitles++;
                        }

                        if (itemInfoChannels.SubscribersChannel != itemCannelsTelegram.SubscribersChannel)
                        {
                            resultStatus += $"Изменилось количество подписчиков группы. ";
                            itemInfoChannels.SubscribersChannel = itemCannelsTelegram.SubscribersChannel;
                            SubscribersChannel++;
                        }

                        var tmp = itemInfoChannels;
                        tmp.Status = resultStatus;
                        _updateChannelsBD.Add(tmp);
                        resultStatus = String.Empty;
                    }
                }
            }
            foreach (var item in _updateChannelsBD)
            {
                InfoChannels.Remove(item);
                InfoChannels.Add(item);
            }
            CheckStatusInfo checkStatusInfo = new CheckStatusInfo()
            {
                CheckDate     = DateTime.Now,
                ChangeAvatar  = UpdatedAvatar,
                ChangeName    = ChangeTitles,
                ChannelsCount = SubscribersChannel,
                NoUri         = NoLinks
            };

            StatChannels.Add(_checkStatusService.Create(checkStatusInfo));
        }