Beispiel #1
0
        public static void sendDocument(string apiKey, string fileName, string formFieldLayerTemplateKey, string recipient)
        {
            FileStream file = getTestPdfFile(fileName);

            secure.echosign.com.FileInfo[] fileInfos = new secure.echosign.com.FileInfo[1];
            fileInfos[0] = new secure.echosign.com.FileInfo(fileName, null, file);
            SenderInfo senderInfo = null;

            string[] recipients = new string[1];
            recipients[0] = recipient;
            DocumentCreationInfo documentInfo = new DocumentCreationInfo(
                recipients,
                testPrefix + Path.GetFileName(file.Name),
                testMessage,
                fileInfos,
                SignatureType.ESIGN,
                SignatureFlow.SENDER_SIGNATURE_NOT_REQUIRED
                );

            if (formFieldLayerTemplateKey != null)
            {
                secure.echosign.com.FileInfo[] formFieldLayerTemplates = new secure.echosign.com.FileInfo[1];
                formFieldLayerTemplates[0]           = new secure.echosign.com.FileInfo(formFieldLayerTemplateKey);
                documentInfo.formFieldLayerTemplates = formFieldLayerTemplates;
            }
            DocumentKey[] documentKeys;
            documentKeys = ES.sendDocument(apiKey, senderInfo, documentInfo);
            Console.WriteLine("Document key is: " + documentKeys[0].documentKey);
        }
Beispiel #2
0
        public void CreateProject(string projectPath, string projectName)
        {
            IProjectTemplate projectTemplate = (
                from template in this.serviceProvider.ProjectManager().TemplateManager.ProjectTemplates
                where template.Identifier.Equals("Microsoft.Blend.WPFApplication")
                select template).First <IProjectTemplate>();
            IProject project = this.serviceProvider.ProjectManager().CreateProjectTemplate(projectPath, projectName, projectTemplate, null).FirstOrDefault <INamedProject>() as IProject;

            if (project != null)
            {
                IDocumentType               item                  = this.serviceProvider.DocumentTypes()[DocumentTypeNamesHelper.Xaml];
                ICodeDocumentType           codeDocumentType      = this.serviceProvider.DocumentTypes().CSharpDocumentType();
                List <DocumentCreationInfo> documentCreationInfos = new List <DocumentCreationInfo>();
                DocumentCreationInfo        documentCreationInfo  = new DocumentCreationInfo()
                {
                    DocumentType = item,
                    TargetPath   = Path.Combine(project.ProjectRoot.Path, "TestUserControl.xaml")
                };
                documentCreationInfos.Add(documentCreationInfo);
                DocumentCreationInfo documentCreationInfo1 = new DocumentCreationInfo()
                {
                    DocumentType = codeDocumentType,
                    TargetPath   = Path.Combine(project.ProjectRoot.Path, "TestUserControl.xaml.cs")
                };
                documentCreationInfos.Add(documentCreationInfo1);
                project.AddItems(documentCreationInfos);
                project.StartupItem.OpenView(true);
            }
        }
Beispiel #3
0
 private bool IsLargeImage(DocumentCreationInfo potentialImage)
 {
     if (potentialImage.DocumentType is ImageDocumentType)
     {
         return(this.IsFileLargerThan(this.GetLargeImageThreshold(), potentialImage.SourcePath));
     }
     return(false);
 }
Beispiel #4
0
 private bool CanOverrideBuildTask(DocumentCreationInfo potentialImage)
 {
     if (potentialImage.BuildTaskInfo == null)
     {
         return(!this.MustUseDefaultBuildTask(potentialImage));
     }
     return(false);
 }
