public ICommandResult Handler(FormularioCommand command) { var formulario = new Formulario(); command.Validate(); if (command.Invalid) { AddNotifications(command); return(new CommandResult(false, "Não foi possível criar o Formulario")); } foreach (var item in command.Campos) { if (item.TipoCampo == TipoCampo.Combo) { var combo = new Combo(item.Nome, item.TipoCampo, item.Valor, item.Descricao, item.Obrigatorio); foreach (var valor in item.Items) { combo.AddItem(new Item(valor)); } formulario.AddItem(combo); AddNotifications(combo); } else { var campo = new Campo(item.Nome, item.TipoCampo, item.Valor, item.Descricao, item.Obrigatorio); formulario.AddItem(campo); AddNotifications(campo); } } if (formulario.Invalid) { return(new CommandResult(false, "Não foi possível criar o formulario")); } _repository.CreateFormulario(formulario); return(new CommandResult(true, "Formulário criado com sucesso")); }