public ActionResult ImportStep2()
        {
            ClientSubUnitContactImportStep1VM preImportCheckResultVM = new ClientSubUnitContactImportStep1VM();

            preImportCheckResultVM = (ClientSubUnitContactImportStep1VM)TempData["PreImportCheckResultVM"];
            if (preImportCheckResultVM != null)
            {
                ClientSubUnit clientSubUnit = new ClientSubUnit();
                clientSubUnit = clientSubUnitRepository.GetClientSubUnit(preImportCheckResultVM.ClientSubUnitGuid);
                preImportCheckResultVM.ClientSubUnit = clientSubUnit;
            }
            else
            {
                return(View("Error"));
            }

            return(View(preImportCheckResultVM));
        }
        public ActionResult ImportStep2(ClientSubUnitContactImportStep1VM preImportCheckResultVM)
        {
            if (preImportCheckResultVM.ImportStep2VM.IsValidData == false)
            {
                //Check JSON for valid messages
                if (preImportCheckResultVM.ImportStep2VM.ReturnMessages[0] != null)
                {
                    List <string> returnMessages     = new List <string>();
                    List <string> returnMessagesJSON = Newtonsoft.Json.JsonConvert.DeserializeObject <List <string> >(preImportCheckResultVM.ImportStep2VM.ReturnMessages[0]);

                    foreach (string message in returnMessagesJSON)
                    {
                        if (message.StartsWith("Row"))
                        {
                            returnMessages.Add(message);
                        }
                    }

                    preImportCheckResultVM.ImportStep2VM.ReturnMessages = returnMessages;
                }

                TempData["ErrorMessages"] = preImportCheckResultVM;
                return(RedirectToAction("ExportErrors"));
            }

            //PreImport Check Results (check has passed)
            ClientSubUnitContactImportStep2VM preImportCheckResult = new ClientSubUnitContactImportStep2VM();

            preImportCheckResult = preImportCheckResultVM.ImportStep2VM;

            //Do the Import, return results
            ClientSubUnitContactImportStep3VM cdrPostImportResult = new ClientSubUnitContactImportStep3VM();

            cdrPostImportResult = clientSubUnitContactRepository.Import(
                preImportCheckResult.FileBytes,
                preImportCheckResultVM.ClientSubUnit.ClientSubUnitGuid
                );

            cdrPostImportResult.ClientSubUnitGuid = preImportCheckResultVM.ClientSubUnit.ClientSubUnitGuid;
            TempData["CdrPostImportResult"]       = cdrPostImportResult;

            //Pass Results to Next Page
            return(RedirectToAction("ImportStep3"));
        }
        public ActionResult ImportStep1(ClientSubUnitContactImportStep1WithFileVM csvfile)
        {
            //used for return only
            ClientSubUnit clientSubUnit = new ClientSubUnit();

            clientSubUnit         = clientSubUnitRepository.GetClientSubUnit(csvfile.ClientSubUnitGuid);
            csvfile.ClientSubUnit = clientSubUnit;

            if (!ModelState.IsValid)
            {
                return(View(csvfile));
            }
            string fileExtension = Path.GetExtension(csvfile.File.FileName);

            if (fileExtension != ".csv")
            {
                ModelState.AddModelError("file", "This is not a valid entry");
                return(View(csvfile));
            }

            if (csvfile.File.ContentLength > 0)
            {
                ClientSubUnitContactImportStep2VM preImportCheckResult = new ClientSubUnitContactImportStep2VM();
                List <string> returnMessages = new List <string>();

                preImportCheckResult = clientSubUnitContactRepository.PreImportCheck(csvfile.File, csvfile.ClientSubUnitGuid);

                ClientSubUnitContactImportStep1VM preImportCheckResultVM = new ClientSubUnitContactImportStep1VM();
                preImportCheckResultVM.ClientSubUnit     = clientSubUnit;
                preImportCheckResultVM.ImportStep2VM     = preImportCheckResult;
                preImportCheckResultVM.ClientSubUnitGuid = csvfile.ClientSubUnitGuid;

                TempData["PreImportCheckResultVM"] = preImportCheckResultVM;
                return(RedirectToAction("ImportStep2"));
            }

            return(View());
        }