protected override void Load(Dsl.CallData callData, SkillInstance instance) { int num = callData.GetParamNum(); if (num > 0) { m_Duration = long.Parse(callData.GetParamId(0)); } if (num > 1) { m_Velocity = float.Parse(callData.GetParamId(1)); } if (num > 2) { m_StopAtTarget = int.Parse(callData.GetParamId(2)); } if (num > 3) { m_Offset = DslUtility.CalcVector3(callData.GetParam(3) as Dsl.CallData); } if (num > 4) { StartTime = long.Parse(callData.GetParamId(4)); } if (num > 5) { m_IsForRoundMove = callData.GetParamId(5) == "true"; } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { ReferencePropertyInfo info = (ReferencePropertyInfo)conceptInfo; var referenceGuid = new PropertyInfo { DataStructure = info.DataStructure, Name = info.Name + "ID" }; PropertyHelper.GenerateCodeForType(referenceGuid, codeBuilder, "Guid?"); if (DslUtility.IsQueryable(info.DataStructure) && DslUtility.IsQueryable(info.Referenced)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.DataStructure, csPropertyName: info.Name, propertyType: "Common.Queryable." + info.Referenced.Module.Name + "_" + info.Referenced.Name, additionalSetterCode: info.Name + "ID = value != null ? (Guid?)value.ID : null;"); } if (info.DataStructure is IOrmDataStructure && info.Referenced is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().HasOptional(t => t.{2}).WithMany().HasForeignKey(t => t.{2}ID);\r\n ", info.DataStructure.Module.Name, info.DataStructure.Name, info.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.DataStructure is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.{2});\r\n ", info.DataStructure.Module.Name, info.DataStructure.Name, info.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } }
private static string GetUniqueSuffixWithinBase(ComputeForNewBaseItemsInfo info) { var baseModule = info.Dependency_Extends.Base.Module; return(DslUtility.NameOptionalModule(info.EntityComputedFrom.Source, baseModule) + DslUtility.NameOptionalModule(info.EntityComputedFrom.Target, baseModule)); }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { var info = (UniqueReferenceInfo)conceptInfo; if (DslUtility.IsQueryable(info.Extension) && DslUtility.IsQueryable(info.Base)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Extension, csPropertyName: "Base", propertyType: "Common.Queryable." + info.Base.Module.Name + "_" + info.Base.Name, additionalSetterCode: "ID = value != null ? value.ID : Guid.Empty;"); DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Base, csPropertyName: info.ExtensionPropertyName(), propertyType: "Common.Queryable." + info.Extension.Module.Name + "_" + info.Extension.Name, additionalSetterCode: null); } if (UniqueReferenceDatabaseDefinition.IsSupported(info) && info.Extension is IOrmDataStructure && info.Base is IWritableOrmDataStructure) { var ormDataStructure = (IOrmDataStructure)info.Extension; string systemMessage = $"DataStructure:{info.Extension.FullName},Property:ID,Referenced:{info.Base.FullName}"; string onDeleteInterpretSqlError = @"if (interpretedException is Rhetos.UserException && Rhetos.Utilities.MsSqlUtility.IsReferenceErrorOnDelete(interpretedException, " + CsUtility.QuotedString(ormDataStructure.GetOrmSchema() + "." + ormDataStructure.GetOrmDatabaseObject()) + @", " + CsUtility.QuotedString("ID") + @", " + CsUtility.QuotedString(UniqueReferenceDatabaseDefinition.GetConstraintName(info)) + @")) ((Rhetos.UserException)interpretedException).SystemMessage = " + CsUtility.QuotedString(systemMessage) + @"; "; codeBuilder.InsertCode(onDeleteInterpretSqlError, WritableOrmDataStructureCodeGenerator.OnDatabaseErrorTag, info.Base); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { var info = (LinkedItemsInfo)conceptInfo; string propertyType = string.Format("IList<Common.Queryable.{0}_{1}>", info.ReferenceProperty.DataStructure.Module.Name, info.ReferenceProperty.DataStructure.Name); if (DslUtility.IsQueryable(info.ReferenceProperty.DataStructure) && DslUtility.IsQueryable(info.DataStructure)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.DataStructure, csPropertyName: info.Name, propertyType: propertyType, additionalSetterCode: null); } if (info.ReferenceProperty.DataStructure is IOrmDataStructure && info.DataStructure is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().HasOptional(t => t.{2}).WithMany(t => t.{3}).HasForeignKey(t => t.{2}ID);\r\n ", info.ReferenceProperty.DataStructure.Module.Name, info.ReferenceProperty.DataStructure.Name, info.ReferenceProperty.Name, info.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.DataStructure is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.{2});\r\n ", info.DataStructure.Module.Name, info.DataStructure.Name, info.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { int num = callData.GetParamNum(); if (num > 0) { m_Duration = long.Parse(callData.GetParamId(0)); } else { m_Duration = 0; } if (num > 1) { m_Height = float.Parse(callData.GetParamId(1)); } if (num > 2) { m_Velocity = float.Parse(callData.GetParamId(2)); } if (num > 3) { m_StopAtTarget = int.Parse(callData.GetParamId(3)); } if (num > 4) { m_Offset = DslUtility.CalcVector3(callData.GetParam(4) as Dsl.CallData); } if (num > 5) { StartTime = long.Parse(callData.GetParamId(5)); } CalcYVelocityAndG(); }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { int num = callData.GetParamNum(); if (num > 0) { m_Duration = long.Parse(callData.GetParamId(0)); } if (num > 1) { m_Velocity = float.Parse(callData.GetParamId(1)); } if (num > 2) { m_StopAtTarget = int.Parse(callData.GetParamId(2)); } if (num > 3) { m_Offset = DslUtility.CalcVector3(callData.GetParam(3) as Dsl.CallData); } if (num > 4) { StartTime = long.Parse(callData.GetParamId(4)); } if (num > 5) { string moveType = callData.GetParamId(5); IList <string> list = Converter.ConvertStringList(moveType); m_IsFreeMove = list.IndexOf("freemove") >= 0; m_RelativeToSelf = list.IndexOf("relativetoself") >= 0; m_RandRelativeToSelf = list.IndexOf("randrelativetoself") >= 0; m_RandRelativeToTarget = list.IndexOf("randrelativetotarget") >= 0; } }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { int num = callData.GetParamNum(); if (num > 0) { m_Duration = long.Parse(callData.GetParamId(0)); } else { m_Duration = 1000; } if (num > 1) { m_G = float.Parse(callData.GetParamId(1)); } if (num > 2) { var param = callData.GetParam(2); m_ObjPath = param.GetId(); var cd = param as Dsl.CallData; if (null != cd && m_ObjPath == "vector3") { m_Offset = DslUtility.CalcVector3(cd); } } if (num > 3) { StartTime = long.Parse(callData.GetParamId(3)); } }
public static string RemoveColumn(PropertyInfo property, string columnName) { return(Sql.Format("PropertyDatabaseDefinition_RemoveColumn", SqlUtility.Identifier(property.DataStructure.Module.Name), SqlUtility.Identifier(property.DataStructure.Name), DslUtility.ValidateIdentifier(columnName, property, "Invalid column name."), BeforeRemoveTag.Evaluate(property)).Trim()); }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { if (callData.GetParamNum() >= 3) { StartTime = long.Parse(callData.GetParamId(0)); m_RemainTime = long.Parse(callData.GetParamId(1)); m_RotateSpeed = DslUtility.CalcVector3(callData.GetParam(2) as Dsl.CallData); } }
private void LoadBoneConfig(Dsl.FunctionData stCall) { if (stCall.GetParamNum() >= 2) { m_IsBoneSound = true; m_Position = DslUtility.CalcVector3(stCall.GetParam(0) as Dsl.FunctionData);; m_IsAttach = bool.Parse(stCall.GetParamId(1)); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { ReferencePropertyInfo info = (ReferencePropertyInfo)conceptInfo; var referenceGuid = new PropertyInfo { DataStructure = info.DataStructure, Name = info.Name + "ID" }; PropertyHelper.GenerateCodeForType(referenceGuid, codeBuilder, "Guid?"); PropertyHelper.GenerateStorageMapping(referenceGuid, codeBuilder, "System.Data.SqlDbType.UniqueIdentifier"); if (DslUtility.IsQueryable(info.DataStructure) && DslUtility.IsQueryable(info.Referenced)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.DataStructure, csPropertyName: info.Name, propertyType: "Common.Queryable." + info.Referenced.Module.Name + "_" + info.Referenced.Name, additionalSetterCode: info.Name + "ID = value != null ? (Guid?)value.ID : null;"); } if (ReferencePropertyDbConstraintInfo.IsSupported(info) && info.DataStructure is IOrmDataStructure && info.Referenced is IOrmDataStructure) { var ormDataStructure = (IOrmDataStructure)info.DataStructure; var referencedOrmDataStructure = (IOrmDataStructure)info.Referenced; string systemMessage = $"DataStructure:{info.DataStructure.FullName},Property:{info.Name}ID,Referenced:{info.Referenced.FullName}"; if (info.DataStructure is IWritableOrmDataStructure) { string onEnterInterpretSqlError = @"if (interpretedException is Rhetos.UserException && Rhetos.Utilities.MsSqlUtility.IsReferenceErrorOnInsertUpdate(interpretedException, " + CsUtility.QuotedString(referencedOrmDataStructure.GetOrmSchema() + "." + referencedOrmDataStructure.GetOrmDatabaseObject()) + @", " + CsUtility.QuotedString("ID") + @", " + CsUtility.QuotedString(ReferencePropertyConstraintDatabaseDefinition.GetConstraintName(info)) + @")) ((Rhetos.UserException)interpretedException).SystemMessage = " + CsUtility.QuotedString(systemMessage) + @"; "; codeBuilder.InsertCode(onEnterInterpretSqlError, WritableOrmDataStructureCodeGenerator.OnDatabaseErrorTag, info.DataStructure); if (info.Referenced == info.DataStructure) { codeBuilder.InsertCode($@"if (entity.{info.Name}ID != null && entity.{info.Name}ID != entity.ID) yield return entity.{info.Name}ID.Value; ", WritableOrmDataStructureCodeGenerator.PersistenceStorageMapperDependencyResolutionTag, info.DataStructure); } } if (info.Referenced is IWritableOrmDataStructure) { string onDeleteInterpretSqlError = @"if (interpretedException is Rhetos.UserException && Rhetos.Utilities.MsSqlUtility.IsReferenceErrorOnDelete(interpretedException, " + CsUtility.QuotedString(ormDataStructure.GetOrmSchema() + "." + ormDataStructure.GetOrmDatabaseObject()) + @", " + CsUtility.QuotedString(info.GetSimplePropertyName()) + @", " + CsUtility.QuotedString(ReferencePropertyConstraintDatabaseDefinition.GetConstraintName(info)) + @")) ((Rhetos.UserException)interpretedException).SystemMessage = " + CsUtility.QuotedString(systemMessage) + @"; "; codeBuilder.InsertCode(onDeleteInterpretSqlError, WritableOrmDataStructureCodeGenerator.OnDatabaseErrorTag, info.Referenced); } } }
public static void GenerateCodeForType(PropertyInfo info, ICodeBuilder codeBuilder, string propertyType) { codeBuilder.InsertCode(PropertySnippet(info, propertyType), DataStructureCodeGenerator.BodyTag, info.DataStructure); if (DslUtility.IsQueryable(info.DataStructure)) { codeBuilder.InsertCode( string.Format(",\r\n {0} = item.{0}", info.Name), RepositoryHelper.AssignSimplePropertyTag, info.DataStructure); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { DataStructureInfo info = (DataStructureInfo)conceptInfo; if (DslUtility.IsQueryable(info)) { codeBuilder.InsertCode(SnippetQueryableClass(info), DomInitializationCodeGenerator.CommonQueryableMemebersTag); codeBuilder.InsertCode("IDetachOverride", DataStructureQueryableCodeGenerator.InterfaceTag, info); codeBuilder.InsertCode("bool IDetachOverride.Detaching { get; set; }\r\n\r\n ", DataStructureQueryableCodeGenerator.MembersTag, info); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { var info = (UniqueReferenceInfo)conceptInfo; if (DslUtility.IsQueryable(info.Extension) && DslUtility.IsQueryable(info.Base)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Extension, csPropertyName: "Base", propertyType: "Common.Queryable." + info.Base.Module.Name + "_" + info.Base.Name, additionalSetterCode: "ID = value != null ? value.ID : Guid.Empty;"); DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Base, csPropertyName: info.ExtensionPropertyName(), propertyType: "Common.Queryable." + info.Extension.Module.Name + "_" + info.Extension.Name, additionalSetterCode: null); } if (info.Extension is IOrmDataStructure && info.Base is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().HasRequired(t => t.Base).WithOptional(t => t.{2});\r\n ", info.Extension.Module.Name, info.Extension.Name, info.ExtensionPropertyName()), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.Extension is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.Base);\r\n ", info.Extension.Module.Name, info.Extension.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.Base is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.{2});\r\n ", info.Base.Module.Name, info.Base.Name, info.ExtensionPropertyName()), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } if (UniqueReferenceDatabaseDefinition.IsSupported(info) && info.Extension is IOrmDataStructure && info.Base is IWritableOrmDataStructure) { var ormDataStructure = (IOrmDataStructure)info.Extension; string systemMessage = "DataStructure:" + info.Extension + ",Property:ID,Referenced:" + info.Base; string onDeleteInterpretSqlError = @"if (interpretedException is Rhetos.UserException && Rhetos.Utilities.MsSqlUtility.IsReferenceErrorOnDelete(interpretedException, " + CsUtility.QuotedString(ormDataStructure.GetOrmSchema() + "." + ormDataStructure.GetOrmDatabaseObject()) + @", " + CsUtility.QuotedString("ID") + @", " + CsUtility.QuotedString(UniqueReferenceDatabaseDefinition.GetConstraintName(info)) + @")) ((Rhetos.UserException)interpretedException).SystemMessage = " + CsUtility.QuotedString(systemMessage) + @"; "; codeBuilder.InsertCode(onDeleteInterpretSqlError, WritableOrmDataStructureCodeGenerator.OnDatabaseErrorTag, info.Base); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { var info = (LinkedItemsInfo)conceptInfo; string propertyType = string.Format("IList<Common.Queryable.{0}_{1}>", info.ReferenceProperty.DataStructure.Module.Name, info.ReferenceProperty.DataStructure.Name); if (DslUtility.IsQueryable(info.ReferenceProperty.DataStructure) && DslUtility.IsQueryable(info.DataStructure)) { DataStructureQueryableCodeGenerator.AddNavigationProperty(codeBuilder, info.DataStructure, csPropertyName: info.Name, propertyType: propertyType); } }
public static string AddColumn(ConceptMetadata conceptMetadata, PropertyInfo property, string options = "") { string columnName = conceptMetadata.Get(property, ColumnNamesMetadata).Single(); return(Sql.Format("PropertyDatabaseDefinition_AddColumn", SqlUtility.Identifier(property.DataStructure.Module.Name), SqlUtility.Identifier(property.DataStructure.Name), DslUtility.ValidateIdentifier(columnName, property, "Invalid column name."), conceptMetadata.Get(property, ColumnTypesMetadata).Single(), options, Options1Tag.Evaluate(property), Options2Tag.Evaluate(property), AfterCreateTag.Evaluate(property)).Trim()); }
public void GetBaseChangesOnDependencyHistory() { using (var scope = TestScope.Create()) { var dslModel = scope.Resolve <IDslModel>(); var dependsOnHistory = (SqlQueryableInfo)dslModel.FindByKey("DataStructureInfo TestHistory.SimpleWithLock_History"); var entityDependencies = DslUtility.GetBaseChangesOnDependency(dependsOnHistory, dslModel); Assert.AreEqual( "Entity TestHistory.SimpleWithLock, Entity TestHistory.SimpleWithLock_Changes", TestUtility.DumpSorted(entityDependencies, c => c.GetUserDescription())); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { var info = (ComplexPropertyInfo)conceptInfo; string typeName = info.PropertyType.Module.Name + "." + info.PropertyType.Name; if (DslUtility.IsQueryable(info.PropertyType)) { GeneratePropertyWithSimpleSerializer(codeBuilder, info, typeName); } else { PropertyHelper.GenerateCodeForType((PropertyInfo)conceptInfo, codeBuilder, typeName); } }
protected override void Load(Dsl.FunctionData callData, SkillInstance instance) { int num = callData.GetParamNum(); if (num >= 5) { StartTime = long.Parse(callData.GetParamId(0)); m_RemainTime = long.Parse(callData.GetParamId(1)); m_ShaderName = callData.GetParamId(2); m_StartColor = DslUtility.CalcColor(callData.GetParam(3) as Dsl.FunctionData); m_ChangeColor = DslUtility.CalcColor(callData.GetParam(4) as Dsl.FunctionData); } if (num >= 6) { m_ChangeTime = long.Parse(callData.GetParamId(5)); } }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { int num = callData.GetParamNum(); if (num >= 3) { StartTime = long.Parse(callData.GetParamId(0)); var param = callData.GetParam(1); m_ObjPath = param.GetId(); var cd = param as Dsl.CallData; if (null != cd && m_ObjPath == "vector3") { m_RelativeOffset = DslUtility.CalcVector3(cd); } m_DurationTime = long.Parse(callData.GetParamId(2)); } }
protected override void Load(Dsl.FunctionData funcData, SkillInstance instance) { Dsl.CallData callData = funcData.Call; if (null != callData) { Load(callData, instance); Dsl.ISyntaxComponent statement = funcData.Statements.Find(st => st.GetId() == "transform"); if (null != statement) { Dsl.CallData stCall = statement as Dsl.CallData; if (null != stCall) { if (stCall.GetParamNum() > 0) { Dsl.CallData param0 = stCall.GetParam(0) as Dsl.CallData; if (null != param0) { m_Pos = DslUtility.CalcVector3(param0); } } if (stCall.GetParamNum() > 1) { Dsl.CallData param1 = stCall.GetParam(1) as Dsl.CallData; if (null != param1) { m_Dir = DslUtility.CalcEularRotation(param1); } } if (stCall.GetParamNum() > 2) { Dsl.CallData param2 = stCall.GetParam(2) as Dsl.CallData; if (null != param2) { m_Scale = DslUtility.CalcVector3(param2); } } } } } }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { if (callData.GetParamNum() >= 5) { StartTime = long.Parse(callData.GetParamId(0)); m_BoneName = callData.GetParamId(1); if (m_BoneName == " ") { m_BoneName = ""; } var param2 = callData.GetParam(2); m_PosObjPath = param2.GetId(); var cd2 = param2 as Dsl.CallData; if (null != cd2 && m_PosObjPath == "vector3") { m_Postion = DslUtility.CalcVector3(cd2); } var param3 = callData.GetParam(3); m_RotateObjPath = param3.GetId(); var cd3 = param3 as Dsl.CallData; if (null != cd3 && m_RotateObjPath == "eular") { m_Rotate = DslUtility.CalcEularAngles(cd3); } m_RelativeType = callData.GetParamId(4); } if (callData.GetParamNum() >= 6) { m_IsAttach = bool.Parse(callData.GetParamId(5)); } if (callData.GetParamNum() >= 7) { m_IsUseTerrainHeight = bool.Parse(callData.GetParamId(6)); } if (callData.GetParamNum() >= 8) { m_RandomRotate = DslUtility.CalcVector3(callData.GetParam(7) as Dsl.CallData); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { DataStructureExtendsInfo info = (DataStructureExtendsInfo)conceptInfo; var extensionPropertyName = ExtensionPropertyName(info); if (DslUtility.IsQueryable(info.Extension) && DslUtility.IsQueryable(info.Base)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Extension, csPropertyName: "Base", propertyType: "Common.Queryable." + info.Base.Module.Name + "_" + info.Base.Name, additionalSetterCode: "ID = value != null ? value.ID : Guid.Empty;"); DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.Base, csPropertyName: extensionPropertyName, propertyType: "Common.Queryable." + info.Extension.Module.Name + "_" + info.Extension.Name, additionalSetterCode: null); } if (info.Extension is IOrmDataStructure && info.Base is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().HasRequired(t => t.Base).WithOptional(t => t.{2});\r\n ", info.Extension.Module.Name, info.Extension.Name, extensionPropertyName), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.Extension is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.Base);\r\n ", info.Extension.Module.Name, info.Extension.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.Base is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.{2});\r\n ", info.Base.Module.Name, info.Base.Name, extensionPropertyName), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { var info = (ComputeForNewBaseItemsInfo)conceptInfo; var baseDS = info.Dependency_Extends.Base; var uniqueSuffix = DslUtility.NameOptionalModule(info.EntityComputedFrom.Source, baseDS.Module) + DslUtility.NameOptionalModule(info.EntityComputedFrom.Target, baseDS.Module); string saveFilterArgument; if (!string.IsNullOrWhiteSpace(info.FilterSaveExpression)) { string saveFilterMethodName = $"FilterSaveComputeForNewBaseItems_{uniqueSuffix}"; var extensionDS = info.Dependency_Extends.Extension; var parsedExpression = new ParsedExpression(info.FilterSaveExpression, new[] { $"IEnumerable<{extensionDS.FullName}>" }, info); string filterSaveMethod = $@"private IEnumerable<{extensionDS.FullName}> {saveFilterMethodName}{parsedExpression.MethodParametersAndBody} "; codeBuilder.InsertCode(filterSaveMethod, RepositoryHelper.RepositoryMembers, baseDS); saveFilterArgument = $", {saveFilterMethodName}"; } else { saveFilterArgument = ""; } string callRecomputeOnSave = $@"if (insertedNew.Any()) {{ Guid[] insertedIds = insertedNew.Select(item => item.ID).ToArray(); _domRepository.{info.EntityComputedFrom.Target.FullName}.{EntityComputedFromCodeGenerator.RecomputeFunctionName(info.EntityComputedFrom)}(insertedIds{saveFilterArgument}); }} "; codeBuilder.InsertCode(callRecomputeOnSave, WritableOrmDataStructureCodeGenerator.OnSaveTag1, baseDS); }
/// <summary> /// This will suppress some WCF issues with the property serialization in web response: /// WCF tries to serialized complete instance type, which can sometimes be a queryable class or an Entity Framework proxy class /// but we only need to serialize the base properties from the simple class. /// </summary> private static void GeneratePropertyWithSimpleSerializer(ICodeBuilder codeBuilder, ComplexPropertyInfo info, string typeName) { string querybleTypeName = "Common.Queryable." + info.PropertyType.Module.Name + "_" + info.PropertyType.Name; string propertySnippet = $@"public {typeName} {info.Name} {{ get; set; }} [DataMember(Name = ""{info.Name}"")] public {typeName} {info.Name}_ToSimple {{ get {{ return {info.Name} is {querybleTypeName} ? (({querybleTypeName}){info.Name}).ToSimple() : {info.Name}; }} private set {{ {info.Name} = value; }} }} "; codeBuilder.InsertCode(propertySnippet, DataStructureCodeGenerator.BodyTag, info.DataStructure); if (DslUtility.IsQueryable(info.DataStructure)) { codeBuilder.InsertCode( string.Format(",\r\n {0} = item.{0}", info.Name), RepositoryHelper.AssignSimplePropertyTag, info.DataStructure); } }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { int num = callData.GetParamNum(); if (num > 0) { m_Duration = long.Parse(callData.GetParamId(0)); } else { m_Duration = 1000; } if (num > 1) { m_G = float.Parse(callData.GetParamId(1)); } if (num > 2) { var param = callData.GetParam(2); m_ObjPath = param.GetId(); var cd = param as Dsl.CallData; if (null != cd && m_ObjPath == "vector3") { m_Offset = DslUtility.CalcVector3(cd); } } if (num > 3) { StartTime = long.Parse(callData.GetParamId(3)); } if (num > 4) { string moveType = callData.GetParamId(4); IList <string> list = Converter.ConvertStringList(moveType); m_IsFaceToTarget = list.IndexOf("facetotarget") >= 0; } }
protected override void Load(Dsl.CallData callData, SkillInstance instance) { if (callData.GetParamNum() >= 6) { StartTime = long.Parse(callData.GetParamId(0)); m_BoneName = callData.GetParamId(1); if (m_BoneName == " ") { m_BoneName = ""; } m_Postion = DslUtility.CalcVector3(callData.GetParam(2) as Dsl.CallData); m_Rotate = DslUtility.CalcEularAngles(callData.GetParam(3) as Dsl.CallData); m_RelativeType = callData.GetParamId(4); m_IsAttach = bool.Parse(callData.GetParamId(5)); } if (callData.GetParamNum() >= 7) { m_IsUseTerrainHeight = bool.Parse(callData.GetParamId(6)); } if (callData.GetParamNum() >= 8) { m_RandomRotate = DslUtility.CalcVector3(callData.GetParam(7) as Dsl.CallData); } }
public static string RecomputeFunctionName(EntityComputedFromInfo info) { return("RecomputeFrom" + DslUtility.NameOptionalModule(info.Source, info.Target.Module)); }
public void GenerateCode(IConceptInfo conceptInfo, ICodeBuilder codeBuilder) { ReferencePropertyInfo info = (ReferencePropertyInfo)conceptInfo; var referenceGuid = new PropertyInfo { DataStructure = info.DataStructure, Name = info.Name + "ID" }; PropertyHelper.GenerateCodeForType(referenceGuid, codeBuilder, "Guid?"); if (DslUtility.IsQueryable(info.DataStructure) && DslUtility.IsQueryable(info.Referenced)) { DataStructureQueryableCodeGenerator.AddNavigationPropertyWithBackingField(codeBuilder, info.DataStructure, csPropertyName: info.Name, propertyType: "Common.Queryable." + info.Referenced.Module.Name + "_" + info.Referenced.Name, additionalSetterCode: info.Name + "ID = value != null ? (Guid?)value.ID : null;"); } if (info.DataStructure is IOrmDataStructure && info.Referenced is IOrmDataStructure) { codeBuilder.InsertCode( info.OrmMappingSnippet(), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } else if (info.DataStructure is IOrmDataStructure) { codeBuilder.InsertCode( string.Format("modelBuilder.Entity<Common.Queryable.{0}_{1}>().Ignore(t => t.{2});\r\n ", info.DataStructure.Module.Name, info.DataStructure.Name, info.Name), DomInitializationCodeGenerator.EntityFrameworkOnModelCreatingTag); } if (ReferencePropertyConstraintDatabaseDefinition.IsSupported(info) && info.DataStructure is IOrmDataStructure && info.Referenced is IOrmDataStructure) { var ormDataStructure = (IOrmDataStructure)info.DataStructure; var referencedOrmDataStructure = (IOrmDataStructure)info.Referenced; string systemMessage = "DataStructure:" + info.DataStructure + ",Property:" + info.Name + "ID,Referenced:" + info.Referenced; if (info.DataStructure is IWritableOrmDataStructure) { string onEnterInterpretSqlError = @"if (interpretedException is Rhetos.UserException && Rhetos.Utilities.MsSqlUtility.IsReferenceErrorOnInsertUpdate(interpretedException, " + CsUtility.QuotedString(referencedOrmDataStructure.GetOrmSchema() + "." + referencedOrmDataStructure.GetOrmDatabaseObject()) + @", " + CsUtility.QuotedString("ID") + @", " + CsUtility.QuotedString(ReferencePropertyConstraintDatabaseDefinition.GetConstraintName(info)) + @")) ((Rhetos.UserException)interpretedException).SystemMessage = " + CsUtility.QuotedString(systemMessage) + @"; "; codeBuilder.InsertCode(onEnterInterpretSqlError, WritableOrmDataStructureCodeGenerator.OnDatabaseErrorTag, info.DataStructure); } if (info.Referenced is IWritableOrmDataStructure) { string onDeleteInterpretSqlError = @"if (interpretedException is Rhetos.UserException && Rhetos.Utilities.MsSqlUtility.IsReferenceErrorOnDelete(interpretedException, " + CsUtility.QuotedString(ormDataStructure.GetOrmSchema() + "." + ormDataStructure.GetOrmDatabaseObject()) + @", " + CsUtility.QuotedString(info.Name + "ID") + @", " + CsUtility.QuotedString(ReferencePropertyConstraintDatabaseDefinition.GetConstraintName(info)) + @")) ((Rhetos.UserException)interpretedException).SystemMessage = " + CsUtility.QuotedString(systemMessage) + @"; "; codeBuilder.InsertCode(onDeleteInterpretSqlError, WritableOrmDataStructureCodeGenerator.OnDatabaseErrorTag, info.Referenced); } } }