示例#1
0
        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());
                            }
                        }
                    }
                }
            }
        }
示例#2
0
        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;
                    }
                }
            }
        }
示例#3
0
        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);
                    }
                }
            }
        }