예제 #1
0
 private Task AddPropSimleNumberBox(FieldAccessDto field, JObject jProperty)
 {
     if (field.TypeControl != TypeControl.NumericEdit)
     {
         return(Task.CompletedTask);
     }
     jProperty.Add("value", new JValue(0));
     return(Task.CompletedTask);
 }
예제 #2
0
        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));
        }
예제 #3
0
        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);
        }
예제 #4
0
        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));
        }
    }
예제 #5
0
        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);
        }
예제 #6
0
        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));
                }
            }
        }
예제 #7
0
 /// <summary>
 /// Добавление или редактирование полей
 /// </summary>
 /// <param name="fieldDto">Модель для сохранения поля</param>
 /// <returns>Результат выполнения</returns>
 public async Task <ResultCrmDb> AddOrEditFieldAsync(FieldAccessDto fieldDto)
 {
     return(await AddOrEditModel(fieldDto, _reportDbContext.Field));
 }
예제 #8
0
 public async Task <IActionResult> SaveFieldByForm([FromBody] FieldAccessDto model)
 {
     return(Tools.CreateResult(true, "", await _reportManager.AddOrEditFieldAsync(model)));
 }