//Presentacion public async Task <Presentacion> ToPresentacionAsync(AddPresentacionViewModel model) { return(new Presentacion { Nombre = model.Nombre, Etiqueta = await _dataContext.Etiquetas.FindAsync(model.EtiquetaId), Envase = await _dataContext.Envases.FindAsync(model.EnvaseId), Id = model.Id }); }
public IActionResult Create() { //Aqui necesitamos enviar los combo box respectiivos var model = new AddPresentacionViewModel { Envases = _combosHelper.GetComboEnvases(), Etiquetas = _combosHelper.GetComboEtiqueta() }; return(View(model)); }
public async Task <IActionResult> Edit(AddPresentacionViewModel model) { if (ModelState.IsValid) { if (_validatorHelper.IsEtiquetaUsed(model.EtiquetaId)) { //Aqui tiene que venir una ventana de error. return(RedirectToAction("Error")); } //El id de la presentacion tiene que ser igual al id de la etiqueta por la relacion 1-1 var presentacion = await _converterHelper.ToPresentacionAsync(model); var etiqueta = _etiquetaRepository.GetEtiqueta(model.FormerEtiquetaId); await _presentacionRepository.UpdateAsync(presentacion); etiqueta.IsUsed = false; await _etiquetaRepository.UpdateAsync(etiqueta); etiqueta = _etiquetaRepository.GetEtiqueta(model.EtiquetaId); //Esto en teoria no deberia estar aca, se puede hacer una abstraccion mas, pero como no es un cambio de //La base de datos, sino del objeto en si creo que estaria permitido. etiqueta.IsUsed = true; await _etiquetaRepository.UpdateAsync(etiqueta); //Dtalles del propietario return(RedirectToAction("Index")); } else { return(RedirectToAction("Error")); } }
public async Task <IActionResult> Create(AddPresentacionViewModel model) { //Aqui igual tenemos que hacer lo corresopndiente if (ModelState.IsValid) { if (_validatorHelper.IsEtiquetaUsed(model.EtiquetaId)) { return(RedirectToAction("Error")); } var etiqueta = _etiquetaRepository.GetEtiqueta(model.EtiquetaId); var presentacion = await _converterHelper.ToPresentacionAsync(model); await _presentacionRepository.CreateAsync(presentacion); //Solo depsues que se haya guardado los datos, tenemos que insertar la etiqueta etiqueta.IsUsed = true; await _etiquetaRepository.UpdateAsync(etiqueta); return(RedirectToAction("Index")); } else { model.Envases = _combosHelper.GetComboEnvases(); model.Etiquetas = _combosHelper.GetComboEtiqueta(); } return(View(model)); }