Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public void Update(CustomFormAnswer entity)
 {
     Context.Entry(entity).State = EntityState.Modified;
 }
Beispiel #4
0
 public void Save(CustomFormAnswer entity)
 {
     Context.CustomFormAnswers.Add(entity);
 }