public override XElement ToXElement() { XElement xml = base.NewXElement("NetworkLinkControl"); if (MinRefreshPeriod.TotalSeconds > 0) { xml.Add(NewXElement("minRefreshPeriod", MinRefreshPeriod.TotalSeconds)); } if (MaxSessionLength.TotalSeconds > -1) { xml.Add(NewXElement("maxSessionLength", MaxSessionLength.TotalSeconds)); } if (Cookie.HasValue()) { xml.Add(NewXElement("cookie", Cookie)); } if (Message.HasValue()) { xml.Add(NewXElement("Message", Message)); } if (LinkName.HasValue()) { xml.Add(NewXElement("LinkName", LinkName)); } if (Expires.HasValue()) { xml.Add(NewXElement("expires", Expires)); } return(xml); }
public override int GetHashCode() { unchecked { return(((LinkName != null ? LinkName.GetHashCode() : 0) * 397) ^ NetAddress); } }
public virtual byte[] GetHeaderValue() { // Clean old values Array.Clear(buffer, 0, buffer.Length); if (string.IsNullOrEmpty(fileName)) { throw new TarException("FileName can not be empty."); } if (fileName.Length >= 100) { var actualLength = fileName.Length; var thisAsUsTar = this as UsTarHeader; var namePrefix = string.Empty; if (thisAsUsTar != null) { namePrefix = thisAsUsTar.namePrefix; } throw new TarException(@"File name is too long. Full file name: " + FileName + @" 100-byte file name: " + fileName + @" Name prefix: " + namePrefix + @" 100-byte file name length: " + fileName.Length + @" Full file name length: " + FileName.Length); } // Fill header Encoding.ASCII.GetBytes(fileName.PadRight(100, '\0')).CopyTo(buffer, 0); Encoding.ASCII.GetBytes(ModeString).CopyTo(buffer, 100); Encoding.ASCII.GetBytes(UserIdString).CopyTo(buffer, 108); Encoding.ASCII.GetBytes(GroupIdString).CopyTo(buffer, 116); Encoding.ASCII.GetBytes(SizeString).CopyTo(buffer, 124); Encoding.ASCII.GetBytes(LastModificationString).CopyTo(buffer, 136); // buffer[156] = 20; buffer[156] = ((byte)EntryType); if (LinkName != null) { Encoding.ASCII.GetBytes(LinkName.PadRight(100, '\0')).CopyTo(buffer, 157); } RecalculateChecksum(buffer); // Write checksum Encoding.ASCII.GetBytes(HeaderChecksumString).CopyTo(buffer, 148); return(buffer); }
public override bool Execute() { if (string.IsNullOrEmpty(LinkName)) { throw new InvalidOperationException("LinkName was not set"); } if (string.IsNullOrEmpty(TargetName)) { throw new InvalidOperationException("TargetName was not set"); } var linkParentDirectory = Path.GetDirectoryName(LinkName.TrimEnd('\\')); try { if (linkParentDirectory != null && !Directory.Exists(linkParentDirectory)) { Directory.CreateDirectory(linkParentDirectory); } } catch (Exception ex) { Log.LogError($"Error creating symbolic link for {LinkName} <<====>> {TargetName}. Could not create parent directory {linkParentDirectory}: {ex.Message}"); return(false); } var result = NativeMethods.CreateSymbolicLink(LinkName.TrimEnd('\\'), TargetName.TrimEnd('\\'), _targetType); if (!result) { const uint requiredPrivilegeError = 0x80070522; if ((uint)Marshal.GetHRForLastWin32Error() == requiredPrivilegeError) { Log.LogError($"Error creating symbolic link for {LinkName} <<====>> {TargetName}. Try running the build from an elevated process."); return(false); } var exception = Win32Utils.GetExceptionForLastError(); Log.LogError($"Error creating symbolic link for {LinkName} <<====>> {TargetName}: {exception.Message}"); return(false); } Log.LogMessage(MessageImportance.High, $"Symbolic link created for {LinkName} <<====>> {TargetName}"); return(true); }
protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state) { PropertyDescriptor property = context.DataContext.GetProperties()[WordCreate.GetWordAppTag]; Application wordApp = property.GetValue(context.DataContext) as Application; try { string linkName = LinkName.Get(context); string linkMark = LinkMark.Get(context); string linkAddr = LinkAddr.Get(context); string bookMark = BookMark.Get(context); string pic = Pic.Get(context); if (linkName != null) { Hyperlinks links = wordApp.Selection.Hyperlinks; links.Add(wordApp.Selection.Range, linkAddr, linkMark, "", linkName, linkMark); } if (bookMark != null) { Bookmarks bookmarks = wordApp.Selection.Bookmarks; bookmarks.Add(bookMark); } if (pic != null) { InlineShapes lineshapes = wordApp.Selection.InlineShapes; InlineShape lineshape = lineshapes.AddPicture(pic); } } catch (Exception e) { SharedObject.Instance.Output(SharedObject.enOutputType.Error, "Word执行过程出错", e.Message); CommonVariable.realaseProcessExit(wordApp); } m_Delegate = new runDelegate(Run); return(m_Delegate.BeginInvoke(callback, state)); }
public override string Serialize() { var implArgs = Args.ToLinkableDefinitionArg(); var newArgs = Args.ToDefinitionArgs(); var outParams = Args.Where(a => a.IsOutParam).ToList(); var isStatic = LinkName.StartsWith("ImGui_Impl"); bool isPOut = false; var pOuts = Args.Where(a => a.Name == "pOut"); if (pOuts.Count() == 1) { isPOut = true; outParams.Add(pOuts.Single()); } if (LinkName == "ImGui_ImplOpenGL3_Init") { return (@" [LinkName(""ImGui_ImplOpenGL3_Init"")] private static extern bool InitImpl(char* glsl_version); public static bool Init(char* glsl_version = default) { GladLoadGL(); return InitImpl(glsl_version); } "); } var serialized = $@" [LinkName(""{LinkName}"")] private {(isStatic ? "static " : "")}extern {ReturnType} {Name}Impl({implArgs}); public {(isStatic ? "static " : "")}{ReturnType} {Name}({newArgs}) {(isStatic ? "" : "mut")}"; if (outParams.Count() > 0) { serialized += "\n{\n"; foreach (var arg in outParams) { if (arg.Name == "pOut") { serialized += $" {ReturnType} pOut = default;\n"; } else { serialized += $" {arg.Name} = ?;\n"; } } if (isPOut) { serialized += $" {Name}Impl({Args.ToCallArgs()});\n return pOut;\n"; } else if (ReturnType != "void") { serialized += $" return {Name}Impl({Args.ToCallArgs()});\n"; } serialized += "}\n"; } else { serialized += $"=> {Name}Impl({Args.ToCallArgs()});\n"; } return(serialized); }