Ejemplo n.º 1
0
        private CreateAndSendCaseResponse CreateCaseFromTemplate()
        {
            CreateAndSendCaseResponse createAndSendCaseResponse = new CreateAndSendCaseResponse();


            if (!string.IsNullOrWhiteSpace(Name) && !string.IsNullOrWhiteSpace(Email))
            {
                try
                {
                    var client = new AssentlyClient(_configuration.GetConnectionString("WebURI"), _configuration.GetConnectionString("APIKey"), _configuration.GetConnectionString("APISecret"));

                    var newCaseID = Guid.NewGuid();
                    client.CreateCaseFromTemplate(Guid.Parse(_configuration["TemplateId"]), newCaseID);

                    var @case = client.GetCase(newCaseID);

                    @case.Name                            = $"{Name}/{newCaseID}";
                    @case.Parties[0].Name                 = Name;
                    @case.Parties[0].EmailAddress         = Email;
                    @case.Parties[0].MobilePhone          = PhoneNumber;
                    @case.Parties[0].SocialSecurityNumber = PersonalNumber;
                    @case.Documents[0].FormFields["ContractDescription"] = Description;


                    client.UpdateCase(@case);
                    client.SendCase(newCaseID);

                    createAndSendCaseResponse.URL = @case.Parties[0].PartyUrl;
                }
                catch (Exception ex)
                {
                    createAndSendCaseResponse.ErrorMessage = ex.Message;
                }
            }
            else
            {
                createAndSendCaseResponse.ErrorMessage = "Please enter your Name and Email, to create contract";
            }
            return(createAndSendCaseResponse);
        }
Ejemplo n.º 2
0
        public void OpprettCaseOgSendEpost(string epost, string caseNavn, string dokumentNavn, string signeringsmetode)
        {
            string[] Invitasjonsemails;

            if (!(epost == null))
            {
                Invitasjonsemails = epost.Split(',');
            }
            else
            {
                return;
            }


            //En CreateCaseModel skal bestå av et dokument, en eller flere brukere og annen info
            CreateCaseModel  model  = new CreateCaseModel();
            List <CaseEvent> events = new List <CaseEvent>();

            events.Add(CaseEvent.SignatureAdded);

            //Påkrevd
            model.Id = Guid.NewGuid();
            model.SendSignRequestEmailToParties = true;
            model.SendFinishEmailToParties      = true;
            model.SendFinishEmailToCreator      = true;
            model.Name          = caseNavn;
            model.NameAlias     = "Alias";
            model.EventCallback = new CaseEventSubscription
            {
                Events = events,
                Url    = "http://158.36.13.131:52817/DBController/WriteNewSignature"
            };

            //Kan gi valg mellom eID signatur eller signbyhand (på mobil). Påkrevd
            if (signeringsmetode == "electronicid")
            {
                model.AllowedSignatureTypes.Add(SignatureType.ElectronicId);
            }
            else
            {
                model.AllowedSignatureTypes.Add(SignatureType.Touch);
            }

            //PartyModel er en samling brukere. Påkrevd.
            //Skal flere brukere signere ett dokument, må denne kodebiten gjentas.
            for (var i = 0; i < Invitasjonsemails.Length - 1; i++)
            {
                model.Parties.Add(new PartyModel
                {
                    Name         = "Undertegnede",
                    EmailAddress = Invitasjonsemails[i]
                });
            }

            //En eller flere dokumenter angis til en Liste med dokumenter
            model.Documents.Add("./Persistence/Dokumenter/" + dokumentNavn);
            model.Metadata.Add("nøkkel", "verdi");

            using (var fileStream = new FileStream("./Persistence/guid.txt", FileMode.Create))
            {
                byte[] data = model.Id.ToByteArray();
                fileStream.Write(data, 0, data.Length);
            }

            string oppretterEmail = User.Claims.Where(c => c.Type == "name").FirstOrDefault().Value;


            //CreateCaseModel objektet sendes til Assently
            client.CreateCase(model);

            //Her blir brukerene evt tilsendt en epost med signaturlink
            //Evt kan også SMS benyttes
            client.SendCase(model.Id);

            //Oppdater antallsignatur teller Auth0
            OppdaterAntallOppdragTeller();

            DBController.DokumentTilDatabase(model.Id, dokumentNavn, Invitasjonsemails.Length,
                                             caseNavn, oppretterEmail);
            DBController.KundeTilDatabase(Invitasjonsemails);
        }