コード例 #1
0
        public async Task <IActionResult> Create([FromBody] SettingFieldCommand command)
        {
            var spec      = SettingFieldSpecs.GetByNameSpec(command.Name);
            var isInvalid = await _settingFieldRepository.ExistsAsync(spec);

            if (isInvalid)
            {
                throw new CellException("Setting field name must be unique");
            }

            var settingField = command.To <SettingField>();

            _settingFieldRepository.Add(new SettingField(
                                            settingField.Name,
                                            settingField.Description,
                                            settingField.Code,
                                            settingField.AllowFilter,
                                            settingField.AllowSummary,
                                            settingField.Caption,
                                            settingField.DataType,
                                            settingField.OrdinalPosition,
                                            settingField.PlaceHolder,
                                            JsonConvert.SerializeObject(command.Settings),
                                            settingField.StorageType,
                                            settingField.TableId,
                                            settingField.TableName));
            await _settingFieldRepository.CommitAsync();

            return(Ok());
        }
コード例 #2
0
        public async Task <IActionResult> Search(SearchSettingFieldCommand command)
        {
            var spec      = SettingFieldSpecs.SearchByQuery(command.Query).And(SettingFieldSpecs.SearchByTableId(command.TableId));
            var queryable = _settingFieldRepository.QueryAsync(spec, command.Sorts);
            var items     = await queryable.OrderBy(x => x.OrdinalPosition).ThenBy(x => x.Caption).ThenBy(x => x.Name)
                            .Skip(command.Skip).Take(command.Take).ToListAsync();

            return(Ok(new QueryResult <SettingFieldCommand>
            {
                Count = queryable.Count(),
                Items = items.To <List <SettingFieldCommand> >()
            }));
        }