private NewContractDTO GetNewContractToSign(ContractInvestor contractInvestor) { DocumentContractDTO documentToSign = new DocumentContractDTO() { Name = contractInvestor.FileName, Base64 = GetFileInBytes(contractInvestor.FileName) }; UserContractDTO userSign = new UserContractDTO() { Name = contractInvestor.FullName, Email = contractInvestor.Email }; NewContractDTO newContractDTO = new NewContractDTO() { Title = Constants.Contract.TitleContractInvestor, Language = Constants.Contract.Language_Spanish, TemplateId = Constants.Contract.TemplateIdInvesor }; newContractDTO.Documents.Add(documentToSign); newContractDTO.Users.Add(userSign); return(newContractDTO); }
public async Task <ResponseTOCContractDTO> GenerateDocumentTOC(InvestorInfo investorInfo) { if (investorInfo == null) { throw new ArgumentNullException(nameof(investorInfo)); } GeneratePDF generatePDF = new GeneratePDF(); string newDocumentFileName = generatePDF.GenerateInvestorDocument(investorInfo); ResponseTOCContractDTO response = new ResponseTOCContractDTO(); if (!string.IsNullOrWhiteSpace(newDocumentFileName)) { ContractInvestor contractInvestor = new ContractInvestor() { FileName = newDocumentFileName, Email = investorInfo.Email, FullName = string.Concat(investorInfo.FirstName, " ", investorInfo.LastName), DocNumber = investorInfo.DocumentNumber }; response = await _tocLogic.CreateContract(contractInvestor); } return(response); }
public async Task <ResponseTOCContractDTO> CreateContract(ContractInvestor contractInvestor) { NewRequestContractDTO contractToSend = GetNewContractToSign(contractInvestor); ResponseTOCContractDTO responseContractDTO = new ResponseTOCContractDTO(); using (var httpClient = new HttpClient()) { string jsonSigners = JsonConvert.SerializeObject(contractToSend.Signers); ////Convert object properties in lowercase var newContractObject = JObject.Parse(jsonSigners, new JsonLoadSettings()); JsonHelpers.ChangePropertiesToLowerCase_TOC(newContractObject); try { httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("multipart/form-data")); httpClient.DefaultRequestHeaders.Add("Authorization", _tocSettings.API_Key); using (var form = new MultipartFormDataContent()) { string filePath = @"Template_Investor\" + contractInvestor.FileName; using (var fileContent = new ByteArrayContent(await File.ReadAllBytesAsync(filePath))) { fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/form-data"); form.Add(fileContent, "file", Path.GetFileName(filePath)); form.Add(new StringContent(newContractObject.ToString()), "signers"); form.Add(new StringContent(contractToSend.Message), "message"); form.Add(new StringContent(contractToSend.Lang), "lang"); var builder = new UriBuilder(new Uri(_tocSettings.API_Url + EndPointURL)); using (var response = await httpClient.PostAsync(builder.Uri, form)) { string apiResponse = await response.Content.ReadAsStringAsync(); responseContractDTO = JsonConvert.DeserializeObject <ResponseTOCContractDTO>(apiResponse); } } } } catch (Exception ex) { throw ex; } } return(responseContractDTO); }
private NewRequestContractDTO GetNewContractToSign(ContractInvestor contractInvestor) { SignerDTO signerDTO = new SignerDTO(); signerDTO.Firmantes.Add(contractInvestor.Email); signerDTO.Identificadores.Add(contractInvestor.DocNumber); signerDTO.Copies.Add(Constants.Contract.CopyEmailTo); NewRequestContractDTO newContractDTO = new NewRequestContractDTO() { File = GetFileInBytes(contractInvestor.FileName), Signers = signerDTO, Message = Constants.Contract.MessageWelcome, Lang = Constants.Contract.Language_Spanish }; return(newContractDTO); }
public async Task <ResponseContractDTO> CreateContract(ContractInvestor contractInvestor) { NewContractDTO contractToSend = GetNewContractToSign(contractInvestor); ResponseContractDTO responseContractDTO = new ResponseContractDTO(); using (var httpClient = new HttpClient()) { string jsonNewContract = JsonConvert.SerializeObject(contractToSend); //Convert object properties in lowercase var newContractObject = JObject.Parse(jsonNewContract, new JsonLoadSettings()); JsonHelpers.ChangePropertiesToLowerCase(newContractObject); try { httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.Add("Authorization", _keyNUASettings.API_Token); httpClient.DefaultRequestHeaders.Add("x-api-key", _keyNUASettings.API_Key); var builder = new UriBuilder(new Uri(_keyNUASettings.API_Url + EndPointURL)); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, builder.Uri); request.Content = new StringContent(newContractObject.ToString(Formatting.None), Encoding.UTF8, "application/json");//CONTENT-TYPE header using (var response = await httpClient.SendAsync(request)) { string apiResponse = await response.Content.ReadAsStringAsync(); responseContractDTO = JsonConvert.DeserializeObject <ResponseContractDTO>(apiResponse); } } catch (Exception ex) { throw ex; } } return(responseContractDTO); }