public async Task CreateDocumentAndGetStatus()
        {
            Console.WriteLine("Creating new document");
            var documentInformation = new DocumentDto("Example");
            var documentLocation    = await m_client.SendRequest <LocationDto>(new CreateDocument(documentInformation));

            Console.WriteLine("Adding new file for created document");
            var attachment     = await new HttpClient().GetByteArrayAsync("https://sign.visma.net/empty.pdf");
            var attachmentUuid = await m_client.SendRequest <IdentifierDto>(new AddFileToDocument(documentLocation, "empty.pdf", attachment));

            Console.WriteLine("Creating invitations for document");
            var invitations = new AddInvitationsToDocument(documentLocation, new List <InvitationDto>()
            {
                new InvitationDto("*****@*****.**", null, SignatureType.Strong, "John Visma", Language.Finnish),
            });
            var createdInvitations = await m_client.SendRequest <List <InvitationCreatedDto> >(invitations);

            foreach (var invitation in createdInvitations)
            {
                Console.WriteLine($"Invitation '{invitation.uuid}' created");
            }

            Console.Write("Asking document status...");
            var documentStatus = await m_client.SendRequest <DocumentStatusDto>(new GetDocumentStatus(documentLocation.Uuid));

            Console.WriteLine($" status is: {documentStatus.status}");
        }
Ejemplo n.º 2
0
        public async Task RequestAccess(string businessId)
        {
            Console.WriteLine("Finding organization uuid for requesting access");
            var organizations = await m_client.SendRequest <OrganizationsDto>(new SearchOrganization(businessId));

            if (!organizations.organizations.Any())
            {
                Console.WriteLine($"No organizations found with '{businessId}'");
                return;
            }

            var organization = organizations.organizations.First(x => x.business_id == businessId);

            Console.WriteLine($"Requesting access to an organization with uuid: {organization.uuid}");
            var result =
                await m_client.SendRequest <HttpStatusCodeDto>(new RequestAccessToOrganization(
                                                                   organization.uuid,
                                                                   "We would like access to your Visma Sign organization, in order to automate signing of documents.",
                                                                   Language.English));

            if (result.Code != HttpStatusCode.Created)
            {
                Console.WriteLine($"Requesting access failed with http status code: {result.Code}");
                return;
            }

            Console.WriteLine("Starting to polling if organization has accepted our request");
            for (var times = 0; times < 3; times++)
            {
                var accessStatus = await m_client.SendRequest <OrganizationDto>(new GetOrganization(organization.uuid));

                Console.WriteLine($"Is access authorized: {accessStatus.authorization.authorized}");

                await Task.Delay(TimeSpan.FromSeconds(1));
            }
        }