Beispiel #5
0
        public static IProjectItem CreateDesignDataFile(Type type, string dataSourceName, IProjectContext projectContext, bool isDesignTimeCreatable)
        {
            string path1   = Path.Combine(Path.GetDirectoryName(projectContext.ProjectPath), DataSetContext.SampleData.DataRootFolder);
            string str     = dataSourceName ?? type.Name;
            string path2_1 = str + ".xaml";
            string path2   = Path.Combine(path1, path2_1);
            int    num     = 1;

            while (File.Exists(path2))
            {
                string path2_2 = str + num.ToString((IFormatProvider)CultureInfo.InvariantCulture) + ".xaml";
                path2 = Path.Combine(path1, path2_2);
                ++num;
            }
            string          path3           = Path.GetTempFileName() + ".xaml";
            IProjectContext projectContext1 = projectContext;

            if (!isDesignTimeCreatable)
            {
                projectContext1 = (IProjectContext)(projectContext as TypeReflectingProjectContext) ?? (IProjectContext) new TypeReflectingProjectContext(projectContext);
            }
            DocumentContext documentContext = new DocumentContext(projectContext1, (IDocumentLocator) new DocumentLocator(path2), false);
            IType           type1           = documentContext.TypeResolver.GetType(type);
            DocumentNode    node            = new DesignDataGenerator(type1, (IDocumentContext)documentContext).Build();

            try
            {
                using (StreamWriter text = File.CreateText(path3))
                {
                    using (XamlDocument xamlDocument = new XamlDocument((IDocumentContext)documentContext, (ITypeId)type1, (ITextBuffer) new SimpleTextBuffer(), DocumentEncodingHelper.DefaultEncoding, (IXamlSerializerFilter) new DefaultXamlSerializerFilter()))
                        new XamlSerializer((IDocumentRoot)xamlDocument, (IXamlSerializerFilter) new DefaultXamlSerializerFilter()).Serialize(node, (TextWriter)text);
                }
                BuildTaskInfo        buildTaskInfo = new BuildTaskInfo(DocumentContextHelper.DesignDataBuildTask, (IDictionary <string, string>) new Dictionary <string, string>());
                DocumentCreationInfo creationInfo  = new DocumentCreationInfo()
                {
                    BuildTaskInfo   = buildTaskInfo,
                    TargetFolder    = path1,
                    TargetPath      = path2,
                    SourcePath      = path3,
                    CreationOptions = CreationOptions.SilentlyOverwrite | CreationOptions.SilentlyOverwriteReadOnly | CreationOptions.DoNotSelectCreatedItems | CreationOptions.DoNotSetDefaultImportPath
                };
                return(((IProject)projectContext.GetService(typeof(IProject))).AddItem(creationInfo));
            }
            finally
            {
                try
                {
                    File.Delete(path3);
                }
                catch
                {
                }
            }
        }
Beispiel #6
0
        /// <summary>
        /// Sends the agreement.
        /// </summary>
        /// <param name="dci">The dci.</param>
        /// <returns></returns>
        public async Task <EchoSignSendAgreementResponse> SendAgreement(DocumentCreationInfo dci)
        {
            var fileInfo = dci.fileInfos[0];
            var docId    = await UploadTransientDocumentAndGetId(fileInfo.fileName, fileInfo.file);

            var httpContent = new EchoSignSendAgreementRequest(dci)
                              .WithTransientDocId(docId)
                              .BuildContent();

            var accessToken = await GetAccessToken();

            var response = await Post <EchoSignSendAgreementResponse>(agreementsEndpoint, httpContent, accessToken);

            return(response);
        }
Beispiel #7
0
        public Microsoft.Expression.Extensibility.Project.IProjectItem AddItem(string documentItemPath, string itemType)
        {
            if (!this.IsValid)
            {
                return(null);
            }
            Microsoft.Expression.Project.IProject project = this.project;
            DocumentCreationInfo documentCreationInfo     = new DocumentCreationInfo()
            {
                SourcePath      = documentItemPath,
                CreationOptions = CreationOptions.None,
                BuildTaskInfo   = new BuildTaskInfo(itemType, null)
            };

            return(Microsoft.Expression.Extensibility.Project.ProjectItem.FromProjectItem(this, project.AddItem(documentCreationInfo)));
        }
Beispiel #8
0
        /// <summary>
        /// Converts to json string.
        /// </summary>
        /// <param name="dci">The dci.</param>
        /// <returns></returns>
        private string ConvertToJsonString(DocumentCreationInfo dci)
        {
            var createInfo = new EchoSignDocumentCreateInfo {
                name                     = dci.name,
                signatureType            = "ESIGN",
                daysUntilSigningDeadline = dci.daysUntilSigningDeadline ?? 7,
                reminderFrequency        = dci.reminderFrequency.HasValue ? dci.reminderFrequency.Value.ToString() : "DAILY_UNTIL_SIGNED",
                signatureFlow            = dci.signatureFlow.HasValue ? dci.signatureFlow.Value.ToString() : "PARALLEL",
                recipientSetInfos        = CreateRecipientSetInfo(dci.recipients)
                                           .ToArray(),
                fileInfos = new[] {
                    CreateFileInfo()
                }
            };

            var agreementCreation = new EchoSignAgreementCreationInfo {
                documentCreationInfo = createInfo
            };

            return(JsonConvert.SerializeObject(agreementCreation));
        }
