internal void AddItems(FileLineNumber typeLine, IEnumerable <PackageItem> items) { foreach (PackageItem item in items) { this.AddItem(typeLine, item); } }
/// <summary> /// Creates an /// </summary> /// <param name="id"></param> /// <param name="type"></param> public WixSection(string id, string type, FileLineNumber typeStartLineNumber) { this.Id = id; this.tables = new Dictionary <string, XElement>(); this.Xml = new XElement(WixBackendCompilerServices.WixobjNamespace + "section", new XAttribute("id", id), new XAttribute("type", type)); XElement row = WixBackendCompilerServices.GenerateRow(this, "WixFragment", typeStartLineNumber, id); }
internal void AddItem(FileLineNumber typeLine, PackageItem item) { item.LineNumber = typeLine; this.items.Add(item); if (!String.IsNullOrEmpty(item.Id)) { this.namedItems.Add(item.Id, item); } this.unresolved.Add(item); // track unresolved items so that we optimize our passes through Resolve(). }
internal object CreateInstance(FileLineNumber line) { object obj = Activator.CreateInstance(this.Type); if (line != null) { PropertyInfo lineNumberProperty = this.Type.GetProperty("LineNumber", BindingFlags.Instance | BindingFlags.NonPublic, null, typeof(FileLineNumber), new Type[0], null); if (lineNumberProperty != null) { lineNumberProperty.SetValue(obj, line, null); } } return(obj); }
public static XElement GenerateRow(WixSection section, string tableName, FileLineNumber typeStartLineNumber, params object[] fields) { string sourceLineNumbers = GenerateSourceLineNumbers(typeStartLineNumber); XElement row = new XElement(WixBackendCompilerServices.WixobjNamespace + "row", new XAttribute("sourceLineNumber", sourceLineNumbers)); XElement table = section.GetTable(tableName); table.Add(row); foreach (var field in fields) { row.Add(new XElement(WixBackendCompilerServices.WixobjNamespace + "field", field)); } return(row); }
public void WriteXml(XmlWriter writer) { writer.WriteStartElement("Exception"); writer.WriteElementString("AssemblyVersion", AssemblyVersion); writer.WriteElementString("PortalId", PortalId.ToString()); writer.WriteElementString("UserId", UserId.ToString()); writer.WriteElementString("TabId", TabId.ToString()); writer.WriteElementString("RawUrl", RawUrl); writer.WriteElementString("Referrer", Referrer); writer.WriteElementString("UserAgent", UserAgent); writer.WriteElementString("ExceptionHash", ExceptionHash); writer.WriteElementString("Message", Message); writer.WriteElementString("StackTrace", StackTrace); writer.WriteElementString("InnerMessage", InnerMessage); writer.WriteElementString("InnerStackTrace", InnerStackTrace); writer.WriteElementString("Source", Source); writer.WriteElementString("FileName", FileName); writer.WriteElementString("FileLineNumber", FileLineNumber.ToString()); writer.WriteElementString("FileColumnNumber", FileColumnNumber.ToString()); writer.WriteElementString("Method", Method); writer.WriteEndElement(); }
/// <summary> /// Creates a file transfer object. /// </summary> /// <param name="lineNumber">Optional line number for item that required the file transfer.</param> /// <param name="source">Source path.</param> /// <param name="destination">Destination path.</param> /// <param name="type">Optional type of file trnasfer.</param> /// <param name="move">Flag if file should be moved or copied</param> /// <returns>File transfer object.</returns> public static FileTransfer Create(FileLineNumber lineNumber, string source, string destination, string type, bool move) { FileTransfer transfer = new FileTransfer(); transfer.LineNumber = lineNumber; transfer.Type = type; transfer.Move = move; try { transfer.Source = Path.GetFullPath(source); } catch (ArgumentException) { throw new CompilerException(new CompilerMessageEventArgs(CompilerMessage.InvalidFileName(source), lineNumber)); } catch (PathTooLongException) { throw new CompilerException(new CompilerMessageEventArgs(CompilerMessage.PathTooLong(source), lineNumber)); } try { transfer.Destination = Path.GetFullPath(destination); } catch (ArgumentException) { throw new CompilerException(new CompilerMessageEventArgs(CompilerMessage.InvalidFileName(destination), lineNumber)); } catch (PathTooLongException) { throw new CompilerException(new CompilerMessageEventArgs(CompilerMessage.PathTooLong(destination), lineNumber)); } transfer.Redundant = String.Equals(transfer.Source, transfer.Destination, StringComparison.OrdinalIgnoreCase); return(transfer); }
private static string GenerateSourceLineNumbers(FileLineNumber typeStartLineNumber) { return(String.Concat(typeStartLineNumber.SourceFile, "*", typeStartLineNumber.LineNumber)); }
public static XElement GenerateSimpleReference(WixSection section, string tableName, FileLineNumber typeStartLineNumber, params string[] primaryKeys) { XElement row = GenerateRow(section, "WixSimpleReference", typeStartLineNumber); row.Add(new XElement(WixBackendCompilerServices.WixobjNamespace + "field", tableName)); row.Add(new XElement(WixBackendCompilerServices.WixobjNamespace + "field", String.Join("/", primaryKeys))); return(row); }