private Task AddPropSimleNumberBox(FieldAccessDto field, JObject jProperty) { if (field.TypeControl != TypeControl.NumericEdit) { return(Task.CompletedTask); } jProperty.Add("value", new JValue(0)); return(Task.CompletedTask); }
private Task <string> GetDataTypeProperty(FieldAccessDto field) { var result = field.TypeControl switch { TypeControl.TextEdit => "dxTextBox", TypeControl.CheckBox => "dxCheckBox", TypeControl.ComboBox => "dxSelectBox", TypeControl.DateEdit => "dxDateBox", TypeControl.MultiLine => "dxTextArea", TypeControl.NumericEdit => "dxNumberBox", _ => "dxTextBox" }; return(Task.FromResult(result)); }
private async Task <JObject> CreateSimpleItem(FieldAccessDto field) { var jProperty = new JObject(); jProperty.Add("editorType", new JValue(await GetDataTypeProperty(field))); jProperty.Add("isRequired", new JValue(field.TypeProfileForm == TypeProfileForm.Required)); jProperty.Add("dataField", new JValue(ColumnHelper.GetFieldName(field.Name))); var jLabel = new JObject(); jLabel.Add("text", new JValue(field.DisplayName)); jProperty.Add("label", jLabel); var joptions = new JObject(); joptions.Add("readOnly", new JValue(field.IsKey)); joptions.Add("onValueChanged", new JValue("")); await AddPropSimleComboBox(field, joptions); await AddPropSimleNumberBox(field, jProperty); if (field.TypeControl == TypeControl.DateEdit) { joptions.Add("useMaskBehavior", new JValue(true)); } if (field.MaxLength != 0) { joptions.Add("maxLength", new JValue(field.MaxLength)); } string nameMask = field.TypeControl != TypeControl.NumericEdit ? "mask" : "format"; if (!string.IsNullOrWhiteSpace(field.Mask)) { if (field.Mask.StartsWith("{")) { joptions.Add(nameMask, JObject.Parse(field.Mask)); } else { joptions.Add(nameMask, new JValue(field.Mask)); } } jProperty.Add("editorOptions", joptions); return(jProperty); }
private Task <string> GetDataTypeColumn(FieldAccessDto field) { if (field.Name.Contains("{") && field.TypeControl == TypeControl.ComboBox) { return(Task.FromResult("string")); } var result = field.TypeControl switch { TypeControl.TextEdit => "string", TypeControl.CheckBox => "boolean", TypeControl.DateEdit => "datetime", TypeControl.MultiLine => "string", TypeControl.NumericEdit => "number", _ => "object" }; return(Task.FromResult(result)); } }
private async Task <JObject> CreateGroupItem(FieldAccessDto field, List <FieldAccessDto> fields) { var jGroupBase = new JObject(); jGroupBase.Add("itemType", field.TypeGroup == TypeGroup.Group ? "group" : "tabbed"); jGroupBase.Add("caption", field.DisplayName); jGroupBase.Add("colCount", new JValue(field.GroupCol)); var jItems = new JArray(); foreach (var item in fields.Where(f => (f.ParentId ?? 0) == field.Id)) { JObject jObject; switch (item.TypeGroup) { case TypeGroup.None: jObject = await CreateSimpleItem(item); break; case TypeGroup.Group: jObject = await CreateGroupItem(item, fields); break; case TypeGroup.Tab: jObject = await CreateGroupItem(item, fields); break; default: jObject = null; break; } if (jObject == null) { continue; } jItems.Add(jObject); } jGroupBase.Add("items", jItems); return(jGroupBase); }
private async Task AddPropSimleComboBox(FieldAccessDto field, JObject joptions) { if (field.TypeControl == TypeControl.ComboBox && !string.IsNullOrWhiteSpace(field.ValueListBox)) { joptions.Add("displayExpr", new JValue("value")); joptions.Add("valueExpr", new JValue("id")); if (field.ValueListBox.ToLower().StartsWith("select")) { using var connection = _connectorManager.GetConnection(); var data = await connection.QueryAsync <ListBoxValueModel>(field.ValueListBox); joptions.Add("dataSource", JArray.FromObject(data)); } else { joptions.Add("dataSource", JArray.Parse(field.ValueListBox)); } } }
/// <summary> /// Добавление или редактирование полей /// </summary> /// <param name="fieldDto">Модель для сохранения поля</param> /// <returns>Результат выполнения</returns> public async Task <ResultCrmDb> AddOrEditFieldAsync(FieldAccessDto fieldDto) { return(await AddOrEditModel(fieldDto, _reportDbContext.Field)); }
public async Task <IActionResult> SaveFieldByForm([FromBody] FieldAccessDto model) { return(Tools.CreateResult(true, "", await _reportManager.AddOrEditFieldAsync(model))); }