Beispiel #1
0
        private void ExtractInfo(PositiveSubscribeInfo info)
        {
            List <Subscribe> list = info.Subscribes.ToList <Subscribe>();

            lock (this._locker)
            {
                foreach (Subscribe subscribe in list)
                {
                    subscribe.PayDateTime = subscribe.PayDateTime.ToLocalTime();
                }
                this.Subscribes = list;
                if (!info.IsActive && !info.IsFreeze)
                {
                    this.State = ESubscribeState.End;
                    this.Name  = "Нет подписки";
                }
                else
                {
                    Subscribe subscribe = list.FirstOrDefault <Subscribe>((Func <Subscribe, bool>)(x => x.IsCurrent));
                    if (info.IsActive)
                    {
                        this.State    = ESubscribeState.Active;
                        this.LeftTime = info.SubscribeEndTime - DateTimeOffset.UtcNow;
                    }
                    else if (info.IsFreeze)
                    {
                        this.State    = ESubscribeState.Freeze;
                        this.LeftTime = info.EndFreezeTime;
                    }
                    if (subscribe != null)
                    {
                        this.FreezeCount = subscribe.FreezeCount;
                        this.Name        = subscribe.Name;
                    }
                    else
                    {
                        this.FreezeCount = -1;
                        this.Name        = "Ошибка";
                    }
                }
                switch (this.State)
                {
                case ESubscribeState.Active:
                    this.FreezeString  = "Заморозить";
                    this.FreezeEnabled = this.FreezeCount > 0;
                    break;

                case ESubscribeState.Freeze:
                    this.FreezeString  = "Разморозить";
                    this.FreezeEnabled = true;
                    break;

                default:
                    this.FreezeString  = "Недоступно";
                    this.FreezeEnabled = false;
                    break;
                }
            }
        }
Beispiel #2
0
        public async void UpdateData()
        {
            SubscribesViewModel subscribesViewModel = this;

            subscribesViewModel.Loading = true;
            try
            {
                subscribesViewModel.ReloadEnabled = false;
                subscribesViewModel.Counter       = 60;
                await Task.Factory.StartNew((Action)(() => Thread.Sleep(2000)));

                PositiveSubscribeInfo subscribesAsync = await subscribesViewModel._client.GetSubscribesAsync();

                ESubscribeState state = subscribesViewModel.State;
                subscribesViewModel.ExtractInfo(subscribesAsync);
                if (state != subscribesViewModel.State)
                {
                    if (subscribesViewModel.State == ESubscribeState.Active)
                    {
                        subscribesViewModel._settigs.UserSettings.UserAuthData.SubscribeInfo.IsActive = true;
                        subscribesViewModel._settigs.UserSettings.UserAuthData.SubscribeInfo.IsFreeze = false;
                    }
                    if (subscribesViewModel.State == ESubscribeState.Freeze)
                    {
                        subscribesViewModel._settigs.UserSettings.UserAuthData.SubscribeInfo.IsActive = false;
                        subscribesViewModel._settigs.UserSettings.UserAuthData.SubscribeInfo.IsFreeze = true;
                    }
                    subscribesViewModel._client.UpdateSettings(SettingsHelper.SettingConverter(subscribesViewModel._settigs));
                    Settings.Save(subscribesViewModel._settigs);
                }
            }
            catch (Exception ex)
            {
                await subscribesViewModel.ShowErrorDialogAsync((BaseViewModel)subscribesViewModel._mainViewModel, "Информация о подписках не получена! " + ex.Message);
            }
            subscribesViewModel.Loading = false;
        }