public void Save(BankBranchViewModel bankBranchViewModel)
 {
     BankBranch bankBranch = new BankBranch(bankBranchViewModel.Id)
     {
         Name = bankBranchViewModel.Name,
         Code = bankBranchViewModel.Code,
         Description = bankBranchViewModel.Description,
         Bank=_bankRepository.GetById (bankBranchViewModel.BankId )
     };
     _bankBranchRepository.Save(bankBranch);
 }
        public ActionResult EditBankBranch(BankBranchViewModel ctpvm)
        {
            try
            {
                ViewBag.BankList = _bankBranchViewModelBuilder.Bank();

                _bankBranchViewModelBuilder.Save(ctpvm);
                TempData["msg"] = "Bank Branch Successfully Edited"; 
                return RedirectToAction("ListBankBranches");
            }
            catch (DomainValidationException dve)
            {
                ValidationSummary.DomainValidationErrors(dve,ModelState);
                return View();
            }
            catch (Exception ex)
            {
                _log.Debug("Failed to edit bankBranch" + ex.Message);
                _log.Error("Failed to edit bankBranch" + ex.ToString());
                return View();
            }
        }
        public ActionResult CreateBankBranch(BankBranchViewModel ctpvm)
        {
            

            try
            {
                ViewBag.BankList = _bankBranchViewModelBuilder.Bank();
                ctpvm.Id = Guid.NewGuid();
                _bankBranchViewModelBuilder.Save(ctpvm);
                TempData["msg"] = "Bank Branch Successfully created";
                return RedirectToAction("ListBankBranches");
            }
           
            catch (DomainValidationException dve)
            {

                ValidationSummary.DomainValidationErrors(dve, ModelState);
                
                _log.Debug("Failed to create bankBranch" + dve.Message);
                _log.Error("Failed to create bankBranch" + dve.ToString());
                return View();
            }
            catch (Exception ex)
            {
                ViewBag.msg = ex.Message;
                _log.Debug("Failed to create bankBranch" + ex.Message);
                _log.Error("Failed to create bankBranch" + ex.ToString());
                var errors = ModelState
                    .Where(x => x.Value.Errors.Count() > 0)
                    .Select(x => new { x.Key, x.Value.Errors })
                    .ToArray();
                
                return View();
            }
        }