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); }
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); }