Example #1
0
        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);
     }
 }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }