Example #1
0
 /// <summary>
 /// Generates a document given a template and some data
 /// </summary>
 /// <returns></returns>
 public ProdoctivityService.DocumentGenerationResponse GenerateDocument(String xmlData)
 {
     using (ProdoctivityService.ProdoctivityServiceSoapClient client = new ProdoctivityService.ProdoctivityServiceSoapClient())
     {
         //Getting user and password from app.config
         string user        = System.Configuration.ConfigurationManager.AppSettings["prodoctivityUser"],
                password    = System.Configuration.ConfigurationManager.AppSettings["prodoctivityPassword"];
         int templateHandle = int.Parse(System.Configuration.ConfigurationManager.AppSettings["sampleTemplateHandle"]) /* ProDoctivity Sample Template */;
         var request        = new ProdoctivityService.ProdoctivityDocumentGenerationRequest()
         {
             Contexts = new List <ProdoctivityService.GenerationContext>(
                 new ProdoctivityService.GenerationContext[] {
                 new ProdoctivityService.GenerationContext()
                 {
                     Data      = XElement.Parse(xmlData), //This is where your data is located
                     Documents = new List <ProdoctivityService.Document>(
                         new ProdoctivityService.Document[] {
                         new ProdoctivityService.Document()
                         {
                             TemplateKey  = "word" + templateHandle,      //This template's key must match "word + <the key of your template>
                             Dispositions = new List <ProdoctivityService.DocumentDisposition>(
                                 new ProdoctivityService.DocumentDisposition[] {
                                 new ProdoctivityService.DocumentDisposition()
                                 {
                                     DispositionKey = "prodoctivity",           //For this specific endpoint your disposition name MUST be "prodoctivity"
                                     Parameters     = XElement.Parse("<data xmlns=\"http://documentgeneration.prodoctivity.com/2011/\"><DocumentKey></DocumentKey><KeywordMap></KeywordMap></data>")
                                 }
                             }
                                 )
                         }
                     }
                         ),
                     Id = "MyGenerationId"   //This is your own personal ID, you set here whatever you want. This is just a way to distinguish a document from another one in your response
                 }
             }
                 ),
             Dispositions = new List <ProdoctivityService.Disposition>(
                 new ProdoctivityService.Disposition[] {
                 new ProdoctivityService.Disposition()
                 {
                     ClassName        = "ProdoctivityDocumentGenerationLib.ProdoctivityInsertDisposition, ProdoctivityDocumentGenerationLib",
                     Key              = "prodoctivity",
                     GlobalParameters = XElement.Parse("<data xmlns=\"http://documentgeneration.prodoctivity.com/2011/\"></data>")
                 }     //This one MUST be sent as is, sorry
             }
                 ),
             DocumentHandle       = templateHandle,
             UserName             = "******", //Find out what are your fluency generator credentials. Chances are that if you didn't change anything it's probably this
             Password             = "******",
             ProdoctivityUsername = user,
             ProdoctivityPassword = password,
             ProdoctivityAgent    = null,
             ResultType           = ProdoctivityService.ClientRequestResultType.Inline //Inline result means that this client will wait for fluency to generate the document and return it in Response.Data. This only applies for one template and one context
         };
         return(client.GenerateDocumentFromProdoctivityDocumentHandle(request));
     }
 }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <returns>The new document's handle</returns>
        public string SampleContext()
        {
            using (ProdoctivityService.ProdoctivityServiceSoapClient client = new ProdoctivityService.ProdoctivityServiceSoapClient())
            {
                //Getting user and password from app.config
                string user     = System.Configuration.ConfigurationManager.AppSettings["prodoctivityUser"],
                       password = System.Configuration.ConfigurationManager.AppSettings["prodoctivityPassword"];

                var xml = client.GetTemplateSampleContextXml(user, password, null, int.Parse(System.Configuration.ConfigurationManager.AppSettings["sampleTemplateHandle"]) /* ProDoctivity Sample Template */);
                return(xml.ToString());
            }
        }
Example #3
0
 /// <summary>
 /// Queries a document by it's document handle
 /// </summary>
 /// <returns>The new document's handle</returns>
 public ProdoctivityService.ProdoctivityDocument GetDocument(int documentHandle)
 {
     using (ProdoctivityService.ProdoctivityServiceSoapClient client = new ProdoctivityService.ProdoctivityServiceSoapClient())
     {
         //Getting user and password from app.config
         string user     = System.Configuration.ConfigurationManager.AppSettings["prodoctivityUser"],
                password = System.Configuration.ConfigurationManager.AppSettings["prodoctivityPassword"];
         var document    = client.GetDocument(
             user,
             password,
             null,
             documentHandle,
             false // Setting this to false means that we are getting that specific version. Setting it to true means getting it's latest version regardless of which one you provided
             );
         return(document);
     }
 }
 /// <summary>
 /// Saves a document using ProDoctivity's API given it's parent in order to save a new version of it.
 /// </summary>
 /// <remarks>
 /// In this sample we are saving a word document into ProDoctivity by using the SaveDocumentWithKeywords operation
 /// </remarks>
 /// <param name="originalDocumentHandle">Document handle of it's parent version</param>
 /// <returns>The new document's handle</returns>
 public int SaveDocument(int originalDocumentHandle)
 {
     using (ProdoctivityService.ProdoctivityServiceSoapClient client = new ProdoctivityService.ProdoctivityServiceSoapClient())
     {
         //Getting user and password from app.config
         string user     = System.Configuration.ConfigurationManager.AppSettings["prodoctivityUser"],
                password = System.Configuration.ConfigurationManager.AppSettings["prodoctivityPassword"];
         var data        = new ProdoctivityService.ArrayOfBase64Binary();
         //Loading data from a sample document that is in Resource.resx
         data.Add(Resource.Document1);
         var documentData = new ProdoctivityService.DocumentData()
         {
             Data = new ProdoctivityService.KeywordData()
             {
                 //Creating a list of keywords with only one keyword
                 Keywords = new List <ProdoctivityService.Keyword>(
                     new ProdoctivityService.Keyword[] {
                     new ProdoctivityService.Keyword()
                     {
                         DataType      = ProdoctivityService.DataTypes.Alphanumeric, //This keyword's data type is Alphanumeric, although there are more
                         KeywordHandle = 1,                                          //Keyword with handle 1 is a sample keyword. Do not use this in production
                         Value         = "Test"                                      //Sample "Test" value
                     }
                 }
                     )
             }
         };
         var newDocument = client.SaveDocumentWithKeywords(
             user,
             password,
             null, // null agent because we are doing direct authentication
             1 /* Sample Pages, do not use this in production */,
             data,
             originalDocumentHandle, // lastVersionDocumentHandle. This means that this new document is a newer version of the provided one. This is very important in order to save a new version
             MSWORD_CONTENT_TYPE,    // MSWord content-type. This value is important if you are saving a docx document
             documentData
             );
         return(newDocument.DocumentHandle);
     }
 }