private static async Task ProcessTagAddedEvent(TagsRepository tagrepo, TagAddedEvent evt) { switch (evt.Tag.Name) { case "step": await tagrepo.RemoveTagFromHost(evt.TagId, evt.HostId); var tags = await tagrepo.GetTagsForHost(evt.Host.Id); if (!tags.Any(x => x.Name == "prepare") && !tags.Any(x => x.Name == "restart") && !tags.Any(x => x.Name == "complete")) { await tagrepo.AddTagToHost("prepare", evt.HostId); } else if (tags.Any(x => x.Name == "prepare") && !tags.Any(x => x.Name == "restart") && !tags.Any(x => x.Name == "complete")) { await tagrepo.RemoveTagFromHost("prepare", evt.HostId); await tagrepo.AddTagToHost("restart", evt.HostId); } else if (!tags.Any(x => x.Name == "prepare") && tags.Any(x => x.Name == "restart") && !tags.Any(x => x.Name == "complete")) { await tagrepo.RemoveTagFromHost("restart", evt.HostId); await tagrepo.AddTagToHost("complete", evt.HostId); } break; } }
private void OnTagAddedEvent(Entity entity, string tag) { TagAddedEvent?.Invoke(entity, tag); }