示例#1
0
        public dynamic Update(FormViewModel form)
        {
            if (form == null)
            {
                throw new Exception("Formulário vazio.");
            }

            Form _form = _repositoryForm.Find(wh => wh.FormType == form.FormType);

            _form.Questions = form.Question?.Select(question => new Question().ConvertViewModelToDomain(question))
                              .ToList();

            return(_repositoryForm.Update(wh => wh.Id == _form.Id, _form));
        }
示例#2
0
        public void Edit(Guid id, ServiceFormHolder formHolder)
        {
            var service = serviceRepository.Find(id);
            var formId  = service.FormId;

            service.Name            = formHolder.ServiceForm.Name;
            service.Description     = formHolder.ServiceForm.Description;
            service.Icon            = formHolder.ServiceForm.Icon;
            service.Url             = formHolder.ServiceForm.Url;
            service.Type            = formHolder.ServiceForm.Type;
            service.Method          = formHolder.ServiceForm.Method;
            service.UniqueScriptUrl = formHolder.ServiceForm.UniqueScriptUrl;
            service.SortIndex       = formHolder.ServiceForm.SortIndex;
            service.Code            = formHolder.ServiceForm.Code;

            if (formHolder.HasForm)
            {
                if (formId == null)
                {
                    CreateForm(formHolder.FormModel, service);
                }
                else
                {
                    EditForm(formId, formHolder.FormModel);
                }
            }
            else
            {
                if (formId != null)
                {
                    DeleteFormField(formId ?? Guid.Empty);
                    var form = formRepository.Find(formId);
                    entityRepository.DeleteOnSave(form);
                }
            }

            entityRepository.SaveChanges();
        }
示例#3
0
        public async Task <IActionResult> GetForm([FromRoute] int id)
        {
            if (!ModelState.isValid)
            {
                return(BadRequest(ModelState));
            }
            var form = await _repo.Find(id);

            if (!form)
            {
                return(NotFound(id));
            }
            return(Ok(form));
        }
示例#4
0
        public void Delete(Guid id)
        {
            var service = serviceRepository.Find(id);

            if (service != null)
            {
                if (service.FormId != null)
                {
                    var form = formRepository.Find(service.FormId);
                    DeleteFormField(form.Id);
                    entityRepository.DeleteOnSave(form);
                }
                entityRepository.DeleteOnSave(service);
                entityRepository.SaveChanges();
            }
        }
示例#5
0
        public FormModel Get(Guid id)
        {
            var form = formRepository.Find(id);

            if (form == null)
            {
                return(null);
            }
            var formModel = new FormModel()
            {
                Body = new FormBodyModel()
                {
                    Description = form.Description,
                    FormName    = form.Id.ToString(),
                    Title       = form.Title
                }
            };

            CreateFormField(form.Id, formModel);
            return(formModel);
        }
示例#6
0
        private FormViewModel BuildFormModel(Guid?formId, bool forEdit)
        {
            var form = formRepository.Find(formId);

            if (form == null)
            {
                return(null);
            }
            var formModel = new FormViewModel()
            {
                Body = new FormBodyViewModel()
                {
                    Description = form.Description,
                    Title       = form.Title
                }
            };

            var formFields = formFieldRepository.FindByFormId(form.Id);

            foreach (var formField in formFields)
            {
                var type = formFieldTypeRepository.FindByTypeId(formField.TypeId);
                formModel.Body.FormFields.Add(new FormFieldViewModel()
                {
                    Id    = formField.Id,
                    Title = formField.Title,
                    Type  = forEdit ? type.Name : type.DisplayName,
                    Value = formField.Value
                });

                var validation = formFieldRuleRepository.FindByFormFieldId(formField.Id);
                foreach (var v in validation)
                {
                    var  validationType = validationRuleRepository.Find(v.ValidationRuleId);
                    Guid valueId        = v.ValueId ?? Guid.Empty;
                    var  value          = string.Empty;
                    if (valueId != Guid.Empty)
                    {
                        var valueType = v.ValueType;
                        switch (valueType)
                        {
                        case DataLayer.Entities.ValueType.DateTime:
                            value = validationRuleValueRepository.FindDateTime(valueId).Value.ToShortDateString();
                            break;

                        case DataLayer.Entities.ValueType.Number:
                            value = validationRuleValueRepository.FindDouble(valueId).Value.ToString();
                            break;

                        case DataLayer.Entities.ValueType.String:
                            value = validationRuleValueRepository.FindString(valueId).Value;
                            break;

                        default:
                            throw new ArgumentOutOfRangeException(nameof(valueType), valueType, null);
                        }
                    }
                    formModel.Body.FormFields.Last().Validation.Add(new ValidationViewModel()
                    {
                        Type  = forEdit ? validationType.Name : validationType.DisplayName,
                        Value = value
                    });
                }
                ;

                var options = optionRepository.FindByFormFieldId(formField.Id);
                foreach (var option in options)
                {
                    formModel.Body.FormFields.Last().Options.Add(new OptionViewModel()
                    {
                        Checked = option.Checked,
                        Content = option.Content,
                        Value   = option.Value
                    });
                }
            }

            return(formModel);
        }