コード例 #1
0
        public ScenarioModel(ScenarioBase scenario)
        {
            Scenario       = scenario;
            VisualSettings = Repository.VisualSettings.FirstOrDefault(x => x.ScenarioId == scenario.Id);
            if (VisualSettings == null)
            {
                Repository.Add(VisualSettings = new UserVisualSettings()
                {
                    UserId      = UsersRepository.SystemUser.Id,
                    ScenarioId  = scenario.Id,
                    VisualIndex = (Repository.VisualSettings.Any() ? Repository.VisualSettings.Max(x => x.VisualIndex) : 0) + 1
                });
                VisualSettings.AddictionalData.Set(Icon1Key, GetStandardIcon1());
                VisualSettings.AddictionalData.Set(Icon2Key, GetStandardIcon2());
                Repository.Save();
            }

            Scenario.SetOnStateChanged(ScenarioValueChanged);
            scenario.SetOnAvailabilityChanged(ScenarioAvailabilityChanged);
            Scenario.CalculateCurrentValueAsync(
                ViewScenarioActionSourceCrutch,
                (value) => {
                _value       = value;
                _smoothValue = ScenarioValueDouble;
                OnPropertyChanged(nameof(ScenarioValue));
                OnPropertyChanged(nameof(SmoothChangeValue));
            },
                null);

            OnPropertyChanged(nameof(Icon1));
            OnPropertyChanged(nameof(Icon2));
            OnPropertyChanged(nameof(AllowClick));
        }
コード例 #2
0
        private Thickness CreateControlMargin(UserVisualSettings visualSettings)
        {
            var position = CreatePositionByIndex(CreateRealVisualIndex(visualSettings));

            return(new Thickness(
                       ElementMargin * (1 + position.Item1) + ElementWidth * position.Item1,
                       ElementMargin * (1 + position.Item2) + ElementHeight * position.Item2, 0, 0));
        }
コード例 #3
0
        public void SaveVisualSettings(UserVisualSettings visualSettings)
        {
            var user = GetCurrentUser();

            visualSettings.UserId = user.Id;
            VisualSettings.Add(visualSettings);
            VisualSettings.Save();
        }
コード例 #4
0
        private Thickness CreateControlMargin(UserVisualSettings visualSettings)
        {
            var allVisualSettings =
                GetCurrentScenarios()
                .Select(x => x.VisualSettings)
                .OrderBy(z => z.VisualIndex)
                .ToList();

            var realVisualIndex = allVisualSettings.IndexOf(visualSettings);
            var position        = CreatePositionByIndex(realVisualIndex);

            return(new Thickness(
                       ElementMargin * (1 + position.Item1) + ElementWidth * position.Item1,
                       ElementMargin * (1 + position.Item2) + ElementHeight * position.Item2, 0, 0));
        }
コード例 #5
0
 public void SaveVisualSettings(Encrypted <UserVisualSettings> visualSettings)
 {
     Handle((user) =>
     {
         var decryptedVS = visualSettings.Decrypt(_secretKey);
         decryptedVS     = new UserVisualSettings()
         {
             AddictionalData = decryptedVS.AddictionalData,
             VisualIndex     = decryptedVS.VisualIndex,
             ScenarioId      = decryptedVS.ScenarioId,
             UserId          = user.Id
         };
         VisualSettings.Add(decryptedVS);
         VisualSettings.Save();
     });
 }
コード例 #6
0
        private int CreateRealVisualIndex(UserVisualSettings visualSettings)
        {
            var scenarios = ScenariosRepository.Scenarios;

            if (!IsConstructorMode)
            {
                var scenarioActionSource = new ScenarioActionSource(UsersRepository.SystemUser, ScenarioStartupSource.SystemUI, ScenarioAction.ViewValue);
                scenarios = scenarios.Where(x => x.IsAccessAvailable(scenarioActionSource)).ToArray();
            }

            var allVisualSettings =
                VisualSettingsRepository
                .VisualSettings
                .Where(x => x.UserId.Equals(UsersRepository.SystemUser.Id) && scenarios.Any(z => z.Id.Equals(x.ScenarioId)))
                .OrderBy(z => z.VisualIndex)
                .ToList();

            var realVisualIndex = allVisualSettings.IndexOf(visualSettings);

            return(realVisualIndex);
        }
コード例 #7
0
 public void Update(UserVisualSettings settings)
 {
     Add(settings); //operations equals
 }
コード例 #8
0
 public void Remove(UserVisualSettings settings)
 {
     _allSettings.RemoveAll(x => x.SameAs(settings));
 }