private Document IntegrateCustomer(CustomerReRegistration customer)
        {
            FormTemplate formTemplate = this.FindFormTemplate(_onbaseSettings.FormIntegrationID);
            StoreNewUnityFormProperties onbaseStore = this.InitNewForm(formTemplate);

            MapCustomerFieldsToOnbase(customer, onbaseStore, formTemplate);
            var output = this.StoreNewUnityForm(onbaseStore);

            return(output);
        }
        public void ApplyBasicData(CustomerReRegistration customer)
        {
            OnbaseStore.AddKeyword("mongoId", customer.MongoId);
            OnbaseStore.AddKeyword("CPF", customer.Cpf);
            OnbaseStore.AddKeyword("Nome", customer.Name);
            OnbaseStore.AddKeyword("E-mail", customer.Email);
            OnbaseStore.AddKeyword("Data de Nascimento", customer.BirthDate);
            OnbaseStore.AddKeyword("Nacionalidade", customer.Nationality.ToString());
            OnbaseStore.AddKeyword("Estado onde nasceu", customer.BirthState);
            OnbaseStore.AddKeyword("Cidade onde nasceu", customer.BirthCity);
            OnbaseStore.AddKeyword("Estado Civil", customer.CivilStatus.ToString());
            OnbaseStore.AddKeyword("Nome do Conjuge", customer.SpouseName);
            OnbaseStore.AddKeyword("CPF do Conjuge", customer.SpouseCpf);
            OnbaseStore.AddKeyword("Nome da Mãe", customer.MotherName);
            OnbaseStore.AddKeyword("Status", customer.OnboardingStep);
            OnbaseStore.AddKeyword("Tipo de Cadastro", "Recadastro");

            if (customer.Lastmodified.HasValue)
            {
                OnbaseStore.AddKeyword("Data Ultima Alteracao", customer.Lastmodified.Value);
            }
        }
        private void MapCustomerFieldsToOnbase(CustomerReRegistration customer, StoreNewUnityFormProperties onbaseStore, FormTemplate formTemplate)
        {
            var customerForm = new CustomerReRegistrationForm(onbaseStore, formTemplate);

            customerForm.ApplyBasicData(customer);
            customerForm.ApplyAddress(customer.Addresses);
            customerForm.ApplyAccounts(customer.Accounts);
            customerForm.ApplyWork(customer.Work);
            customerForm.ApplyDeclarations(customer.Declarations);
            customerForm.ApplyInvestiments(customer.Investments);
            customerForm.ApplyFatca(customer.Fatca);
            customerForm.ApplyDocument(customer.Document);


            if (!string.IsNullOrEmpty(customer.IdClient))
            {
                Suitability suitability = this._customerRepository
                                          .GetCustomerSuitability(customer.IdClient)
                                          .GetAwaiter()
                                          .GetResult();

                customerForm.SuitabilityData(suitability);
            }
        }