public static string Parse(FieldInfo fieldInfo, FieldSettings settings) { string retval; var fieldType = FieldTypeUtils.GetEnumType(fieldInfo.FieldType); var attributeName = FieldManager.GetAttributeId(fieldInfo.Id); var attributes = GetGeneralAttributes(fieldType, attributeName, settings); switch (fieldType) { case FieldType.Text: retval = ParseText(attributeName, attributes, fieldInfo, settings); break; case FieldType.TextArea: retval = ParseTextArea(attributeName, attributes, fieldInfo, settings); break; case FieldType.CheckBox: retval = ParseCheckBox(attributeName, attributes, fieldInfo); break; case FieldType.Radio: retval = ParseRadio(attributeName, attributes, fieldInfo); break; case FieldType.SelectOne: retval = ParseSelectOne(attributes, fieldInfo); break; case FieldType.SelectMultiple: retval = ParseSelectMultiple(attributes, fieldInfo); break; default: throw new ArgumentOutOfRangeException(); } return(retval); }
public static string Parse(FieldInfo fieldInfo, FieldSettings settings) { string retval; var fieldType = fieldInfo.FieldType; var attributeName = FieldManager.GetAttributeId(fieldInfo.Id); var attributes = GetGeneralAttributes(fieldType, attributeName, settings); if (fieldType == InputType.Text.Value) { retval = ParseText(attributeName, attributes, fieldInfo, settings); } else if (fieldType == InputType.TextArea.Value) { retval = ParseTextArea(attributeName, attributes, fieldInfo, settings); } else if (fieldType == InputType.CheckBox.Value) { retval = ParseCheckBox(attributeName, attributes, fieldInfo); } else if (fieldType == InputType.Radio.Value) { retval = ParseRadio(attributeName, attributes, fieldInfo); } else if (fieldType == InputType.SelectOne.Value) { retval = ParseSelectOne(attributes, fieldInfo); } else if (fieldType == InputType.SelectMultiple.Value) { retval = ParseSelectMultiple(attributes, fieldInfo); } else { throw new ArgumentOutOfRangeException(); } return retval; }
public static object Submit(IRequest request, string id) { var formId = Convert.ToInt32(id); var formInfo = Main.Instance.FormDao.GetFormInfo(formId); if (formInfo == null) { return(null); } var settings = new FormSettings(formInfo.Settings); var code = request.GetPostString("code"); var cookie = request.GetCookie("ss-form:" + id); if (string.IsNullOrEmpty(cookie) || !Utils.EqualsIgnoreCase(cookie, code)) { throw new Exception("提交失败,验证码不正确!"); } var logInfo = new LogInfo { FormId = formId, AddDate = DateTime.Now }; var attributes = request.GetPostObject <Dictionary <string, object> >("attributes"); var fieldInfoList = Main.Instance.FieldDao.GetFieldInfoList(formInfo.Id, true); foreach (var fieldInfo in fieldInfoList) { object value; attributes.TryGetValue(FieldManager.GetAttributeId(fieldInfo.Id), out value); if (value != null && value.ToString() != "[]") { logInfo.Set(fieldInfo.Title, value.ToString()); if (FieldManager.IsExtra(fieldInfo)) { foreach (var item in fieldInfo.Items) { var extrasId = FieldManager.GetExtrasId(fieldInfo.Id, item.Id); object extras; attributes.TryGetValue(extrasId, out extras); if (!string.IsNullOrEmpty(extras?.ToString())) { logInfo.Set(extrasId, extras.ToString()); } } } } } logInfo.Id = Main.Instance.LogDao.Insert(logInfo); if (settings.IsAdministratorSmsNotify && !string.IsNullOrEmpty(settings.AdministratorSmsNotifyTplId) && !string.IsNullOrEmpty(settings.AdministratorSmsNotifyKeys) && !string.IsNullOrEmpty(settings.AdministratorSmsNotifyMobile)) { var smsPlugin = Main.Instance.PluginApi.GetPlugin <SmsPlugin>(SmsPlugin.PluginId); if (smsPlugin != null && smsPlugin.IsReady) { string errorMessage; var parameters = new Dictionary <string, string>(); var keys = settings.AdministratorSmsNotifyKeys.Split(','); foreach (var key in keys) { if (key == nameof(LogInfo.Id)) { parameters.Add(key, logInfo.Id.ToString()); } else if (key == nameof(LogInfo.AddDate)) { parameters.Add(key, logInfo.AddDate.ToString("yyyy-MM-dd HH:mm")); } else { parameters.Add(key, logInfo.GetString(key)); } } smsPlugin.Send(settings.AdministratorSmsNotifyMobile, settings.AdministratorSmsNotifyTplId, parameters, out errorMessage); } } return(new { }); }