public void Move(UserControl control, Point position) { var model = ((ScenarioModel)control.DataContext); int index = -1; var controlAtPoint = grid.Children .Cast <UserControl>() .FirstOrDefault(x => { index = CreateRealVisualIndex(((ScenarioModel)x.DataContext).VisualSettings); var virtualPosition = CreatePositionByIndex(index); return(virtualPosition.Item1.Equals((int)position.X) && virtualPosition.Item2.Equals((int)position.Y)); }); if (controlAtPoint != null) { var ordered = grid.Children .Cast <UserControl>() .Select(x => (ScenarioModel)x.DataContext) .OrderBy(x => x.VisualSettings.VisualIndex) .ToList(); ordered.Remove(model); ordered.Insert(index, model); int newIndex = 0; foreach (var orderedModel in ordered) { orderedModel.VisualIndex = newIndex++; } VisualSettingsRepository.Save(); } Rearrange(); }
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)); }
public void SaveVisualSettings(UserVisualSettings visualSettings) { var user = GetCurrentUser(); visualSettings.UserId = user.Id; VisualSettings.Add(visualSettings); VisualSettings.Save(); }
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(); }); }