AdvancedLauncher.UI.Controls.DigiRotation.UpdateModel C# (CSharp) Method

UpdateModel() private method

private UpdateModel ( ) : void
return void
        private void UpdateModel()
        {
            IsLoadingAnim(true);
            using (IDatabaseContext context = DatabaseManager.CreateContext()) {
                if (!IsStatic && Guild != null) {
                    //Если не статическое, получаем рандомного дигимона из базы данных
                    Brush MedalColor = null;
                    Digimon d = null;

                    Tamer tamer = null;
                    if (TamerName != null) {
                        if (!string.IsNullOrEmpty(TamerName.Trim())) {
                            tamer = context.FindTamerByGuildAndName(Guild, TamerName.Trim());
                        }
                    }
                    if (tamer != null) {
                        d = context.FindRandomDigimon(tamer, MIN_LVL);
                    }
                    if (d == null) {
                        d = context.FindRandomDigimon(Guild, MIN_LVL);
                    }

                    if (d == null) {
                        // если у нас нет вообще такого дигимона, тогда переключаемся на статику
                        IsStatic = true;
                        UpdateModel();
                        return;
                    }

                    //Устанавливаем медали в зависимости от уровня
                    if (d.Level < 75) {
                        MedalColor = medalBronze;
                    } else if (d.Level >= 75 && d.Level < 80) {
                        MedalColor = medalSilver;
                    } else if (d.Level >= 80) {
                        MedalColor = medalGold;
                    }

                    this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal,
                        new UpdateInfo((DType_, Level_, TName_, TLevel_, Image_, Medal_) => {
                            RotationElement vmodel = null;
                            if (this.Content != null && !this.Content.GetType().IsAssignableFrom(typeof(HaguruLoader))) {
                                vmodel = tempRotationElement;
                                tempRotationElement = (RotationElement)this.Content;
                            }
                            if (vmodel == null) {
                                vmodel = new RotationElement();
                            }
                            vmodel.DType = DType_;
                            vmodel.Level = Level_;
                            vmodel.TName = string.Format(TAMER_NAME_FORMAT, LanguageManager.Model.RotationTamer, TName_, TLevel_);
                            vmodel.TLevel = TLevel_;
                            vmodel.Image = Image_;
                            vmodel.Medal = Medal_;
                            vmodel.ShowInfo = true;
                            this.Content = vmodel;
                        }), d.Name, d.Level, d.Tamer.Name, d.Tamer.Level, GetDigimonImage(d.Type.Code), MedalColor);
                } else {
                    DigimonType dType = context.FindRandomDigimonType();
                    this.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, new UpdateInfo((DType_, Level_, TName_, TLevel_, Image_, Medal_) => {
                        RotationElement vmodel = null;
                        if (this.Content != null && !this.Content.GetType().IsAssignableFrom(typeof(HaguruLoader))) {
                            vmodel = tempRotationElement;
                            tempRotationElement = (RotationElement)this.Content;
                        }
                        if (vmodel == null) {
                            vmodel = new RotationElement();
                        }
                        vmodel.Image = Image_;
                        vmodel.ShowInfo = false;
                        this.Content = vmodel;
                    }), string.Empty, 0, string.Empty, 0, GetDigimonImage(dType.Code), null);
                }
            }
            IsLoadingAnim(false);
        }