public async Task<ActionResult> PostOnboardingClientDetails(OnboardingClientDetails submitionData)
        {
            var model = new ClientDetails();
            using (new HttpClient())
            {
                var url = ConfigurationManager.AppSettings["APIUrl"];

                var request =
                    WebRequest.CreateHttp(url + "api/Onboarding/");
                request.ContentType = "text/json";
                request.Method = "POST";

                //NEED TO CHANGE USERNAME TO PROVIDED USERNAME
                const string authHeader = "Reyker USERNAME";
                request.Headers.Add("Authorization", authHeader);

                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    var encryptedSubmissionData = await submitionData.AES_Encrypt();
                    var json = new JavaScriptSerializer().Serialize(encryptedSubmissionData);
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
                }

                try
                {
                    var response = request.GetResponse() as HttpWebResponse;

                    if (response != null && response.StatusCode == HttpStatusCode.OK)
                    {
                        using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                        {
                            var objText = reader.ReadToEnd();
                            model = await objText.AES_Decrypt<ClientDetails>();
                            if (model.TelephoneNumbers == null)
                            {
                                model.TelephoneNumbers = new List<TelephoneNumber>();
                            }
                            if (model.Addresses == null)
                            {
                                model.Addresses = new List<ClientAddress>();
                            }
                            if (model.BankAccounts == null)
                            {
                                model.BankAccounts = new List<ClientBankAccount>();
                            }
                            if (model.Plans == null)
                            {
                                model.Plans = new List<ClientPlan>();
                            }
                            if (model.AML == null)
                            {
                                model.AML = new ClientAml();
                            }
                            if (model.Citizenships == null)
                            {
                                model.Citizenships = new List<ClientCitizenship>();
                            }
                        }
                    }
                    ViewData["ResponseStatusCode"] = response.StatusCode;
                    ViewData["ResponseStatusMessage"] = response.StatusDescription;
                }
                catch (WebException ex)
                {
                    var response = ex.Response as HttpWebResponse;
                    using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                    {
                        var objText = reader.ReadToEnd();

                        model.ErrorMessage = objText;
                        model.TelephoneNumbers = new List<TelephoneNumber>();
                        model.Addresses = new List<ClientAddress>();
                        model.BankAccounts = new List<ClientBankAccount>();
                        model.Plans = new List<ClientPlan>();
                        model.AML = new ClientAml();
                        model.Citizenships = new List<ClientCitizenship>();
                    }

                    ViewData["ResponseStatusCode"] = response.StatusCode;
                    ViewData["ResponseStatusMessage"] = response.StatusDescription;
                }
            }
            return View("OnboardingResult", model);
        }
        public async Task<ActionResult> GetBulkClientDetails()
        {
            var model = new List<ClientDetails>();

            using (new HttpClient())
            {
                var url = ConfigurationManager.AppSettings["APIUrl"];

                var request =
                    WebRequest.CreateHttp(url + "api/BulkClientDetails/");
                request.ContentType = "text/json";
                request.Method = "GET";

                //NEED TO CHANGE USERNAME TO PROVIDED USERNAME
                const string authHeader = "Reyker USERNAME";
                request.Headers.Add("Authorization", authHeader);

                try
                {
                    var response = request.GetResponse() as HttpWebResponse;

                    if (response != null && response.StatusCode == HttpStatusCode.OK)
                    {
                        using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                        {
                            var objText = reader.ReadToEnd();
                            model = await objText.AES_Decrypt<List<ClientDetails>>();

                            foreach (var clientDetails in model)
                            {

                                if (clientDetails.TelephoneNumbers == null)
                                {
                                    clientDetails.TelephoneNumbers = new List<TelephoneNumber>();
                                }
                                if (clientDetails.Addresses == null)
                                {
                                    clientDetails.Addresses = new List<ClientAddress>();
                                }
                                if (clientDetails.BankAccounts == null)
                                {
                                    clientDetails.BankAccounts = new List<ClientBankAccount>();
                                }
                                if (clientDetails.Plans == null)
                                {
                                    clientDetails.Plans = new List<ClientPlan>();
                                }
                                if (clientDetails.AML == null)
                                {
                                    clientDetails.AML = new ClientAml();
                                }
                                if (clientDetails.Citizenships == null)
                                {
                                    clientDetails.Citizenships = new List<ClientCitizenship>();
                                }
                            }
                        }
                    }
                    ViewData["ResponseStatusCode"] = response.StatusCode;
                    ViewData["ResponseStatusMessage"] = response.StatusDescription;
                }
                catch (WebException ex)
                {
                    var response = ex.Response as HttpWebResponse;
                    using (var reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                    {
                        var objText = reader.ReadToEnd();

                        var cd = new ClientDetails();

                        cd.ErrorMessage = objText;
                        cd.TelephoneNumbers = new List<TelephoneNumber>();
                        cd.Addresses = new List<ClientAddress>();
                        cd.BankAccounts = new List<ClientBankAccount>();
                        cd.Plans = new List<ClientPlan>();
                        cd.AML = new ClientAml();
                        cd.Citizenships = new List<ClientCitizenship>();

                        model.Add(cd);
                    }

                    ViewData["ResponseStatusCode"] = response.StatusCode;
                    ViewData["ResponseStatusMessage"] = response.StatusDescription;
                }

            }

            return View("BulkClientDetailsResult", model);
        }