Beispiel #9
0
        protected override bool CreateProjectItem()
        {
            IProjectItem projectItem;
            IProject     project = this.SelectedProjectOrNull();

            if (project == null)
            {
                return(false);
            }
            IDocumentType item = base.Services.DocumentTypes()[DocumentTypeNamesHelper.Folder];
            string        str  = this.ProjectManager().TargetFolderForProject(project);
            string        availableFilePath = ProjectPathHelper.GetAvailableFilePath(item.DefaultFileName, str, project);

            Directory.CreateDirectory(availableFilePath);
            try
            {
                List <DocumentCreationInfo> documentCreationInfos = new List <DocumentCreationInfo>();
                DocumentCreationInfo        documentCreationInfo  = new DocumentCreationInfo()
                {
                    DocumentType = item,
                    TargetPath   = availableFilePath
                };
                documentCreationInfos.Add(documentCreationInfo);
                projectItem = project.AddItems(documentCreationInfos).FirstOrDefault <IProjectItem>();
            }
            catch
            {
                Directory.Delete(availableFilePath);
                throw;
            }
            if (projectItem != null)
            {
                base.Services.SetSelection(projectItem);
                base.Services.CommandService().Execute("Project_RenameProjectItem", CommandInvocationSource.Internally);
            }
            return(projectItem != null);
        }
Beispiel #10
0
        private EchoSignSendResultCode SendOne(
            Template oTemplate,
            byte[] oFileContent,
            List <Person> oAddressee,
            int nCustomerID,
            long cashRequestID,
            int nTemplateID,
            bool bSentToCustomer,
            EchoSignSendResult result
            )
        {
            var oRecipients = oAddressee.Select(oPerson => new RecipientInfo {
                email = oPerson.Email,
                role  = RecipientRole.SIGNER,
            }).ToArray();

            var sAllRecipients = string.Join(", ", oRecipients.Select(r => r.email));

            var fi = new FileInfo {
                fileName = oTemplate.FileName,
                mimeType = oTemplate.MimeType,
                file     = oFileContent ?? oTemplate.FileContent,
            };

            var dci = new DocumentCreationInfo {
                name                     = oTemplate.DocumentName,
                signatureType            = SignatureType.ESIGN,
                reminderFrequency        = this.reminderFrequency,
                signatureFlow            = SignatureFlow.PARALLEL,
                daysUntilSigningDeadline = this.deadline,
                recipients               = oRecipients,
                fileInfos                = new[] { fi },
            };

            this.log.Debug("Sending a document '{0}' to {1}...", oTemplate.DocumentName, sAllRecipients);

            DocumentKey[] aryResult;

            try {
                if (this.isUseRestApi)
                {
                    var response = this.restClient.SendAgreement(dci).Result;
                    if (string.IsNullOrEmpty(response.agreementId))
                    {
                        throw new Exception("error sending when sent agreement");
                    }
                    DocumentKey documentKey = new DocumentKey {
                        documentKey = response.agreementId
                    };

                    aryResult = new[] {
                        documentKey
                    };
                }
                else
                {
                    aryResult = this.echoSign.sendDocument(this.apiKey, null, dci);
                }
            } catch (Exception e) {
                string msg = string.Format(
                    "Something went exceptionally terrible while sending a document '{0}' to {1}.",
                    oTemplate.DocumentName,
                    sAllRecipients
                    );
                this.log.Warn(e, msg);
                result.AddErrorMessage(msg);
                return(EchoSignSendResultCode.Fail);
            }             // try

            if (aryResult.Length != 1)
            {
                const string msg = "Failed to send documents for signing.";
                this.log.Alert(msg);
                result.AddErrorMessage(msg);
            }
            else
            {
                this.log.Debug("Sending result: document key is '{0}'.", aryResult[0].documentKey);

                var sp = new SpSaveEsignSent(this.db, this.log)
                {
                    CustomerID        = nCustomerID,
                    CashRequestID     = cashRequestID,
                    Directors         = oAddressee.Where(x => x.PersonType == PersonType.Director).Select(x => x.ID).ToList(),
                    ExperianDirectors = oAddressee
                                        .Where(x => x.PersonType == PersonType.ExperianDirector)
                                        .Select(x => x.ID).ToList(),
                    DocumentKey    = aryResult[0].documentKey,
                    SentToCustomer = bSentToCustomer,
                    TemplateID     = nTemplateID,
                };

                sp.ExecuteNonQuery();
            }             // if

            return(EchoSignSendResultCode.Success);
        }         // SendOne
