Beispiel #1
0
        public static async Task <bool> SetRandomValueAsync(this ITableRow tableRow, Authentication authentication, string columnName)
        {
            var value = await GetRandomValueAsync(tableRow, columnName);

            if (value == null)
            {
                return(false);
            }

            var domain    = tableRow.Content.Domain;
            var table     = tableRow.Content.Table;
            var dataSet   = domain.Source as CremaDataSet;
            var dataTable = dataSet.Tables[table.Name, table.Category.Path];

            if (dataTable.Columns[columnName].Unique == true)
            {
                var expression = CremaDataExtensions.GenerateFieldExpression(columnName, value);
                var items      = dataTable.Select(expression);
                if (items.Any() == true)
                {
                    return(false);
                }
            }

            await tableRow.SetFieldAsync(authentication, columnName, value);

            return(true);
        }
 public static Task <string> GenerateFilterExpressionAsync(this ITableRow tableRow, params string[] columnNames)
 {
     return(tableRow.Dispatcher.InvokeAsync(() =>
     {
         var fieldList = new List <object>(columnNames.Length);
         foreach (var item in columnNames)
         {
             var field = tableRow[item];
             fieldList.Add(CremaDataExtensions.GenerateFieldExpression(item, field));
         }
         return string.Join(" and ", fieldList);
     }));
 }