public bool Validate(FormField field, FormDataItem data, out string message) { message = string.Empty; if (field.Name == "ValidCode" && data.FieldValue.IsNotNullAndWhiteSpace()) { string code = _validate.GetCode(); if (!code.Equals(data.FieldValue, StringComparison.InvariantCultureIgnoreCase)) { message = _localize.Get("{0}不正确").FormatWith(field.DisplayName); return(false); } } return(true); }
public ServiceResult <FormField> SaveForm(IFormCollection formCollection, string formId) { var form = _formService.Get(formId); var formData = new FormData { FormId = formId, Datas = new List <FormDataItem>() }; Regex regex = new Regex(@"(\w+)\[(\d+)\]"); foreach (var item in formCollection.Keys) { string id = regex.Replace(item, evaluator => { return(evaluator.Groups[1].Value); }); var field = form.FormFields.FirstOrDefault(m => m.ID == id); if (field != null) { string value = formCollection[item]; FormDataItem dataitem = new FormDataItem { FieldId = field.ID, FieldValue = value, FieldText = field.DisplayName }; if (field.FieldOptions != null) { var option = field.FieldOptions.FirstOrDefault(o => o.Value == value); if (option != null) { dataitem.OptionValue = option.Value; dataitem.FieldValue = option.DisplayText; } } foreach (var validator in _formDataValidators) { string message; if (!validator.Validate(field, dataitem, out message)) { var result = new ServiceResult <FormField>(); result.RuleViolations.Add(new RuleViolation(field.DisplayName, message)); return(result); } } formData.Datas.Add(dataitem); } } if (formData.Datas.Any()) { formData.Title = formData.Datas.FirstOrDefault().FieldValue; } Add(formData); return(new ServiceResult <FormField>()); }
public bool Validate(FormField field, FormDataItem data, out string message) { message = string.Empty; if (field.Name == "SingleLine" && data.FieldValue.IsNotNullAndWhiteSpace() && data.FieldValue.Length > 200) { message = _localize.Get("{0} length should be less than {1}").FormatWith(field.DisplayName, 200); return(false); } else if (field.Name == "Paragraph" && data.FieldValue.IsNotNullAndWhiteSpace() && data.FieldValue.Length > 1000) { message = _localize.Get("{0} length should be less than {1}").FormatWith(field.DisplayName, 1000); return(false); } return(true); }
public bool Validate(FormField field, FormDataItem data, out string message) { message = string.Empty; if (field.Name == "SingleLine" && data.FieldValue.IsNotNullAndWhiteSpace() && data.FieldValue.Length > 200) { message = $"{field.DisplayName}的长度应小于200"; return(false); } else if (field.Name == "Paragraph" && data.FieldValue.IsNotNullAndWhiteSpace() && data.FieldValue.Length > 1000) { message = $"{field.DisplayName}的长度应小于1000"; return(false); } return(true); }
public bool Validate(FormField field, FormDataItem data, out string message) { message = string.Empty; if (field.Name == "Phone" && data.FieldValue.IsNotNullAndWhiteSpace()) { if (Regex.IsMatch(data.FieldValue, RegularExpression.ChinesePhone) || Regex.IsMatch(data.FieldValue, RegularExpression.ChineseMobile)) { return(true); } else { message = _localize.Get("Invalid value for {0}.").FormatWith(field.DisplayName); return(false); } } return(true); }
public ServiceResult <FormData> SaveForm(IFormCollection formCollection, string formId) { var result = new ServiceResult <FormData>(); var form = _formService.Get(formId); if (form == null) { result.RuleViolations.Add(new RuleViolation("Form", "Form not found!")); return(result); } var formData = new FormData { FormId = formId, Datas = new List <FormDataItem>(), Form = form }; Regex regex = new Regex(@"(\w+)\[(\d+)\]"); foreach (var item in formCollection.Keys) { string id = regex.Replace(item, evaluator => { return(evaluator.Groups[1].Value); }); var field = form.FormFields.FirstOrDefault(m => m.ID == id); if (field != null) { string value = formCollection[item]; FormDataItem dataitem = new FormDataItem { FieldId = field.ID, FieldValue = value, FieldText = field.DisplayName }; if (field.FieldOptions != null) { var option = field.FieldOptions.FirstOrDefault(o => o.Value == value); if (option != null) { dataitem.OptionValue = option.Value; dataitem.FieldValue = option.DisplayText; } } foreach (var validator in _formDataValidators) { if (!validator.Validate(field, dataitem, out string message)) { result.RuleViolations.Add(new RuleViolation(field.DisplayName, message)); return(result); } } formData.Datas.Add(dataitem); } } if (formData.Datas.Any()) { formData.Title = formData.Datas.FirstOrDefault().FieldValue; } result = Add(formData); if (!result.HasViolation && form.NotificationReceiver.IsNotNullAndWhiteSpace()) { _notificationManager.Send(new RazorEmailNotice { Subject = _localize.Get("New form data"), To = form.NotificationReceiver.Split(new char[] { '\r', '\n', ',', ';' }, StringSplitOptions.RemoveEmptyEntries), Model = Get(formData.ID), TemplatePath = "~/wwwroot/Plugins/ZKEACMS.FormGenerator/EmailTemplates/FormDataNotification.cshtml" }); } return(result); }
public ServiceResult <FormData> SaveForm(IFormCollection formCollection, string formId) { var result = new ServiceResult <FormData>(); var form = _formService.Get(formId); if (form == null) { result.RuleViolations.Add(new RuleViolation("Form", "Form not found!")); return(result); } var formData = new FormData { FormId = formId, Datas = new List <FormDataItem>(), Form = form }; foreach (var item in formCollection.Keys) { string id = _nameRegex.Replace(item, evaluator => { return(evaluator.Groups[1].Value); }); var field = form.FormFields.FirstOrDefault(m => m.ID == id); if (field != null) { string value = formCollection[item]; FormDataItem dataitem = new FormDataItem { FieldId = field.ID, FieldValue = value, FieldText = field.DisplayName }; if (field.FieldOptions != null) { var option = field.FieldOptions.FirstOrDefault(o => o.Value == value); if (option != null) { dataitem.OptionValue = option.Value; dataitem.FieldValue = option.DisplayText; } } foreach (var validator in _formDataValidators) { if (!validator.Validate(field, dataitem, out string message)) { result.RuleViolations.Add(new RuleViolation(item, message)); } } formData.Datas.Add(dataitem); } } MergeDataToForm(formData); result.Result = formData; if (result.HasViolation) { return(result); } if (formData.Datas.Any()) { formData.Title = formData.Datas.FirstOrDefault().FieldValue; } result = Add(formData); if (!result.HasViolation) { FormData data = Get(formData.ID); _eventManager.Trigger(Events.OnFormDataSubmitted, data); } return(result); }
internal void AddData(string key, object data) { var item = new FormDataItem(key, data); formData.AddLast(item); }