Beispiel #11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="EchoSignSendAgreementRequest"/> class.
 /// </summary>
 /// <param name="dci">The dci.</param>
 public EchoSignSendAgreementRequest(DocumentCreationInfo dci)
 {
     this.dci = dci;
 }
        public IEnumerable <IProjectItem> CreateProjectItems(string name, string targetFolder, IProject project, IEnumerable <TemplateArgument> templateArguments, CreationOptions creationOptions, out List <IProjectItem> itemsToOpen, IServiceProvider serviceProvider)
        {
            Uri uri;

            if (string.IsNullOrEmpty(name))
            {
                throw new ArgumentNullException("name");
            }
            ICodeDocumentType codeDocumentType = base.GetCodeDocumentType(serviceProvider);

            if (templateArguments != null)
            {
                templateArguments = templateArguments.Concat <TemplateArgument>(TemplateManager.GetDefaultArguments(serviceProvider.ExpressionInformationService()));
            }
            else
            {
                templateArguments = TemplateManager.GetDefaultArguments(serviceProvider.ExpressionInformationService());
            }
            IEnumerable <IProjectItem> projectItems = Enumerable.Empty <IProjectItem>();

            itemsToOpen = new List <IProjectItem>();
            using (ProjectPathHelper.TemporaryDirectory temporaryDirectory = new ProjectPathHelper.TemporaryDirectory(true))
            {
                Uri uri1 = new Uri(Microsoft.Expression.Framework.Documents.PathHelper.EnsurePathEndsInDirectorySeparator(temporaryDirectory.Path));
                List <DocumentCreationInfo> documentCreationInfos = new List <DocumentCreationInfo>();
                List <string> strs = new List <string>();
                bool          flag = false;
                foreach (VSTemplateTemplateContentProjectItem templateProjectItem in this.TemplateProjectItems)
                {
                    if (!templateProjectItem.OpenInEditorSpecified)
                    {
                        continue;
                    }
                    flag = true;
                    break;
                }
                bool             flag1             = false;
                string           str               = CodeGenerator.MakeSafeIdentifier(codeDocumentType, project.DocumentReference.DisplayNameShort, flag1);
                bool             flag2             = true;
                string           str1              = CodeGenerator.MakeSafeIdentifier(codeDocumentType, project.DocumentReference.DisplayNameShort, flag2);
                TemplateArgument templateArgument  = new TemplateArgument("safeprojectname", str);
                TemplateArgument templateArgument1 = new TemplateArgument("safeprojectname", str1);
                TemplateArgument templateArgument2 = new TemplateArgument("assemblyname", project.DocumentReference.DisplayNameShort);
                TemplateArgument templateArgument3 = new TemplateArgument("safeassemblyname", project.DocumentReference.DisplayNameShort.Replace(' ', '\u005F'));
                foreach (VSTemplateTemplateContentProjectItem vSTemplateTemplateContentProjectItem in this.TemplateProjectItems)
                {
                    string targetFileName = vSTemplateTemplateContentProjectItem.TargetFileName;
                    if (string.IsNullOrEmpty(targetFileName))
                    {
                        targetFileName = vSTemplateTemplateContentProjectItem.Value;
                    }
                    TemplateArgument[]             templateArgumentArray = new TemplateArgument[] { new TemplateArgument("fileinputname", Path.GetFileNameWithoutExtension(name)), new TemplateArgument("fileinputextension", Path.GetExtension(name)) };
                    IEnumerable <TemplateArgument> templateArguments1    = templateArgumentArray;
                    targetFileName     = TemplateParser.ReplaceTemplateArguments(targetFileName, templateArguments1);
                    templateArguments1 = templateArguments1.Concat <TemplateArgument>(templateArguments);
                    bool   flag3 = Path.GetExtension(vSTemplateTemplateContentProjectItem.Value).Equals(codeDocumentType.DefaultFileExtension, StringComparison.OrdinalIgnoreCase);
                    string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(Microsoft.Expression.Framework.Documents.PathHelper.GetFileOrDirectoryName(targetFileName));
                    if (serviceProvider.DocumentTypeManager().DocumentTypes[DocumentTypeNamesHelper.Xaml].IsDocumentTypeOf(fileNameWithoutExtension))
                    {
                        fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileNameWithoutExtension);
                    }
                    string str2 = CodeGenerator.MakeSafeIdentifier(codeDocumentType, fileNameWithoutExtension, flag3);
                    IEnumerable <TemplateArgument> templateArguments2     = templateArguments1;
                    TemplateArgument[]             templateArgumentArray1 = new TemplateArgument[] { new TemplateArgument("rootnamespace", project.DefaultNamespaceName), new TemplateArgument("projectname", project.DocumentReference.DisplayNameShort), templateArgument2, templateArgument3, null, null, null, null };
                    templateArgumentArray1[4] = (flag3 ? templateArgument1 : templateArgument);
                    templateArgumentArray1[5] = new TemplateArgument("safeitemname", str2);
                    templateArgumentArray1[6] = new TemplateArgument("safeitemrootname", str2);
                    templateArgumentArray1[7] = new TemplateArgument("culture", (string.IsNullOrEmpty(project.UICulture) ? CultureInfo.CurrentUICulture.ToString() : project.UICulture));
                    templateArguments1        = templateArguments2.Concat <TemplateArgument>(templateArgumentArray1);
                    try
                    {
                        uri = base.ResolveFileUri(targetFileName, uri1);
                    }
                    catch (UriFormatException uriFormatException)
                    {
                        continue;
                    }
                    IDocumentType documentType = project.GetDocumentType(targetFileName);
                    foreach (IDocumentType documentType1 in serviceProvider.DocumentTypeManager().DocumentTypes)
                    {
                        if (vSTemplateTemplateContentProjectItem.SubType != documentType1.Name)
                        {
                            continue;
                        }
                        documentType = documentType1;
                    }
                    if (!base.CreateFile(vSTemplateTemplateContentProjectItem.Value, base.TemplateLocation, uri, vSTemplateTemplateContentProjectItem.ReplaceParameters, templateArguments1))
                    {
                        continue;
                    }
                    string str3 = ProjectItemTemplate.AdjustTargetFolder(targetFolder, uri1.LocalPath, uri.LocalPath);
                    DocumentCreationInfo documentCreationInfo = new DocumentCreationInfo()
                    {
                        SourcePath      = uri.LocalPath,
                        TargetFolder    = str3,
                        DocumentType    = documentType,
                        CreationOptions = creationOptions
                    };
                    documentCreationInfos.Add(documentCreationInfo);
                    if (!flag)
                    {
                        if (strs.Count > 0)
                        {
                            continue;
                        }
                        strs.Add(Path.Combine(str3, Path.GetFileName(uri.LocalPath)));
                    }
                    else
                    {
                        if (!vSTemplateTemplateContentProjectItem.OpenInEditor)
                        {
                            continue;
                        }
                        strs.Add(Path.Combine(str3, Path.GetFileName(uri.LocalPath)));
                    }
                }
                if (documentCreationInfos.Count > 0)
                {
                    projectItems = project.AddItems(documentCreationInfos);
                }
                if (projectItems.Any <IProjectItem>())
                {
                    for (int i = 0; i < strs.Count; i++)
                    {
                        IProjectItem projectItem = projectItems.FirstOrDefault <IProjectItem>((IProjectItem item) => item.DocumentReference.Path.Equals(strs[i], StringComparison.OrdinalIgnoreCase));
                        if (projectItem != null)
                        {
                            itemsToOpen.Add(projectItem);
                        }
                    }
                    projectItems = projectItems.Concat <IProjectItem>(this.AddAssemblies(project));
                }
            }
            if (base.BuildOnLoad)
            {
                IProjectManager      projectManager    = serviceProvider.ProjectManager();
                IProjectBuildContext activeBuildTarget = projectManager.ActiveBuildTarget;
                projectManager.BuildManager.Build(activeBuildTarget, null, true);
                KnownProjectBase knownProjectBase = project as KnownProjectBase;
                if (knownProjectBase != null)
                {
                    knownProjectBase.CheckForChangedOrDeletedItems();
                }
            }
            return(projectItems);
        }
Beispiel #13
0
 private bool MustUseDefaultBuildTask(DocumentCreationInfo potentialImage)
 {
     return((potentialImage.CreationOptions & CreationOptions.AlwaysUseDefaultBuildTask) == CreationOptions.AlwaysUseDefaultBuildTask);
 }
Beispiel #14
0
 private bool ItemAlreadyExistsInProject(DocumentCreationInfo potentialImage, IProject project)
 {
     return(project.FindItem(DocumentReference.Create(potentialImage.TargetPath)) != null);
 }