Пример #1
0
        public static void Presence_of_concreteType_token_does_not_interfere_with_normal_deserialization()
        {
            // Arrange
            var expectedId            = "year-field";
            var expectedDecimalPlaces = 5;
            var expectedTitle         = "my-title";

            var year = new YearField(expectedId)
            {
                NumberOfDecimalPlaces = expectedDecimalPlaces,
                Title = expectedTitle,
            };

            var serializer = new ObcJsonSerializer(typeof(TypesToRegisterJsonSerializationConfiguration <Field>).ToJsonSerializationConfigurationType());

            var jsonWithConcreteType = serializer.SerializeToString(year);

            var settings = new NullJsonSerializationConfiguration().BuildJsonSerializerSettings(SerializationDirection.Deserialize, (JsonSerializationConfigurationBase)serializer.SerializationConfiguration);

            settings.Converters = new JsonConverter[0];

            // Act
            var actual = JsonConvert.DeserializeObject <YearField>(jsonWithConcreteType, settings);

            // Assert
            typeof(YearField).IsAssignableTo(typeof(Field)).Should().BeTrue();
            jsonWithConcreteType.Should().Contain("$concreteType");
            actual.Id.Should().Be(expectedId);
            actual.NumberOfDecimalPlaces.Should().Be(expectedDecimalPlaces);
            actual.Title.Should().Be(expectedTitle);
        }
Пример #2
0
        public UMHDataConstituentSearchHelper(RootUIModel model, Blackbaud.AppFx.XmlTypes.SearchListOutputType outputDefinition)
        {
            _model            = model;
            _outputDefinition = outputDefinition;

            _checkmergedconstituents = (BooleanField)_model.Fields["CHECKMERGEDCONSTITUENTS"];
            _exactmatchonly          = (BooleanField)_model.Fields["EXACTMATCHONLY"];
            _includeindividuals      = (BooleanField)_model.Fields["INCLUDEINDIVIDUALS"];
            _checknickname           = (BooleanField)_model.Fields["CHECKNICKNAME"];
            _checkaliases            = (BooleanField)_model.Fields["CHECKALIASES"];
            _onlyprimaryaddress      = (BooleanField)_model.Fields["ONLYPRIMARYADDRESS"];
            _includeorganizations    = (BooleanField)_model.Fields["INCLUDEORGANIZATIONS"];
            _includegroups           = (BooleanField)_model.Fields["INCLUDEGROUPS"];
            _excludecustomgroups     = (BooleanField)_model.Fields["EXCLUDECUSTOMGROUPS"];
            _excludehouseholds       = (BooleanField)_model.Fields["EXCLUDEHOUSEHOLDS"];
            _fuzzysearchonname       = (BooleanField)_model.Fields["FUZZYSEARCHONNAME"];
            _countryId       = (SimpleDataListField <Guid>)_model.Fields["COUNTRYID"];
            _stateid         = (SimpleDataListField <Guid>)_model.Fields["STATEID"];
            _postcode        = (SearchListField <string>)_model.Fields["POSTCODE"];
            _keyname         = (StringField)_model.Fields["KEYNAME"];
            _firstname       = (StringField)_model.Fields["FIRSTNAME"];
            _addressblock    = (StringField)_model.Fields["ADDRESSBLOCK"];
            _city            = (StringField)_model.Fields["CITY"];
            _primarybusiness = (StringField)_model.Fields["PRIMARYBUSINESS"];
            _emailaddress    = (StringField)_model.Fields["EMAILADDRESS"];
            _ssn             = (StringField)_model.Fields["SSN"];
            _searchin        = (StringField)_model.Fields["SEARCHIN"];
            _minimumdate     = (DateField)_model.Fields["MINIMUMDATE"];
            _classof         = (YearField)_model.Fields["CLASSOF"];

            UIField constituentQuickFindField = null;

            if (_model.Fields.TryGetValue("CONSTITUENTQUICKFIND", ref constituentQuickFindField))
            {
                _constituentquickfind = (StringField)constituentQuickFindField;
            }

            _hideadvancedoptions = (GenericUIAction)_model.Actions["HIDEADVANCEDOPTIONS"];
            _showadvancedoptions = (GenericUIAction)_model.Actions["SHOWADVANCEDOPTIONS"];
        }