public async Task <ActionResult> New(HcViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var jobcard = new Jobcard
                {
                    JobcardNo    = viewModel.Jobcard.JobcardNo,
                    CustomerName = viewModel.Jobcard.CustomerName,
                    ChassisNo    = viewModel.Jobcard.ChassisNo,
                    PlateNo      = viewModel.Jobcard.PlateNo,
                    Mileage      = viewModel.Jobcard.Mileage,
                    BranchID     = CurrentUser.BranchID
                };
                _uow.Jobcards.Add(jobcard);

                //add the jobcard foreach before saiving to db
                viewModel.HealthCheckDetails.ToList().ForEach(x =>
                {
                    x.JobcardNo = jobcard.JobcardNo;
                });

                _uow.HealthCheckDetails.AddRange(viewModel.HealthCheckDetails.ToList());
                await _uow.SaveChangesAsync();

                return(RedirectToAction("index", "videos"));
            }

            SetJobcardValidationErrorMessages(ModelState);

            viewModel.GroupedHealthChecks = _uow.HealthChecks.GetAllByHcGroup();
            return(View(viewModel));
        }
        private string UploadCsvToDatabase(Stream inputStream)
        {
            //var isSuccess = false;
            var line = string.Empty;

            string[] strArray;
            var      jobcardNo    = string.Empty;
            var      customerName = string.Empty;
            var      chassisNo    = string.Empty;
            var      plateNo      = string.Empty;
            var      mileage      = string.Empty;
            var      hcCode       = string.Empty;
            var      status       = string.Empty;
            var      comments     = string.Empty;

            //We should not seperate the comma in a sentence
            Regex        r  = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
            StreamReader sr = new StreamReader(inputStream);

            //read the first row which the column header
            line     = sr.ReadLine();
            strArray = r.Split(line);

            //_uow.Jobcards.GetById()
            var jobcard = new Jobcard();

            while ((line = sr.ReadLine()) != null)
            {
                strArray = r.Split(line);

                jobcardNo    = !string.IsNullOrWhiteSpace(strArray[0]) ? strArray[0].ToString().Replace($"\"", "") : string.Empty;
                customerName = !string.IsNullOrWhiteSpace(strArray[1]) ? strArray[1].ToString().Replace($"\"", null) : string.Empty;
                chassisNo    = !string.IsNullOrWhiteSpace(strArray[2]) ? strArray[2].ToString().Replace($"\"", null) : string.Empty;
                plateNo      = !string.IsNullOrWhiteSpace(strArray[3]) ? strArray[3].ToString().Replace($"\"", null) : string.Empty;
                mileage      = !string.IsNullOrWhiteSpace(strArray[4]) ? strArray[4].ToString().Replace($"\"", null) : string.Empty;
                hcCode       = !string.IsNullOrWhiteSpace(strArray[5]) ? strArray[5].ToString().Replace($"\"", null) : string.Empty;
                status       = !string.IsNullOrWhiteSpace(strArray[6]) ? strArray[6].ToString().Replace($"\"", null) : string.Empty;
                comments     = !string.IsNullOrWhiteSpace(strArray[7]) ? strArray[7].ToString().Replace($"\"", null) : string.Empty;

                if (jobcard.JobcardNo == null)
                {
                    jobcard.JobcardNo    = jobcardNo;
                    jobcard.CustomerName = customerName;
                    jobcard.ChassisNo    = chassisNo;
                    jobcard.PlateNo      = plateNo;
                    jobcard.Mileage      = mileage;
                    jobcard.BranchID     = CurrentUser.BranchID;
                }

                jobcard.HealthCheckDetails.Add(new HealthCheckDetails
                {
                    JobcardNo = jobcardNo,
                    HcCode    = hcCode,
                    Status    = status,
                    Comments  = comments
                });
            }
            _uow.Jobcards.Add(jobcard);

            _uow.SaveChanges();
            sr.Dispose();
            //isSuccess = true;
            return(jobcardNo);
        }