/// <summary>
        /// Adds the logo inside the document.
        /// </summary>
        /// <param name="document">The document.</param>
        /// <param name="logo">Logo model.</param>
        /// <returns>
        /// Returns the <see cref="T:Novacode.DocX" /> which contains the logo inside.
        /// </returns>
        public static DocX AppendLogoFromModel(this DocX document, LogoModel logo)
        {
            SentinelHelper.ArgumentNull(logo);
            SentinelHelper.ArgumentNull(document);

            if (logo.IsDefault)
            {
                return(document);
            }

            if (logo.Show == YesNo.No)
            {
                return(document);
            }

            var found = logo.Image.TryGetImage(out var imageLogo);

            if (!found)
            {
                return(document);
            }

            var root          = logo.Parent.Parent;
            var imagePath     = root.Resources.GetImageResourceByKey(logo.Image.Key).Path;
            var imageFileName = Path.GetFileNameWithoutExtension(root.ParseRelativeFilePath(imagePath));

            var modifiedImageFileNamePathBuilder = new StringBuilder();

            modifiedImageFileNamePathBuilder.Append(FileHelper.TinExportTempDirectory);
            modifiedImageFileNamePathBuilder.Append(imageFileName);
            modifiedImageFileNamePathBuilder.Append(".png");

            imageLogo.Save(modifiedImageFileNamePathBuilder.ToString(), ImageFormat.Png);

            var logoWidth = logo.LogoSize.Width == -1
                                ? imageLogo.Width
                                : logo.LogoSize.Width;

            var logoHeight = logo.LogoSize.Height == -1
                                    ? imageLogo.Height
                                    : logo.LogoSize.Height;

            var img     = document.AddImage(modifiedImageFileNamePathBuilder.ToString());
            var picture = img.CreatePicture(logoHeight, logoWidth);

            picture.SetPictureShape(RectangleShapes.rect);

            document.SetVerticalLocationFrom(logo.Location);
            var paragraph = document.InsertParagraph(string.Empty, false);

            paragraph.InsertPicture(picture).SetHorizontalAlignmentFrom(logo.Location);

            return(document);
        }