private void gravarFormularioFilhoDto(FormularioDTO novoFormularioDTO) { Formulario formulario = new Formulario(novoFormularioDTO.Nome, novoFormularioDTO.Id); this._context.Formulario.Add(formulario); this._context.SaveChanges(); this.formularioId = formulario.Id; EmpresaFormulario empresaFormulario = new EmpresaFormulario(novoFormularioDTO.EmpresaId, formulario.Id); this._context.EmpresaFormularios.Add(empresaFormulario); this._context.SaveChanges(); foreach (CamposDTO item in novoFormularioDTO.CamposDTO) { Campos campo = new Campos(item.Value, item.Key, item.Label, item.Required, item.Order, item.ControlType, item.Type, item.Mask, item.Placeholder); this._context.Campos.Add(campo); this._context.SaveChanges(); FormularioCampos formularioCampos = new FormularioCampos(); formularioCampos.FormularioId = formulario.Id; formularioCampos.CamposId = campo.Id; this._context.FormularioCampos.Add(formularioCampos); this._context.SaveChanges(); foreach (Opcoes opcao in item.Options) { Opcoes opcoes = new Opcoes(opcao.Key, opcao.Value); this._context.Opcoes.Add(opcoes); this._context.SaveChanges(); CamposOpcoes camposOpcoes = new CamposOpcoes(campo.Id, opcoes.Id); this._context.CamposOpcoes.Add(camposOpcoes); this._context.SaveChanges(); } } }
private void editarFormularioBaseDto(FormularioDTO formularioDTO) { var formulario = _context.Formulario.Where(x => x.Id == formularioDTO.Id).FirstOrDefault(); formulario.Nome = formularioDTO.Nome; this._context.Formulario.Update(formulario); this._context.SaveChanges(); // REMOVER CAMPOS // 1º - REMOVER NA TABELA CamposOpcoes var camposOpcoes_rm = (from co in _context.CamposOpcoes join c in _context.Campos on co.CamposId equals c.Id join fc in _context.FormularioCampos on c.Id equals fc.CamposId where fc.FormularioId == formulario.Id select co).ToList(); // 2º - REMOVER NA TABELA CamposOpcoes var opcoes_rm = (from o in _context.Opcoes join co in _context.CamposOpcoes on o.Id equals co.OpcoesId join c in _context.Campos on co.CamposId equals c.Id join fc in _context.FormularioCampos on c.Id equals fc.CamposId where fc.FormularioId == formulario.Id select o).ToList(); _context.CamposOpcoes.RemoveRange(camposOpcoes_rm); _context.SaveChanges(); _context.Opcoes.RemoveRange(opcoes_rm); _context.SaveChanges(); // 3º - REMOVER NA TABELA Campos var campos = (from c in _context.Campos join fc in _context.FormularioCampos on c.Id equals fc.CamposId where fc.FormularioId == formulario.Id select c).ToList(); _context.Campos.RemoveRange(campos); _context.SaveChanges(); // 4º - REMOVER NA TABELA FormularioCampos var formulariosCampos = _context.FormularioCampos.Where(x => x.FormularioId == formulario.Id).ToList(); _context.FormularioCampos.RemoveRange(formulariosCampos); _context.SaveChanges(); // 5º - ADICIONAR NA TABELA Opcoes foreach (CamposDTO item in formularioDTO.CamposDTO) { Campos campo = new Campos(item.Value, item.Key, item.Label, item.Required, item.Order, item.ControlType, item.Type, item.Mask, item.Placeholder); this._context.Campos.Add(campo); this._context.SaveChanges(); var formularioCampos = new FormularioCampos(); formularioCampos.FormularioId = formulario.Id; formularioCampos.CamposId = campo.Id; this._context.FormularioCampos.Add(formularioCampos); this._context.SaveChanges(); foreach (Opcoes opcao in item.Options) { Opcoes opcoes = new Opcoes(opcao.Key, opcao.Value); this._context.Opcoes.Add(opcoes); this._context.SaveChanges(); // 5º - ADICIONAR NA TABELA CamposOpcoes CamposOpcoes camposOpcoes = new CamposOpcoes(campo.Id, opcoes.Id); this._context.CamposOpcoes.Add(camposOpcoes); this._context.SaveChanges(); } } }