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)); }