12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Windows;
- using System.Windows.Controls;
- using InABox.Clients;
- using InABox.Core;
- using InABox.DynamicGrid;
- namespace PRSDesktop
- {
- /// <summary>
- /// Interaction logic for SecurityTokenPanel.xaml
- /// </summary>
- public partial class UserSecurityTokenPage : UserControl, IDynamicCustomEditorPage<User>
- {
- private readonly UserTokenGrid grid = new();
- public bool ReadOnly { get; set; }
- public UserSecurityTokenPage()
- {
- InitializeComponent();
- Content = grid;
- }
- public bool Ready { get; set; }
- public DynamicEditorGrid EditorGrid { get; set; }
- public PageType PageType => PageType.Other;
- public void AfterSave(object item)
- {
- var updates = new List<UserSecurityToken>();
- var deletes = new List<UserSecurityToken>();
- foreach (var token in grid.Tokens)
- {
- var uti = grid.Items.FirstOrDefault(x => x.Code.Equals(token.Descriptor.Split('.').Last()));
- if (uti.HasValue)
- {
- if (token.IsChanged())
- updates.Add(token);
- }
- else
- {
- if (token.ID != Guid.Empty)
- deletes.Add(token);
- }
- }
- if (updates.Any())
- new Client<UserSecurityToken>().Save(updates, "");
- foreach (var delete in deletes)
- new Client<UserSecurityToken>().Delete(delete, "");
- }
- public void BeforeSave(object item)
- {
- }
- public string Caption()
- {
- return "Security Tokens";
- }
- public void Load(object item, Func<Type, CoreTable?>? PageDataHandler)
- {
- var user = item as User;
- grid.GroupID = user.SecurityGroup.ID;
- grid.UserID = user.ID;
- grid.Refresh(true, true);
- Ready = true;
- }
- public Size MinimumSize()
- {
- return new Size(300, 600);
- }
- public int Order()
- {
- return 0;
- }
-
- public event EventHandler? OnChanged;
- public void DoChanged()
- {
- OnChanged?.Invoke(this, EventArgs.Empty);
- }
- }
- }
|