/// <summary> /// Embeds the parameter. /// </summary> /// <param name="ic"> The ic. </param> /// <param name="pr"> The pr. </param> /// <param name="tc"> The tc. </param> /// <param name="t"> The t. </param> /// <remarks> /// </remarks> private void EmbedParameter(string ic, XElement pr, string tc, ThemaDescriptor t) { var code = t.Substitute(pr.Id()); if (Context.ParameterIndex.ContainsKey(code)) { ReplaceParameter(pr, code); } else { var message = "item " + tc + "/" + ic + " references non-existed parameter " + code; if (Context.Project.NonResolvedParameterIsError) { AddError( ErrorLevel.Error, message, "TE2201", null, pr.Describe().File, pr.Describe().Line ); UserLog.Error(message); return; } AddError( ErrorLevel.Warning, message, "TW2201", null, pr.Describe().File, pr.Describe().Line ); UserLog.Warn(message); pr.Remove(); } }
/// <summary> /// Resolves the use sets. /// </summary> /// <param name="t"> The t. </param> /// <param name="i"> The i. </param> /// <param name="c"> The c. </param> /// <remarks> /// </remarks> private void ResolveUseSets(ThemaDescriptor t, XElement i, string c) { foreach (var ac in i.Elements(Context.Project.ImportSubsetElementName).ToArray()) { var code = ac.Id(); if (null != t) { code = t.Substitute(code, c, true); } if (code.IsEmpty()) { continue; } if (Context.SubsetIndex.ContainsKey(code)) { ac.ReplaceWith(ResolveSubset(code)); } else { var message = "item " + (null == t ? i.Id() : t.Code) + "/" + c + " references non-existed subset " + code; if (Context.Project.NonResolvedSubsetIsError) { AddError( ErrorLevel.Error, message, "TE2101", null, i.Describe().File, i.Describe().Line ); UserLog.Error(message); return; } AddError( ErrorLevel.Warning, message, "TW2101", null, i.Describe().File, i.Describe().Line ); UserLog.Warn(message); ac.Remove(); } } }