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()); }
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> >() })); }