public void ApplyFilingScenario(Scenario scenario) { var dt = _propertyValues.SingleOrDefault(p => p.Item.PropertyName == "Document Type"); if (dt != null) { var dtSettings = scenario.DocumentTypeSettings.SingleOrDefault(dts => dts.Id == dt.Item.Id); _propertyValues.ForEach(pv => pv.Display.IsReadonly = false); if (dtSettings != null) { foreach (var settings in dtSettings.PropertyDisplays) { var propertyValue = PropertyValues.SingleOrDefault(pv => pv.Item.PropertyId == settings.Property.Id); if (propertyValue != null) { propertyValue.Display.IsVisible = settings.IsVisible; propertyValue.Display.IsReadonly = settings.IsReadonly; propertyValue.Display.Order = settings.Order; propertyValue.Display.IsIdentifier = settings.IsIdentifier; propertyValue.Display.PropertyRules.Clear(); if (settings.IsRequired) // && settings.Property.Id != Constants.LocationPropertyId) { propertyValue.Display.PropertyRules.Add(new IsRequiredRule()); } } } } } }
public void SetValue(int propertyId, int propertyValueId, object value) { var val = PropertyValues.SingleOrDefault(pv => pv.Item.PropertyId == propertyId); if (val != null) { var vals = val.Item.Property.PropertyItems; PropertyItem item; if (value is Guid) { item = vals.FirstOrDefault(v => v.Id == (int)value); } else { item = vals.FirstOrDefault(v => v.StringValue.ToLower() == value.ToString().ToLower()); } if (item != null) { SetValue(item); } else { if (val.Item.Property.PropertyType == PropertyType.Multi) { var multiItem = new MultiPropertyItem(val.Item.Property); multiItem.SetValue(value.ToString()); val.SetValue(multiItem); } else if (val.Item.Property.PropertyType == PropertyType.Hierarchical) { val.Item.Value = val.Item.Property.CreateItem(propertyValueId, value); } else if (String.IsNullOrWhiteSpace(value.ToString())) { SetValue(val.Item.Property.None); } else { val.Item.Value = value; } } } }
public void ApplyDefaultValues(Scenario scenario) { var dtSettings = scenario.DocumentTypeSettings.SingleOrDefault(dt => dt.Id == _propertyValues.Single(p => p.Item.PropertyName == "Document Type").Item.Id); _propertyValues.ForEach(pv => pv.Display.IsReadonly = false); if (dtSettings != null) { foreach (var settings in dtSettings.PropertyDisplays) { var propertyValue = PropertyValues.SingleOrDefault(pv => pv.Property.Id == settings.Property.Id); if (//settings.Property.Id != Constants.DocumentTypePropertyId && settings.StringDefaultValue != Constants.NoDefault && settings.StringDefaultValue != Constants.None) { propertyValue.SetValue(settings.DefaultValue); } } } }