private void EmitDefaultValue(ILProcessor il) { if (!HasInitializer) { DefaultValueGenerator.EmitDefaultValue(il, PropertyType); return; } //Emit field initializer from constructor var initializer = Initializers.First(); var instructions = initializer.Instructions.Skip(1).Copy(); if (initializer.HasVariables) { il.Body.InitLocals = true; foreach (var variable in instructions.CopyVariables()) { il.Body.Variables.Add(variable); } } foreach (var instruction in instructions) { il.Append(instruction); } //Replace stfld with a nop (redirect all potential jumps aswell) il.ReplaceAndUpdateJumps(instructions.Last(), Instruction.Create(OpCodes.Nop)); if (PropertyType.IsValueType) { il.Emit(OpCodes.Box, PropertyType); } }
private static object CreateModel(DataConversionParameters parameters) { var defaultValueGenerator = new DefaultValueGenerator(parameters.Resolver); return(new { Variable = parameters.Variable, Value = parameters.Value, HasDefaultValue = defaultValueGenerator.GetDefaultValue(parameters.Schema, parameters.TypeNameHint) != null, DefaultValue = defaultValueGenerator.GetDefaultValue(parameters.Schema, parameters.TypeNameHint), Type = parameters.Resolver.Resolve(parameters.Schema, parameters.IsPropertyNullable, parameters.TypeNameHint), IsNewableObject = IsNewableObject(parameters.Schema), IsDate = parameters.Settings.DateTimeType != TypeScriptDateTimeType.String && parameters.Schema.Format == JsonFormatStrings.DateTime, IsDictionary = parameters.Schema.IsDictionary, DictionaryValueType = parameters.Resolver.TryResolve(parameters.Schema.AdditionalPropertiesSchema, parameters.TypeNameHint) ?? "any", IsDictionaryValueNewableObject = parameters.Schema.AdditionalPropertiesSchema != null && IsNewableObject(parameters.Schema.AdditionalPropertiesSchema), IsDictionaryValueDate = parameters.Settings.DateTimeType != TypeScriptDateTimeType.String && parameters.Schema.AdditionalPropertiesSchema?.Format == JsonFormatStrings.DateTime, IsArray = parameters.Schema.Type.HasFlag(JsonObjectType.Array), ArrayItemType = parameters.Resolver.TryResolve(parameters.Schema.Item, parameters.TypeNameHint) ?? "any", IsArrayItemNewableObject = parameters.Schema.Item != null && IsNewableObject(parameters.Schema.Item), IsArrayItemDate = parameters.Settings.DateTimeType != TypeScriptDateTimeType.String && parameters.Schema.Item?.Format == JsonFormatStrings.DateTime, StringToDateCode = parameters.Settings.DateTimeType == TypeScriptDateTimeType.Date ? "new Date" : "moment", DateToStringCode = "toISOString()" }); }
public void Next() { var TestObject = new DefaultValueGenerator(); var Result = TestObject.Next(typeof(TestClass).GetMethod("TestMethod").GetParameters()[0]); Result.Should().BeNull(); }
public static IServiceCollection RegisterDefaultValueGenerator <TEntity>(this IServiceCollection services, Action <IDefaultValueGenerator <TEntity> > action) { return(services.AddSingleton((serviceProvider) => { var defaultValueGenerator = DefaultValueGenerator <TEntity> .Create(serviceProvider); action(defaultValueGenerator); return defaultValueGenerator; })); }
/// <summary>Initializes a new instance of the <see cref="PropertyModelBase"/> class.</summary> /// <param name="classTemplateModel">The class template model.</param> /// <param name="property">The property.</param> /// <param name="defaultValueGenerator">The default value generator.</param> /// <param name="settings">The settings.</param> protected PropertyModelBase(ClassTemplateModelBase classTemplateModel, JsonProperty property, DefaultValueGenerator defaultValueGenerator, CodeGeneratorSettingsBase settings) { _classTemplateModel = classTemplateModel; _property = property; _defaultValueGenerator = defaultValueGenerator; _settings = settings; PropertyName = _settings.PropertyNameGenerator.Generate(_property); }
public PropertyModelBase(JsonProperty property, DefaultValueGenerator defaultValueGenerator, CodeGeneratorSettingsBase settings) { _property = property; _defaultValueGenerator = defaultValueGenerator; _settings = settings; }
internal EntityFacet(string facetName, TData defaultValue, DefaultValueGenerator defaultValueGenerator) : base(facetName, defaultValue) { _defaultValueGenerator = defaultValueGenerator; }
public PropertyFacet(string facetName, TData defaultValue, DefaultValueGenerator defaultValueGenrator) : base(facetName, defaultValue) { _defaultValueGenerator = defaultValueGenrator; }
public void Creation() { var TestObject = new DefaultValueGenerator(); TestObject.Should().NotBeNull(); }
public void CanGenerate() { var TestObject = new DefaultValueGenerator(); TestObject.CanGenerate(typeof(TestClass).GetMethod("TestMethod").GetParameters()[0]).Should().BeTrue(); }