public ICommandResult Handle(SendCustomFormRequest command) { if (!command.IsValid()) { return(new CommandResult(false, "Request inválida", command)); } var customFormAnswer = new CustomFormAnswer(command.CustomFormId, _tenant.Id); AddNotifications(customFormAnswer); foreach (var fieldCommand in command.Fields) { var customField = _customFieldRepository.Get(fieldCommand.CustomFieldId); if (customField.Mandatory) { if (!customField.HasOptions()) { if (string.IsNullOrEmpty(fieldCommand.Answer)) { AddNotification("Answer", $"O Campo {customField.Name} é obrigatório"); } } else { if (fieldCommand.CustomFieldOptionId == null) { AddNotification("CustomFieldOptionId", $"O Campo {customField.Name} deve ser selecionado."); } } } var customFieldAnswer = new CustomFieldAnswer(fieldCommand.CustomFieldId, fieldCommand?.Answer, customFormAnswer.Id, fieldCommand?.CustomFieldOptionId, _tenant.Id); AddNotifications(customFieldAnswer.Notifications); customFormAnswer.AddField(customFieldAnswer); } if (Valid) { _customFormAnswerRepository.Save(customFormAnswer); } if (Valid) { return(new CommandResult(true, "Resposta do formulário cadastrada com sucesso", new { Id = customFormAnswer.Id })); } else { return(new CommandResult(false, "Erro ao cadastrar resposta do formulário", Notifications)); } }
public void Deve_Criar_Uma_Resposta_De_Formulario() { Deve_Criar_Campos_Do_Formulario_Com_Opcoes(); var customFormAnswer = new CustomFormAnswer(_customForm.Id, _tenant.Id); foreach (var customFormField in _customForm.Fields) { var option = customFormField.Options.FirstOrDefault(); var answer = customFormField.HasOptions() ? option?.Id.ToString() : "Resposta Pergunta"; var customFieldAnswer = new CustomFieldAnswer(customFormField.Id, answer, customFormAnswer.Id, option?.Id, _tenant.Id); customFormAnswer.AddField(customFieldAnswer); Assert.IsTrue(customFieldAnswer.Valid); Assert.AreEqual(_tenant.Id, customFieldAnswer.TenantId); Assert.AreEqual(customFieldAnswer.EntityStatus, EntityStatus.Activated); } Assert.IsTrue(customFormAnswer.Valid); Assert.AreEqual(_tenant.Id, customFormAnswer.TenantId); Assert.AreEqual(customFormAnswer.EntityStatus, EntityStatus.Activated); }
public void Update(CustomFormAnswer entity) { Context.Entry(entity).State = EntityState.Modified; }
public void Save(CustomFormAnswer entity) { Context.CustomFormAnswers.Add(entity); }