/// <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();
			}
		}
示例#2
0
		/// <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();
				}
			}
		}