public static void Main()
XElement setting = XElement.Parse("<engines></engines>");
Console.WriteLine(setting);
var providers = setting.Descendants("add").ToList();
var statusIsExists = providers.Any(x => x.Attribute("name").Value.Equals("RecordStatusIsRuleCondition", StringComparison.InvariantCultureIgnoreCase));
var elementToAdd = new XElement("add",
new XAttribute("name", "RecordStatusIsRuleCondition"),
new XAttribute("type", "Adam.Core.Rules.RecordStatusIsRuleCondition, Adam.Core"),
new XAttribute("webControl", "Adam.Web.Extensions.Providers.Rules.RecordStatusIsRuleConditionEditor, Adam.Web.Extensions")
setting.Add(elementToAdd);
var statusChangedExists = providers.Any(x => x.Attribute("name").Value.Equals("RecordStatusChangedRuleCondition", StringComparison.InvariantCultureIgnoreCase));
if (!statusChangedExists)
var elementToAdd = new XElement("add",
new XAttribute("name", "RecordStatusChangedRuleCondition"),
new XAttribute("type", "Adam.Core.Rules.RecordStatusChangedRuleCondition, Adam.Core"),
new XAttribute("webControl", "Adam.Web.Extensions.Providers.Rules.RecordStatusChangedRuleConditionEditor, Adam.Web.Extensions")
setting.Add(elementToAdd);
var statusChangedToExists = providers.Any(x => x.Attribute("name").Value.Equals("RecordStatusChangedToRuleCondition", StringComparison.InvariantCultureIgnoreCase));
if (!statusChangedToExists)
var elementToAdd = new XElement("add",
new XAttribute("name", "RecordStatusChangedToRuleCondition"),
new XAttribute("type", "Adam.Core.Rules.RecordStatusChangedToRuleCondition, Adam.Core"),
new XAttribute("webControl", "Adam.Web.Extensions.Providers.Rules.RecordStatusChangedToRuleConditionEditor, Adam.Web.Extensions")
setting.Add(elementToAdd);
var masterPreviewExists = providers.Any(x => x.Attribute("name").Value.Equals("MasterPreviewExistsRuleCondition", StringComparison.InvariantCultureIgnoreCase));
if (!masterPreviewExists)
var elementToAdd = new XElement("add",
new XAttribute("name", "MasterPreviewExistsRuleCondition"),
new XAttribute("type", "Adam.Core.Rules.MasterPreviewExistsRuleCondition, Adam.Core"),
new XAttribute("webControl", "Adam.Web.Extensions.Providers.Rules.MasterPreviewExistsRuleConditionEditor, Adam.Web.Extensions")
setting.Add(elementToAdd);
var masterPreviewChanged = providers.Any(x => x.Attribute("name").Value.Equals("MasterPreviewChangedRuleCondition", StringComparison.InvariantCultureIgnoreCase));
if (!masterPreviewChanged)
var elementToAdd = new XElement("add",
new XAttribute("name", "MasterPreviewChangedRuleCondition"),
new XAttribute("type", "Adam.Core.Rules.MasterPreviewChangedRuleCondition, Adam.Core"),
new XAttribute("webControl", "Adam.Web.Extensions.Providers.Rules.MasterPreviewChangedRuleConditionEditor, Adam.Web.Extensions")
setting.Add(elementToAdd);
Console.WriteLine(setting);