Ejemplo n.º 1
0
        internal void BindContentControls(DataAccess.Netflix.Title title)
        {
            var           doc            = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
            const string  xmlPartName    = "http://netflix/titles";
            var           customXmlParts = doc.CustomXMLParts.SelectByNamespace(xmlPartName);
            CustomXMLPart customXmlPart  = null;

            if (customXmlParts != null && customXmlParts.Count > 0)
            {
                customXmlPart = customXmlParts[1];
            }

            foreach (Word.ContentControl cc in doc.ContentControls)
            {
                if (!cc.XMLMapping.IsMapped)
                {
                    //if (cc.Type == WdContentControlType.wdContentControlPicture)
                    //{
                    //    ManuallySetImage(doc, cc, title);
                    //}
                    //else
                    {
                        cc.LockContents = false;
                        var xpath = string.Format("//titles/title[@id='{0}']/{1}", title.Id, cc.Tag.ToLower());
                        cc.XMLMapping.SetMapping(xpath, "", customXmlPart);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        internal void SaveTitleViewModel(DataAccess.Netflix.Title title)
        {
            var          doc         = this.Application.ActiveDocument;
            const string xmlPartName = "http://netflix/titles";
            //var customXmlPart = doc.CustomXMLParts.SelectByNamespace(xmlPartName);
            //if (customXmlPart != null && customXmlPart.Count > 0)
            //    customXmlPart[1].Delete();
            const string t = @"<titles xmlns:nf='http://netflix/titles'>
<title id='{id}'>
<movielink>{movielink}</movielink>
<boxart>{boxart}</boxart>
<name>{name}</name>
<rating>{rating}</rating>
<duration>{duration} minutes</duration>
<director>{director}</director>
<genres>{genres}</genres>
<cast>{cast}</cast>
<synopsis>{synopsis}</synopsis>
</title>
</titles>";

            var proxy      = DataAccess.ProxyFactory.CreateNetflixProxy();
            var boxart     = ConvertBitmapToBase64(GetBitmapFromUrl(title.BoxArt.SmallUrl));
            var genres     = proxy.GetGenresFromTitle(title);
            var genresList = SecurityElement.Escape(string.Join(", ", genres.Select(g => g.Name)));

            var sb = new StringBuilder("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>");

            sb.Append(t);
            sb.Replace("{id}", title.Id);
            sb.Replace("{movielink}", title.Url);
            //sb.Replace("{boxart}", SecurityElement.Escape(title.BoxArt.SmallUrl));
            sb.Replace("{boxart}", boxart);
            sb.Replace("{name}", title.Name);
            sb.Replace("{rating}", title.Rating);
            sb.Replace("{duration}", (title.Runtime / 60).ToString());
            sb.Replace("{director}", "[not ready yet]");
            sb.Replace("{genres}", genresList);
            sb.Replace("{cast}", "[not ready yet]");
            sb.Replace("{synopsis}", SecurityElement.Escape(title.Synopsis));
            var xmlPart = doc.CustomXMLParts.Add(sb.ToString());
        }