public ObjectView<ClaimDTO> AddClaim(ClaimDTO dto)
        {
            _parent.CurrentAsset.AddClaim(dto);

            ClaimList.DataSource = _parent.CurrentAsset.GetClaims().ToList();
            ClaimList.Refresh();
            _parent.SetModified();

            var index = ClaimList.Find(PropertyUtil.GetPropertyDescriptor<ClaimDTO>("ActionTemplate"), dto.ActionTemplate);
            return ClaimList[index];
        }
        private void OnButton_Click(object sender, System.EventArgs evt)
        {
            var dto = new ClaimDTO() {ActionTemplate = _actionTemplateField.Value.ToString(),ClaimSI = _clamSI.Value};

            try
            {
                AddedObject = _add ? _vm.AddClaim(dto) : _vm.ReplaceClaim(_previousDto,dto);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            Close();
        }
        public AddOrEditClaimForm(ClaimsVM vm, ClaimDTO dto)
        {
            InitializeComponent();

            _vm = vm;
            _previousDto = dto;

            _add = dto == null;
            _button.Text = _add ? "Add" : "Update";
            if (dto != null)
            {
                _actionTemplateField.Value = (Name)dto.ActionTemplate;
                _clamSI.Value = dto.ClaimSI;
            }
        }
        public ObjectView<ClaimDTO> ReplaceClaim(ClaimDTO oldClaim, ClaimDTO newClaim)
        {
            _parent.CurrentAsset.ReplaceClaim(oldClaim,newClaim);

            ClaimList.DataSource = _parent.CurrentAsset.GetClaims().ToList();
            ClaimList.Refresh();
            _parent.SetModified();

            var index = ClaimList.Find(PropertyUtil.GetPropertyDescriptor<ClaimDTO>("ActionTemplate"), newClaim.ActionTemplate);
            return ClaimList[index];
        }