// GET: Salas/Create public ActionResult Create() { SalaCreateViewModel viewModel = new SalaCreateViewModel { TipoAnimacaoID3selectList = new SelectList(db.TipoAnimacao, "TipoAnimacaoID", "Descricao"), TipoAudioID3selectList = new SelectList(db.TipoAudio, "TipoAudioID", "Descricao"), TipoAnimacaoID2selectList = new SelectList(db.TipoAnimacao, "TipoAnimacaoID", "Descricao"), TipoAudioID2selectList = new SelectList(db.TipoAudio, "TipoAudioID", "Descricao"), TipoAnimacaoID1selectList = new SelectList(db.TipoAnimacao, "TipoAnimacaoID", "Descricao"), TipoAudioID1selectList = new SelectList(db.TipoAudio, "TipoAudioID", "Descricao") }; return(View(viewModel)); }
public ActionResult Create([Bind(Include = "Nome,QtdAssentos,TipoAudioID1,TipoAudioID1selectList,TipoAnimacaoID1,TipoAnimacaoID1selectList,TipoAudioID2,TipoAudioID2selectList,TipoAnimacaoID2,TipoAnimacaoID2selectList,TipoAudioID3,TipoAudioID3selectList,TipoAnimacaoID3,TipoAnimacaoID3selectList")] SalaCreateViewModel ViewModel) { if (ModelState.IsValid) { try { Sala sala = new Sala { Nome = ViewModel.Nome, QtdAssentos = ViewModel.QtdAssentos }; //--Armazena as opções Tipo Animacao e Tipo Audio obrigatórias SalaAudioAnimacao salaAudioAnimacao1 = new SalaAudioAnimacao { Sala = sala, TipoAnimacaoID = ViewModel.TipoAnimacaoID1, TipoAudioID = ViewModel.TipoAudioID1 }; db.Sala.Add(sala); db.SalaAudioAnimacao.Add(salaAudioAnimacao1); //--versão 2.0 criar lista de Audio/Animação //--Vincula à sala as 2 opções Tipo Animacao e Tipo Audio opcionais if (ViewModel.TipoAnimacaoID2.HasValue && ViewModel.TipoAnimacaoID2.Value != 0 && ViewModel.TipoAudioID2.HasValue && ViewModel.TipoAudioID2.Value != 0) { if (ViewModel.TipoAnimacaoID1 != ViewModel.TipoAnimacaoID2.Value || ViewModel.TipoAudioID1 != ViewModel.TipoAudioID2.Value) { SalaAudioAnimacao salaAudioAnimacao2 = new SalaAudioAnimacao { Sala = sala, TipoAnimacaoID = ViewModel.TipoAnimacaoID2.Value, TipoAudioID = ViewModel.TipoAudioID2.Value }; db.SalaAudioAnimacao.Add(salaAudioAnimacao2); } if (ViewModel.TipoAnimacaoID3.HasValue && ViewModel.TipoAnimacaoID3.Value != 0 && ViewModel.TipoAudioID3.HasValue && ViewModel.TipoAudioID3.Value != 0) { if ((ViewModel.TipoAnimacaoID3.Value != ViewModel.TipoAnimacaoID2.Value && ViewModel.TipoAnimacaoID3.Value != ViewModel.TipoAnimacaoID1) || (ViewModel.TipoAudioID3.Value != ViewModel.TipoAudioID2.Value && ViewModel.TipoAudioID3.Value != ViewModel.TipoAudioID1)) { SalaAudioAnimacao salaAudioAnimacao3 = new SalaAudioAnimacao { Sala = sala, TipoAnimacaoID = ViewModel.TipoAnimacaoID3.Value, TipoAudioID = ViewModel.TipoAudioID3.Value }; db.SalaAudioAnimacao.Add(salaAudioAnimacao3); } } } db.SaveChanges(); return(RedirectToAction("Index")); } catch (Exception ex) { var erro = ex.Message; var msg1 = ex.InnerException != null ? ex.InnerException.Message : ""; var msg2 = ex.InnerException != null ? (ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "") : ""; var finalMessage = erro + " " + msg1 + " " + msg2; ViewBag.Mensagem = finalMessage; return(View("~/Views/Shared/Error.cshtml")); } } //--Configura os valores anteriormente selecionados na tela ViewModel.TipoAnimacaoID3selectList.First(x => x.Value == "selectedValue").Selected = true; ViewModel.TipoAudioID3selectList.First(x => x.Value == "selectedValue").Selected = true; ViewModel.TipoAnimacaoID2selectList.First(x => x.Value == "selectedValue").Selected = true; ViewModel.TipoAudioID2selectList.First(x => x.Value == "selectedValue").Selected = true; ViewModel.TipoAnimacaoID1selectList.First(x => x.Value == "selectedValue").Selected = true; ViewModel.TipoAudioID1selectList.First(x => x.Value == "selectedValue").Selected = true; return(View(ViewModel)); }