protected override IEnumerable <Command> OnAlter(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context) { var otherTrigger = FindOtherChecked(targetMetadata.MetadataTriggers.TriggersByName, TriggerName, "trigger"); if ((TriggerClass != otherTrigger.TriggerClass) || (TriggerClass == TriggerClassType.DB && TriggerType != otherTrigger.TriggerType) || (TriggerClass == TriggerClassType.DDL && TriggerType != otherTrigger.TriggerType)) { throw new NotSupportedOnFirebirdException($"Altering DB and DDL trigger type is not supported ({TriggerName})."); } else if (SqlSecurity == null && otherTrigger.SqlSecurity != null) { yield return(new Command().Append($"ALTER TRIGGER {TriggerName.AsSqlIndentifier()} DROP SQL SECURITY")); } else if (SqlSecurity != null && otherTrigger.SqlSecurity != null && SqlSecurity != otherTrigger.SqlSecurity) { yield return(new Command().Append($"ALTER TRIGGER {TriggerName.AsSqlIndentifier()} SQL SECURITY {SqlHelper.SqlSecurityString(SqlSecurity)}")); } else { foreach (var item in OnCreate(sourceMetadata, targetMetadata, context)) { yield return(item); } } }
/// <summary>Snippet for DeleteTrigger</summary> public void DeleteTriggerRequestObject() { // Snippet: DeleteTrigger(DeleteTriggerRequest, CallSettings) // Create client EventarcClient eventarcClient = EventarcClient.Create(); // Initialize request argument(s) DeleteTriggerRequest request = new DeleteTriggerRequest { TriggerName = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"), Etag = "", AllowMissing = false, ValidateOnly = false, }; // Make the request Operation <Trigger, OperationMetadata> response = eventarcClient.DeleteTrigger(request); // Poll until the returned long-running operation is complete Operation <Trigger, OperationMetadata> completedResponse = response.PollUntilCompleted(); // Retrieve the operation result Trigger result = completedResponse.Result; // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name Operation <Trigger, OperationMetadata> retrievedResponse = eventarcClient.PollOnceDeleteTrigger(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // If it has completed, then access the result Trigger retrievedResult = retrievedResponse.Result; } // End snippet }
/// <summary>Snippet for DeleteTriggerAsync</summary> public async Task DeleteTriggerResourceNamesAsync() { // Snippet: DeleteTriggerAsync(TriggerName, bool, CallSettings) // Additional: DeleteTriggerAsync(TriggerName, bool, CancellationToken) // Create client EventarcClient eventarcClient = await EventarcClient.CreateAsync(); // Initialize request argument(s) TriggerName name = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"); bool allowMissing = false; // Make the request Operation <Trigger, OperationMetadata> response = await eventarcClient.DeleteTriggerAsync(name, allowMissing); // Poll until the returned long-running operation is complete Operation <Trigger, OperationMetadata> completedResponse = await response.PollUntilCompletedAsync(); // Retrieve the operation result Trigger result = completedResponse.Result; // Or get the name of the operation string operationName = response.Name; // This name can be stored, then the long-running operation retrieved later by name Operation <Trigger, OperationMetadata> retrievedResponse = await eventarcClient.PollOnceDeleteTriggerAsync(operationName); // Check if the retrieved long-running operation has completed if (retrievedResponse.IsCompleted) { // If it has completed, then access the result Trigger retrievedResult = retrievedResponse.Result; } // End snippet }
public UberGumpTree(Mobile owner, XmlNode current, XmlDocument document, string fileName, XmlScript script = null, TriggerName triggerName = TriggerName.NoTrigger) : base(150, 50) { m_CurrentNode = current; m_ParentDocument = document; m_Owner = owner; m_FileName = fileName; m_Script = script; m_TriggerName = triggerName; Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); int height = CalculateHeight(document.FirstChild) + 40; AddBackground(0, 0, 168, height, 9300); AddLabel(10, 10, 38, "UberGump Tree Elements"); int penY = 10; int buttonID = 0; Traverse(document.FirstChild, 10, ref penY, ref buttonID); }
protected override void AppendTo(SqlStringBuilder builder) { builder.Append("ALTER TRIGGER "); TriggerName.AppendTo(builder); builder.Append(" "); Action.AppendTo(builder); }
public static Dictionary<int, TriggerName> ScriptTriggerLookup = new Dictionary<int, TriggerName>(); // serial to XmlScript list conversion public static bool HasTrigger(IEntity entity, TriggerName trigToCheck) { if (entity == null) return false; TriggerName hasTrigger = TriggerName.NoTrigger; ScriptTriggerLookup.TryGetValue(entity.Serial.Value, out hasTrigger); return ((long)trigToCheck & (long)hasTrigger) > 0; }
public virtual void OnGUI() { TriggerName oldTriggerName = ShowTriggerName(); TriggerName newTriggerName = (TriggerName)EditorGUILayout.EnumPopup( "Trigger name", oldTriggerName, GUILayout.ExpandWidth(false) ); triggerName = newTriggerName.ToString(); isTriggerChanged = oldTriggerName != newTriggerName; }
public static Dictionary <int, TriggerName> ScriptTriggerLookup = new Dictionary <int, TriggerName>(); // serial to XmlScript list conversion public static bool HasTrigger(IEntity entity, TriggerName trigToCheck) { if (entity == null) { return(false); } TriggerName hasTrigger = TriggerName.NoTrigger; ScriptTriggerLookup.TryGetValue(entity.Serial.Value, out hasTrigger); return(((long)trigToCheck & (long)hasTrigger) > 0); }
/// <summary>Snippet for GetTrigger</summary> public void GetTriggerResourceNames() { // Snippet: GetTrigger(TriggerName, CallSettings) // Create client EventarcClient eventarcClient = EventarcClient.Create(); // Initialize request argument(s) TriggerName name = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"); // Make the request Trigger response = eventarcClient.GetTrigger(name); // End snippet }
protected override void AppendTo(SqlStringBuilder builder) { builder.Append("CREATE "); if (ReplaceIfExists) { builder.Append("OR REPLACE "); } builder.Append("TRIGGER "); TriggerName.AppendTo(builder); builder.AppendFormat(" {0} {1} ", EventTime.ToString().ToUpperInvariant(), EventType.AsDebugString()); builder.Append("ON "); TableName.AppendTo(builder); builder.Append(" "); builder.Append("FOR EACH ROW "); if (Status != TriggerStatus.Unknown) { if (Status == TriggerStatus.Disabled) { builder.Append("DISABLE "); } else if (Status == TriggerStatus.Enabled) { builder.Append("ENABLE "); } } builder.Append("CALL "); ProcedureName.AppendTo(builder); builder.Append("("); if (ProcedureArguments != null && ProcedureArguments.Length > 0) { for (int i = 0; i < ProcedureArguments.Length; i++) { ProcedureArguments[i].AppendTo(builder); if (i < ProcedureArguments.Length - 1) { builder.Append(", "); } } } builder.Append(")"); }
public static void Trigger(XmlScript[] scripts, TriggerName triggerName) { foreach (XmlScript script in scripts) { script.Execute( new TriggerObject { TrigName = triggerName, This = script.AttachedTo }, true); } }
/// <summary>Snippet for GetTriggerAsync</summary> public async Task GetTriggerResourceNamesAsync() { // Snippet: GetTriggerAsync(TriggerName, CallSettings) // Additional: GetTriggerAsync(TriggerName, CancellationToken) // Create client EventarcClient eventarcClient = await EventarcClient.CreateAsync(); // Initialize request argument(s) TriggerName name = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"); // Make the request Trigger response = await eventarcClient.GetTriggerAsync(name); // End snippet }
/// <summary>Snippet for GetTrigger</summary> public void GetTriggerRequestObject() { // Snippet: GetTrigger(GetTriggerRequest, CallSettings) // Create client EventarcClient eventarcClient = EventarcClient.Create(); // Initialize request argument(s) GetTriggerRequest request = new GetTriggerRequest { TriggerName = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"), }; // Make the request Trigger response = eventarcClient.GetTrigger(request); // End snippet }
protected override IEnumerable <Command> OnCreate(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context) { var command = SqlHelper.IsValidExternalEngine(this) ? new Command() : new PSqlCommand(); command .Append($"CREATE OR ALTER TRIGGER {TriggerName.AsSqlIndentifier()}") .AppendLine() .Append($"{(Inactive ? "INACTIVE" : "ACTIVE")} "); switch (TriggerClass) { case TriggerClassType.DML: case TriggerClassType.DDL: command.Append($"{TriggerBeforeAfter.ToDescription()} {TriggerEvents[0].ToDescription()} "); foreach (var item in TriggerEvents.Skip(1)) { command.Append($"OR {item.ToDescription()} "); } break; case TriggerClassType.DB: command.Append($"ON {TriggerEvents[0].ToDescription()} "); break; } command .Append($"POSITION {TriggerSequence}") .AppendLine(); if (TriggerClass == TriggerClassType.DML) { command .Append($"ON {RelationName.AsSqlIndentifier()}") .AppendLine(); } if (SqlHelper.IsValidExternalEngine(this)) { command.Append($"EXTERNAL NAME '{SqlHelper.DoubleSingleQuotes(EntryPoint)}'"); command.AppendLine(); command.Append($"ENGINE {EngineName.AsSqlIndentifier()}"); } else { if (SqlSecurity != null) { command.Append($"SQL SECURITY {SqlHelper.SqlSecurityString(SqlSecurity)}"); command.AppendLine(); } command.Append(TriggerSource); } yield return(command); }
/// <summary> /// Checks for any triggers existing on "thisMob", returns true if a trigger signalled to override the /// handler that it came from /// </summary> /// <returns>true if a trigger execution signalled to override the handler that called Trigger</returns> public static bool Trigger( IEntity thisObj, Mobile trigMob, TriggerName trigName, Item item = null, string spoken = null, Spell spell = null, int damage = 0, object targeted = null, SkillName skillName = SkillName.Spellweaving, double skillValue = 0.0) // spellweaving is just a placeholder { var scripts = XmlAttach.GetScripts(thisObj); bool result = false; if (scripts != null) { TriggerObject trigObject = new TriggerObject { TrigName = trigName, This = thisObj, TrigMob = trigMob, TrigItem = item, Spell = spell, Damage = damage, Speech = spoken, Targeted = targeted, SkillName = skillName, SkillValue = skillValue }; int count = 0; foreach (XmlScript script in scripts) { count++; // make sure each script has its own TriggerObjects if (script.Execute(count < scripts.Count ? trigObject.Dupe() : trigObject, true)) { // returns true if there is an override result = true; } } } return(result); }
protected override IEnumerable <Command> OnCreate(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context) { var command = new PSqlCommand(); command .Append($"CREATE OR ALTER TRIGGER {TriggerName.AsSqlIndentifier()}") .AppendLine() .Append($"{(Inactive ? "INACTIVE" : "ACTIVE")} "); if (TriggerClass == TriggerClassType.DB) { command.Append($"ON {TriggerAction1.ToDescription()} "); } else if (TriggerClass == TriggerClassType.DML) { var beforeOrAfter = TriggerAction1.In(new[] { TriggerActionType.BEFORE_INSERT, TriggerActionType.BEFORE_UPDATE, TriggerActionType.BEFORE_DELETE }) ? "BEFORE" : "AFTER"; command.Append($"{beforeOrAfter} {TriggerAction1.ToDescription()} "); if (TriggerAction2 != null) { command.Append($"OR {TriggerAction2.ToDescription()} "); } if (TriggerAction3 != null) { command.Append($"OR {TriggerAction3.ToDescription()} "); } } else { throw new ArgumentOutOfRangeException($"Unknown trigger class {TriggerClass}."); } command .Append($"POSITION {TriggerSequence}") .AppendLine(); if (TriggerClass == TriggerClassType.DML) { command .Append($"ON {RelationName.AsSqlIndentifier()}") .AppendLine(); } command.Append(TriggerSource); yield return(command); }
public override void WriteToStream(IndentStream stream) { stream.Write("TRIGGER "); TriggerName.WriteToStream(stream); stream.Write(" ON "); ObjectExpr.WriteToStream(stream); if (WithExecuteAs != null) { stream.Write(" "); WithExecuteAs.WriteToStream(stream); } if (AfterExpr != null) { stream.Write(" "); AfterExpr.WriteToStream(stream); } }
public async stt::Task GetTriggerRequestObjectAsync() { moq::Mock <Eventarc.EventarcClient> mockGrpcClient = new moq::Mock <Eventarc.EventarcClient>(moq::MockBehavior.Strict); mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object); GetTriggerRequest request = new GetTriggerRequest { TriggerName = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"), }; Trigger expectedResponse = new Trigger { TriggerName = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"), Uid = "uida2d37198", CreateTime = new wkt::Timestamp(), UpdateTime = new wkt::Timestamp(), EventFilters = { new EventFilter(), }, ServiceAccountAsServiceAccountName = ServiceAccountName.FromProjectServiceAccount("[PROJECT]", "[SERVICE_ACCOUNT]"), Destination = new Destination(), Transport = new Transport(), Labels = { { "key8a0b6e3c", "value60c16320" }, }, Etag = "etage8ad7218", }; mockGrpcClient.Setup(x => x.GetTriggerAsync(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(new grpccore::AsyncUnaryCall <Trigger>(stt::Task.FromResult(expectedResponse), null, null, null, null)); EventarcClient client = new EventarcClientImpl(mockGrpcClient.Object, null); Trigger responseCallSettings = await client.GetTriggerAsync(request, gaxgrpc::CallSettings.FromCancellationToken(st::CancellationToken.None)); xunit::Assert.Same(expectedResponse, responseCallSettings); Trigger responseCancellationToken = await client.GetTriggerAsync(request, st::CancellationToken.None); xunit::Assert.Same(expectedResponse, responseCancellationToken); mockGrpcClient.VerifyAll(); }
public UberGumpTree(Mobile owner, XmlNode current, XmlDocument document, string fileName, XmlScript script = null, TriggerName triggerName = TriggerName.NoTrigger) : base(150, 50) { m_CurrentNode = current; m_ParentDocument = document; m_Owner = owner; m_FileName = fileName; m_Script = script; m_TriggerName = triggerName; Closable = true; Disposable = true; Dragable = true; Resizable = false; AddPage(0); int height = CalculateHeight(document.FirstChild) + 40; AddBackground(0, 0, 168, height, 9300); AddLabel(10, 10, 38, "UberGump Tree Elements"); int penY = 10; int buttonID = 0; Traverse(document.FirstChild, 10, ref penY, ref buttonID); }
public void GetTriggerResourceNames() { moq::Mock <Eventarc.EventarcClient> mockGrpcClient = new moq::Mock <Eventarc.EventarcClient>(moq::MockBehavior.Strict); mockGrpcClient.Setup(x => x.CreateOperationsClient()).Returns(new moq::Mock <lro::Operations.OperationsClient>().Object); GetTriggerRequest request = new GetTriggerRequest { TriggerName = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"), }; Trigger expectedResponse = new Trigger { TriggerName = TriggerName.FromProjectLocationTrigger("[PROJECT]", "[LOCATION]", "[TRIGGER]"), Uid = "uida2d37198", CreateTime = new wkt::Timestamp(), UpdateTime = new wkt::Timestamp(), EventFilters = { new EventFilter(), }, ServiceAccountAsServiceAccountName = ServiceAccountName.FromProjectServiceAccount("[PROJECT]", "[SERVICE_ACCOUNT]"), Destination = new Destination(), Transport = new Transport(), Labels = { { "key8a0b6e3c", "value60c16320" }, }, Etag = "etage8ad7218", }; mockGrpcClient.Setup(x => x.GetTrigger(request, moq::It.IsAny <grpccore::CallOptions>())).Returns(expectedResponse); EventarcClient client = new EventarcClientImpl(mockGrpcClient.Object, null); Trigger response = client.GetTrigger(request.TriggerName); xunit::Assert.Same(expectedResponse, response); mockGrpcClient.VerifyAll(); }
protected override void AppendTo(SqlStringBuilder builder) { builder.Append("CREATE "); if (ReplaceIfExists) { builder.Append("OR REPLACE "); } builder.Append("TRIGGER "); TriggerName.AppendTo(builder); builder.Append(" "); builder.AppendFormat("{0} {1} ", EventTime.ToString().ToUpperInvariant(), EventType.AsDebugString()); builder.Append("ON "); TableName.AppendTo(builder); if (Status != TriggerStatus.Unknown) { if (Status == TriggerStatus.Disabled) { builder.Append(" DISABLE"); } else if (Status == TriggerStatus.Enabled) { builder.Append(" ENABLE"); } } builder.AppendLine(); builder.Indent(); Body.AppendTo(builder); builder.DeIndent(); }
public UberGumpEditorGump(Mobile owner, XmlNode currentNode, XmlDocument xmlDocument, string fileName, XmlScript script = null, TriggerName triggerName = TriggerName.NoTrigger) : base(300, 50) { m_Owner = owner; m_CurrentNode = currentNode; m_ParentDocument = xmlDocument; m_FileName = fileName; m_Script = script; m_TriggerName = triggerName; Closable = true; Dragable = true; InitializeGump(); }
public static void Trigger(XmlScript[] scripts, TriggerName triggerName) { foreach (XmlScript script in scripts) { script.Execute( new TriggerObject { TrigName = triggerName, This = script.AttachedTo }, true); } }
protected override IEnumerable <Command> OnDrop(IMetadata sourceMetadata, IMetadata targetMetadata, IComparerContext context) { yield return(new Command() .Append($"DROP TRIGGER {TriggerName.AsSqlIndentifier()}")); }
protected Trigger(TriggerName tn) { this.triggerName = tn.ToString(); }
private void SetTrigger(TriggerName trigger) { animator.SetTrigger(trigger.ToString()); }
/// <summary> /// Checks for any triggers existing on "thisMob", returns true if a trigger signalled to override the /// handler that it came from /// </summary> /// <returns>true if a trigger execution signalled to override the handler that called Trigger</returns> public static bool Trigger( IEntity thisObj, Mobile trigMob, TriggerName trigName, Item item = null, string spoken = null, Spell spell = null, int damage = 0, object targeted = null, SkillName skillName = SkillName.Spellweaving, double skillValue = 0.0) // spellweaving is just a placeholder { var scripts = XmlAttach.GetScripts(thisObj); bool result = false; if (scripts != null) { TriggerObject trigObject = new TriggerObject { TrigName = trigName, This = thisObj, TrigMob = trigMob, TrigItem = item, Spell = spell, Damage = damage, Speech = spoken, Targeted = targeted, SkillName = skillName, SkillValue = skillValue }; int count = 0; foreach (XmlScript script in scripts) { count++; // make sure each script has its own TriggerObjects if (script.Execute(count < scripts.Count ? trigObject.Dupe() : trigObject, true)) { // returns true if there is an override result = true; } } } return result; }