Wednesday, 11 March 2015

Web Resource creation through SDK message

For a web resource creation through SDK, i referred one msdn page click. In this page they read a text file convert them into binary content and then converted into base64 string.

In my case i had HTML on CRM form Fields, so i fetch the field in Plugin and converted its content into binary format and finally into base64 string. the code for which goes as follows

               string JSContent = TileConfiguration.Attributes["livetile_jscontent"].ToString();
                string HTMLContent = TileConfiguration.Attributes["livetile_htmlcontent"].ToString();

                var bytes = Encoding.UTF8.GetBytes(JSContent + HTMLContent);
                var base64 = Convert.ToBase64String(bytes);

                //Set the Web Resource properties
                WebResource wr = new WebResource
                {
                    Content = base64,
                    DisplayName = "Test1",
                    Description ="Sample Test",
                    Name = "livetile_" +"test1",
                    LogicalName = WebResource.EntityLogicalName,

                   //you can specify type for web resource format
                   Webpage (HTML) .htm, .html 1
                    Style Sheet (CSS) .css 2
                    Script (JScript) .js 3
                    Data (XML) .xml 4
                    Image (PNG) .png 5
                    Image (JPG) .jpg 6
                    Image (GIF) .gif 7
                    Silverlight (XAP) .xap 8
                   StyleSheet (XSL) .xsl, .xslt 9
                     Image (ICO) .ico 10

                    WebResourceType = new OptionSetValue(1)
                };

                CreateRequest cr = new CreateRequest
                {
                    Target = wr
                };
                //Set the SolutionUniqueName optional parameter so the Web Resources will be
                // created in the context of a specific solution.
                //cr.Parameters.Add("SolutionUniqueName", _ImportWebResourcesSolutionUniqueName);

                CreateResponse cresp = (CreateResponse)service.Execute(cr);

To update the same web resource, You can do it using UpdateRequest, the code for which goes like below

                WebResource wr = new WebResource
                {
                   //Just pass the web resource ID
                    Id = new Guid(TileConfiguration.Attributes["livetile_webresourceid"].ToString()),
                    Content = base64,
                    DisplayName = "Test1",
                    Description = "Sample Test",
                    Name = "livetile_" + "test1",
                    LogicalName = WebResource.EntityLogicalName,
                    WebResourceType = new OptionSetValue(1)
                };

                UpdateRequest up = new UpdateRequest
                {
                    Target = wr
                };

             
                service.Execute(up);

Thanks.

No comments:

Post a Comment