public ActionResult Create(VaultCashFormViewModel viewModel) { if (!ModelState.IsValid) { ViewBag.Error = "Please check the entered values. "; return(View(_vaultCashRepository.InitializeNewVaultCashFormViewModel(viewModel))); } try { _vaultCashRepository.SaveVaultCash(viewModel, "Create"); return(RedirectToAction("Details", "Terminals", new { id = viewModel.Id })); } catch (Exception ex) { ViewBag.Error = ex.Message; return(View(_vaultCashRepository.InitializeNewVaultCashFormViewModel(viewModel))); } }
public ActionResult Edit(int?id) { try { if (id != null) { VaultCashFormViewModel viewModel = _vaultCashRepository.VaultCashToEdit((int)id); viewModel.Action = "Edit"; //para poder usar el mismo formulario modal de adicionar y edit, necesito hacer //dinamico la accion que va tomar el Form cuando se le de submit. return(PartialView("Modal/AddVaultCash", viewModel)); } ViewBag.Error = "Vaultcash not found. "; return(PartialView("Error")); } catch (Exception ex) { ViewBag.Error = ex.Message; return(View("Error")); } }
public VaultCashFormViewModel InitializeNewVaultCashFormViewModel(VaultCashFormViewModel viewModel) { try { if (viewModel == null) { throw new Exception("Model not found. "); } viewModel.Terminal = Context.Terminals.SingleOrDefault(x => x.Id == viewModel.Id && !x.Deleted); viewModel.BankAccounts = Context.BankAccounts.Where(x => !x.Deleted && x.PartnerId == viewModel.Terminal.PartnerId).ToList(); viewModel.StartDate = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, DateTime.UtcNow.Day + 1); viewModel.StopDate = new DateTime(DateTime.Now.Year + 1, DateTime.Now.Month, DateTime.Now.Day); return(viewModel); } catch (Exception ex) { throw new Exception(ex.Message + "Vaultcash not found. "); } }
public ActionResult Create(int id) { try { if (id > 0) { VaultCashFormViewModel model = _vaultCashRepository.RenderVaultCashFormViewModel(id); //devuelvo el partialView siempre porque siempre se solicida desde el details y se mostrara como modal //si se quiere devolver en el View("create") seria validar quien lo solicito para devolver. //se puede usar el mismo formulario si en vairas vistas. return(PartialView("Modal/AddVaultCash", model)); } ViewBag.Error = "Vaultcash not found. "; return(PartialView("Error")); } catch (Exception ex) { ViewBag.Error = ex.Message; return(View("Error")); } }
public void SaveVaultCash(VaultCashFormViewModel viewModel, string action) { try { if (viewModel.StartDate > viewModel.StopDate) { throw new Exception("Stop Date must be after Start Date"); } if (action == "Edit") { var vaultcashToEdit = Table.SingleOrDefault(x => x.Id == viewModel.Id && !x.Deleted); if (vaultcashToEdit == null) { throw new Exception("Vault Cash does not exist in our records. "); } Mapper.Map(viewModel, vaultcashToEdit); Edit(vaultcashToEdit); } else { var vaultcash = Table.SingleOrDefault(x => x.Id == viewModel.Id && !x.Deleted); if (vaultcash != null && !vaultcash.Deleted) { throw new Exception("This Terminal already has a Vaultcash account. "); } if (vaultcash != null && vaultcash.Deleted) { Table.Remove(vaultcash); } var vaultcashNew = Mapper.Map <VaultCashFormViewModel, VaultCash>(viewModel); Add(vaultcashNew); } } catch (Exception ex) { throw new Exception(ex.Message + "Please check the entered values. "); } }