| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- using System;
- using System.Linq;
- using System.Windows.Controls;
- using InABox.Clients;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.WPF;
- namespace PRSDesktop
- {
- public class SecurityGroupGrid : DynamicDataGrid<SecurityGroup>
- {
- public SecurityGroupGrid()
- {
- AddButton("Duplicate", null, DuplicateGroup);
- HiddenColumns.Add(x => x.ID);
- HiddenColumns.Add(x => x.Description);
- HiddenColumns.Add(x => x.Code);
- }
- private bool DuplicateGroup(Button sender, CoreRow[] rows)
- {
- using (new WaitCursor())
- {
- foreach (var row in rows)
- {
- var id = row.Get<SecurityGroup, Guid>(x => x.ID);
- var code = row.Get<SecurityGroup, string>(x => x.Code);
- var desc = row.Get<SecurityGroup, string>(x => x.Description);
- var group = new Client<SecurityGroup>().Load(new Filter<SecurityGroup>(x => x.ID).IsEqualTo(id)).FirstOrDefault();
- group.ID = Guid.Empty;
- group.Created = DateTime.Now;
- group.CreatedBy = ClientFactory.UserID;
- group.LastUpdate = group.Created;
- group.LastUpdateBy = group.CreatedBy;
- group.Code = string.Format("{0} (Copy)", group.Code);
- group.Description = string.Format("{0} (Copy)", group.Description);
- new Client<SecurityGroup>().Save(group, "Duplicated from " + code);
- var tokens = new Client<SecurityToken>().Load(new Filter<SecurityToken>(x => x.Group.ID).IsEqualTo(id));
- foreach (var token in tokens)
- {
- token.ID = Guid.Empty;
- token.Group.ID = group.ID;
- token.Created = DateTime.Now;
- token.CreatedBy = ClientFactory.UserID;
- token.LastUpdate = group.Created;
- token.LastUpdateBy = group.CreatedBy;
- }
- new Client<SecurityToken>().Save(tokens, "Duplicated from " + code);
- }
- }
- return true;
- }
- }
- }
|