Free cookie consent management tool by TermsFeed Policy Generator

Changeset 5286 for branches


Ignore:
Timestamp:
01/12/11 04:10:13 (14 years ago)
Author:
swagner
Message:

Worked on OKB (#1174)

Location:
branches/OKB
Files:
30 added
2 deleted
52 edited
2 moved

Legend:

Unmodified
Added
Removed
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/HeuristicLab.Clients.OKB-3.3.csproj

    r5269 r5286  
    109109    <Compile Include="ServiceClients\AlgorithmData.cs" />
    110110    <Compile Include="ServiceClients\AlgorithmParameter.cs" />
     111    <Compile Include="ServiceClients\AndFilter.cs" />
     112    <Compile Include="ServiceClients\SetComparisonStringAvailableValuesFilter.cs" />
     113    <Compile Include="ServiceClients\NameSetComparisonStringAvailableValuesFilter.cs" />
     114    <Compile Include="ServiceClients\OrFilter.cs" />
     115    <Compile Include="ServiceClients\OrdinalComparisonDateTimeFilter.cs" />
     116    <Compile Include="ServiceClients\OrdinalComparisonLongFilter.cs" />
     117    <Compile Include="ServiceClients\OrdinalComparisonIntFilter.cs" />
     118    <Compile Include="ServiceClients\SetComparisonStringFilter.cs" />
     119    <Compile Include="ServiceClients\NameSetComparisonStringFilter.cs" />
     120    <Compile Include="ServiceClients\NameOrdinalComparisonLongFilter.cs" />
     121    <Compile Include="ServiceClients\NameOrdinalComparisonDoubleFilter.cs" />
     122    <Compile Include="ServiceClients\NameEqualityComparisonByteArrayFilter.cs" />
     123    <Compile Include="ServiceClients\NameEqualityComparisonBoolFilter.cs" />
    111124    <Compile Include="ServiceClients\Filter.cs" />
    112125    <Compile Include="ServiceClients\Run.cs" />
     
    172185      <DependentUpon>AlgorithmParameterView.cs</DependentUpon>
    173186    </Compile>
     187    <Compile Include="Views\AndFilterView.cs">
     188      <SubType>UserControl</SubType>
     189    </Compile>
     190    <Compile Include="Views\AndFilterView.Designer.cs">
     191      <DependentUpon>AndFilterView.cs</DependentUpon>
     192    </Compile>
     193    <Compile Include="Views\SetComparisonStringAvailableValuesFilterView.cs">
     194      <SubType>UserControl</SubType>
     195    </Compile>
     196    <Compile Include="Views\SetComparisonStringAvailableValuesFilterView.Designer.cs">
     197      <DependentUpon>SetComparisonStringAvailableValuesFilterView.cs</DependentUpon>
     198    </Compile>
     199    <Compile Include="Views\NameSetComparisonStringAvailableValuesFilterView.cs">
     200      <SubType>UserControl</SubType>
     201    </Compile>
     202    <Compile Include="Views\NameSetComparisonStringAvailableValuesFilterView.Designer.cs">
     203      <DependentUpon>NameSetComparisonStringAvailableValuesFilterView.cs</DependentUpon>
     204    </Compile>
     205    <Compile Include="Views\OrFilterView.cs">
     206      <SubType>UserControl</SubType>
     207    </Compile>
     208    <Compile Include="Views\OrFilterView.Designer.cs">
     209      <DependentUpon>OrFilterView.cs</DependentUpon>
     210    </Compile>
     211    <Compile Include="Views\CombinedFilterView.cs">
     212      <SubType>UserControl</SubType>
     213    </Compile>
     214    <Compile Include="Views\CombinedFilterView.Designer.cs">
     215      <DependentUpon>CombinedFilterView.cs</DependentUpon>
     216    </Compile>
    174217    <Compile Include="Views\NameSetComparisonStringFilterView.cs">
    175218      <SubType>UserControl</SubType>
     
    195238    <Compile Include="Views\NameEqualityComparisonBoolFilterView.Designer.cs">
    196239      <DependentUpon>NameEqualityComparisonBoolFilterView.cs</DependentUpon>
    197     </Compile>
    198     <Compile Include="Views\FiltersView.cs">
    199       <SubType>UserControl</SubType>
    200     </Compile>
    201     <Compile Include="Views\FiltersView.Designer.cs">
    202       <DependentUpon>FiltersView.cs</DependentUpon>
    203240    </Compile>
    204241    <Compile Include="Views\SetComparisonStringFilterView.cs">
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBClient.cs

    r5269 r5286  
    103103      var call = new Func<Exception>(delegate() {
    104104        try {
    105           platforms.AddRange(CallAdminService<Platform[]>(s => s.GetPlatforms()).OrderBy(x => x.Name));
    106           dataTypes.AddRange(CallAdminService<DataType[]>(s => s.GetDataTypes()).OrderBy(x => x.Name));
    107           users = CallAuthenticationService<User[]>(s => s.GetUsers()).OrderBy(x => x.Name);
    108           algorithmClasses.AddRange(CallAdminService<AlgorithmClass[]>(s => s.GetAlgorithmClasses()).OrderBy(x => x.Name));
    109           algorithms.AddRange(CallAdminService<Algorithm[]>(s => s.GetAlgorithms()).OrderBy(x => x.Name));
    110           problemClasses.AddRange(CallAdminService<ProblemClass[]>(s => s.GetProblemClasses()).OrderBy(x => x.Name));
    111           problems.AddRange(CallAdminService<Problem[]>(s => s.GetProblems()).OrderBy(x => x.Name));
     105          platforms.AddRange(CallAdminService<List<Platform>>(s => s.GetPlatforms()).OrderBy(x => x.Name));
     106          dataTypes.AddRange(CallAdminService<List<DataType>>(s => s.GetDataTypes()).OrderBy(x => x.Name));
     107          users = CallAuthenticationService<List<User>>(s => s.GetUsers()).OrderBy(x => x.Name);
     108          algorithmClasses.AddRange(CallAdminService<List<AlgorithmClass>>(s => s.GetAlgorithmClasses()).OrderBy(x => x.Name));
     109          algorithms.AddRange(CallAdminService<List<Algorithm>>(s => s.GetAlgorithms()).OrderBy(x => x.Name));
     110          problemClasses.AddRange(CallAdminService<List<ProblemClass>>(s => s.GetProblemClasses()).OrderBy(x => x.Name));
     111          problems.AddRange(CallAdminService<List<Problem>>(s => s.GetProblems()).OrderBy(x => x.Name));
    112112          return null;
    113113        }
     
    210210
    211211    #region Algorithm Methods
    212     public Guid[] GetAlgorithmUsers(long algorithmId) {
    213       try {
    214         return CallAdminService<Guid[]>(s => s.GetAlgorithmUsers(algorithmId));
     212    public List<Guid> GetAlgorithmUsers(long algorithmId) {
     213      try {
     214        return CallAdminService<List<Guid>>(s => s.GetAlgorithmUsers(algorithmId));
    215215      }
    216216      catch (Exception ex) {
     
    219219      }
    220220    }
    221     public bool UpdateAlgorithmUsers(long algorithmId, Guid[] users) {
     221    public bool UpdateAlgorithmUsers(long algorithmId, List<Guid> users) {
    222222      try {
    223223        CallAdminService(s => s.UpdateAlgorithmUsers(algorithmId, users));
     
    251251
    252252    #region Problem Methods
    253     public Guid[] GetProblemUsers(long problemId) {
    254       try {
    255         return CallAdminService<Guid[]>(s => s.GetProblemUsers(problemId));
     253    public List<Guid> GetProblemUsers(long problemId) {
     254      try {
     255        return CallAdminService<List<Guid>>(s => s.GetProblemUsers(problemId));
    256256      }
    257257      catch (Exception ex) {
     
    260260      }
    261261    }
    262     public bool UpdateProblemUsers(long problemId, Guid[] users) {
     262    public bool UpdateProblemUsers(long problemId, List<Guid> users) {
    263263      try {
    264264        CallAdminService(s => s.UpdateProblemUsers(problemId, users));
     
    304304      try {
    305305        ItemCollection<AlgorithmParameter> parameters = new ItemCollection<AlgorithmParameter>();
    306         parameters.AddRange(CallAdminService<AlgorithmParameter[]>(s => s.GetAlgorithmParameters(algorithmId)).OrderBy(x => x.Name));
     306        parameters.AddRange(CallAdminService<List<AlgorithmParameter>>(s => s.GetAlgorithmParameters(algorithmId)).OrderBy(x => x.Name));
    307307        return parameters;
    308308      }
     
    327327      try {
    328328        ItemCollection<ProblemParameter> parameters = new ItemCollection<ProblemParameter>();
    329         parameters.AddRange(CallAdminService<ProblemParameter[]>(s => s.GetProblemParameters(problemId)).OrderBy(x => x.Name));
     329        parameters.AddRange(CallAdminService<List<ProblemParameter>>(s => s.GetProblemParameters(problemId)).OrderBy(x => x.Name));
    330330        return parameters;
    331331      }
     
    350350      try {
    351351        ItemCollection<Result> results = new ItemCollection<Result>();
    352         results.AddRange(CallAdminService<Result[]>(s => s.GetResults(algorithmId)).OrderBy(x => x.Name));
     352        results.AddRange(CallAdminService<List<Result>>(s => s.GetResults(algorithmId)).OrderBy(x => x.Name));
    353353        return results;
    354354      }
     
    373373      try {
    374374        ItemCollection<Experiment> experiments = new ItemCollection<Experiment>();
    375         experiments.AddRange(CallAdminService<Experiment[]>(s => s.GetExperiments(algorithmId, problemId)));
     375        experiments.AddRange(CallAdminService<List<Experiment>>(s => s.GetExperiments(algorithmId, problemId)));
    376376        experiments.ItemsRemoved += new CollectionItemsChangedEventHandler<Experiment>(experiments_ItemsRemoved);
    377377        return experiments;
     
    388388      try {
    389389        ItemCollection<Run> runs = new ItemCollection<Run>();
    390         runs.AddRange(CallAdminService<Run[]>(s => s.GetRuns(experimentId)).OrderByDescending(x => x.FinishedDate));
     390        runs.AddRange(CallAdminService<List<Run>>(s => s.GetRuns(experimentId)).OrderByDescending(x => x.FinishedDate));
    391391        runs.ItemsRemoved += new CollectionItemsChangedEventHandler<Run>(runs_ItemsRemoved);
    392392        return runs;
     
    411411        exp.AlgorithmId = algorithmId;
    412412        exp.ProblemId = problemId;
    413         exp.AlgorithmParameterValues = algorithmParameterValues.ToArray();
    414         exp.ProblemParameterValues = problemParameterValues.ToArray();
     413        exp.AlgorithmParameterValues = algorithmParameterValues;
     414        exp.ProblemParameterValues = problemParameterValues;
    415415        exp.Store();
    416416
     
    420420        r.FinishedDate = DateTime.Now;
    421421        r.RandomSeed = ((IntValue)((IValueParameter)algorithm.Parameters["Seed"]).Value).Value;
    422         r.ResultValues = resultValues.ToArray();
     422        r.ResultValues = resultValues;
    423423        r.Store();
    424424
     
    689689    public IEnumerable<Filter> GetFilters() {
    690690      try {
    691         return CallAdminService<Filter[]>(s => s.GetFilters());
     691        return CallAdminService<List<Filter>>(s => s.GetFilters());
    692692      }
    693693      catch (Exception ex) {
     
    697697
    698698    }
    699     public ItemCollection<Run> QueryRuns(IEnumerable<Filter> filters) {
     699    public ItemCollection<Run> QueryRuns(Filter filter) {
    700700      try {
    701701        ItemCollection<Run> runs = new ItemCollection<Run>();
    702         runs.AddRange(CallAdminService<Run[]>(s => s.QueryRuns(filters.ToArray())).OrderByDescending(x => x.FinishedDate));
     702        runs.AddRange(CallAdminService<List<Run>>(s => s.QueryRuns(filter)).OrderByDescending(x => x.FinishedDate));
    703703        return runs;
    704704      }
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/QueryMenuItem.cs

    r5073 r5286  
    3737    public override void Execute() {
    3838      QueryView view = new QueryView();
    39       view.Content = OKBClient.Instance;
    4039      view.Show();
    4140    }
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/AuthenticationServiceClient.cs

    r4466 r5286  
    9393       
    9494        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAuthenticationService/GetUsers", ReplyAction="http://tempuri.org/IAuthenticationService/GetUsersResponse")]
    95         HeuristicLab.Clients.OKB.User[] GetUsers();
     95        System.Collections.Generic.List<HeuristicLab.Clients.OKB.User> GetUsers();
    9696    }
    9797   
     
    135135        }
    136136       
    137         public HeuristicLab.Clients.OKB.User[] GetUsers()
     137        public System.Collections.Generic.List<HeuristicLab.Clients.OKB.User> GetUsers()
    138138        {
    139139            return base.Channel.GetUsers();
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/Filter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using HeuristicLab.Common;
    2324
    2425namespace HeuristicLab.Clients.OKB {
    25   public partial class Filter : IContent { }
     26  public partial class Filter : IContent {
     27    public virtual Filter Clone() {
     28      throw new NotImplementedException("Clone not implemented in Filter. Override in derived classes.");
     29    }
     30  }
    2631}
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/GenerateServiceClients.cmd

    r4548 r5286  
    1010  /out:OKBServiceClient ^
    1111  /namespace:*,HeuristicLab.Clients.OKB ^
     12  /collectionType:System.Collections.Generic.List`1 ^
    1213  /targetClientVersion:Version35 ^
    1314  /enableDataBinding ^
     
    3637  /out:AuthenticationServiceClient ^
    3738  /namespace:*,HeuristicLab.Clients.OKB ^
     39  /collectionType:System.Collections.Generic.List`1 ^
    3840  /targetClientVersion:Version35 ^
    3941  /enableDataBinding ^
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/ServiceClients/OKBServiceClient.cs

    r5269 r5286  
    6565    private long AlgorithmIdField;
    6666
    67     private HeuristicLab.Clients.OKB.AlgorithmParameterValue[] AlgorithmParameterValuesField;
     67    private System.Collections.Generic.List<HeuristicLab.Clients.OKB.AlgorithmParameterValue> AlgorithmParameterValuesField;
    6868
    6969    private long ProblemIdField;
    7070
    71     private HeuristicLab.Clients.OKB.ProblemParameterValue[] ProblemParameterValuesField;
     71    private System.Collections.Generic.List<HeuristicLab.Clients.OKB.ProblemParameterValue> ProblemParameterValuesField;
    7272
    7373    [System.Runtime.Serialization.DataMemberAttribute()]
     
    8585
    8686    [System.Runtime.Serialization.DataMemberAttribute()]
    87     public HeuristicLab.Clients.OKB.AlgorithmParameterValue[] AlgorithmParameterValues {
     87    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.AlgorithmParameterValue> AlgorithmParameterValues {
    8888      get {
    8989        return this.AlgorithmParameterValuesField;
     
    111111
    112112    [System.Runtime.Serialization.DataMemberAttribute()]
    113     public HeuristicLab.Clients.OKB.ProblemParameterValue[] ProblemParameterValues {
     113    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.ProblemParameterValue> ProblemParameterValues {
    114114      get {
    115115        return this.ProblemParameterValuesField;
     
    137137    private int RandomSeedField;
    138138
    139     private HeuristicLab.Clients.OKB.ResultValue[] ResultValuesField;
     139    private System.Collections.Generic.List<HeuristicLab.Clients.OKB.ResultValue> ResultValuesField;
    140140
    141141    private System.Guid UserIdField;
     
    194194
    195195    [System.Runtime.Serialization.DataMemberAttribute()]
    196     public HeuristicLab.Clients.OKB.ResultValue[] ResultValues {
     196    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.ResultValue> ResultValues {
    197197      get {
    198198        return this.ResultValuesField;
     
    561561  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    562562  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    563   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterIntValue))]
     563  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterStringValue))]
    564564  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue))]
    565565  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue))]
    566   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterStringValue))]
    567566  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue))]
     567  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterIntValue))]
    568568  public partial class AlgorithmParameterValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
    569569
     
    637637  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    638638  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     639  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterFloatValue))]
     640  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterStringValue))]
    639641  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterIntValue))]
    640   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterFloatValue))]
     642  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterBlobValue))]
    641643  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterBoolValue))]
    642   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterStringValue))]
    643   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterBlobValue))]
    644644  public partial class ProblemParameterValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
    645645
     
    712712  [System.Diagnostics.DebuggerStepThroughAttribute()]
    713713  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     714  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     715  public partial class AlgorithmParameterStringValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
     716
     717    private string ValueField;
     718
     719    [System.Runtime.Serialization.DataMemberAttribute()]
     720    public string Value {
     721      get {
     722        return this.ValueField;
     723      }
     724      set {
     725        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
     726          this.ValueField = value;
     727          this.RaisePropertyChanged("Value");
     728        }
     729      }
     730    }
     731  }
     732
     733  [System.Diagnostics.DebuggerStepThroughAttribute()]
     734  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     735  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     736  public partial class AlgorithmParameterBlobValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
     737
     738    private byte[] ValueField;
     739
     740    [System.Runtime.Serialization.DataMemberAttribute()]
     741    public byte[] Value {
     742      get {
     743        return this.ValueField;
     744      }
     745      set {
     746        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
     747          this.ValueField = value;
     748          this.RaisePropertyChanged("Value");
     749        }
     750      }
     751    }
     752  }
     753
     754  [System.Diagnostics.DebuggerStepThroughAttribute()]
     755  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     756  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     757  public partial class AlgorithmParameterBoolValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
     758
     759    private bool ValueField;
     760
     761    [System.Runtime.Serialization.DataMemberAttribute()]
     762    public bool Value {
     763      get {
     764        return this.ValueField;
     765      }
     766      set {
     767        if ((this.ValueField.Equals(value) != true)) {
     768          this.ValueField = value;
     769          this.RaisePropertyChanged("Value");
     770        }
     771      }
     772    }
     773  }
     774
     775  [System.Diagnostics.DebuggerStepThroughAttribute()]
     776  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     777  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     778  public partial class AlgorithmParameterFloatValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
     779
     780    private double ValueField;
     781
     782    [System.Runtime.Serialization.DataMemberAttribute()]
     783    public double Value {
     784      get {
     785        return this.ValueField;
     786      }
     787      set {
     788        if ((this.ValueField.Equals(value) != true)) {
     789          this.ValueField = value;
     790          this.RaisePropertyChanged("Value");
     791        }
     792      }
     793    }
     794  }
     795
     796  [System.Diagnostics.DebuggerStepThroughAttribute()]
     797  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    714798  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    715799  public partial class AlgorithmParameterIntValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
     
    733817  [System.Diagnostics.DebuggerStepThroughAttribute()]
    734818  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    735   [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    736   public partial class AlgorithmParameterBlobValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
    737 
    738     private byte[] ValueField;
    739 
    740     [System.Runtime.Serialization.DataMemberAttribute()]
    741     public byte[] Value {
     819  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     820  public partial class ProblemParameterFloatValue : HeuristicLab.Clients.OKB.ProblemParameterValue {
     821
     822    private double ValueField;
     823
     824    [System.Runtime.Serialization.DataMemberAttribute()]
     825    public double Value {
     826      get {
     827        return this.ValueField;
     828      }
     829      set {
     830        if ((this.ValueField.Equals(value) != true)) {
     831          this.ValueField = value;
     832          this.RaisePropertyChanged("Value");
     833        }
     834      }
     835    }
     836  }
     837
     838  [System.Diagnostics.DebuggerStepThroughAttribute()]
     839  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     840  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     841  public partial class ProblemParameterStringValue : HeuristicLab.Clients.OKB.ProblemParameterValue {
     842
     843    private string ValueField;
     844
     845    [System.Runtime.Serialization.DataMemberAttribute()]
     846    public string Value {
    742847      get {
    743848        return this.ValueField;
     
    745850      set {
    746851        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    747           this.ValueField = value;
    748           this.RaisePropertyChanged("Value");
    749         }
    750       }
    751     }
    752   }
    753 
    754   [System.Diagnostics.DebuggerStepThroughAttribute()]
    755   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    756   [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    757   public partial class AlgorithmParameterBoolValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
    758 
    759     private bool ValueField;
    760 
    761     [System.Runtime.Serialization.DataMemberAttribute()]
    762     public bool Value {
    763       get {
    764         return this.ValueField;
    765       }
    766       set {
    767         if ((this.ValueField.Equals(value) != true)) {
    768           this.ValueField = value;
    769           this.RaisePropertyChanged("Value");
    770         }
    771       }
    772     }
    773   }
    774 
    775   [System.Diagnostics.DebuggerStepThroughAttribute()]
    776   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    777   [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    778   public partial class AlgorithmParameterStringValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
    779 
    780     private string ValueField;
    781 
    782     [System.Runtime.Serialization.DataMemberAttribute()]
    783     public string Value {
    784       get {
    785         return this.ValueField;
    786       }
    787       set {
    788         if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    789           this.ValueField = value;
    790           this.RaisePropertyChanged("Value");
    791         }
    792       }
    793     }
    794   }
    795 
    796   [System.Diagnostics.DebuggerStepThroughAttribute()]
    797   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    798   [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    799   public partial class AlgorithmParameterFloatValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {
    800 
    801     private double ValueField;
    802 
    803     [System.Runtime.Serialization.DataMemberAttribute()]
    804     public double Value {
    805       get {
    806         return this.ValueField;
    807       }
    808       set {
    809         if ((this.ValueField.Equals(value) != true)) {
    810852          this.ValueField = value;
    811853          this.RaisePropertyChanged("Value");
     
    838880  [System.Diagnostics.DebuggerStepThroughAttribute()]
    839881  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    840   [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    841   public partial class ProblemParameterFloatValue : HeuristicLab.Clients.OKB.ProblemParameterValue {
    842 
    843     private double ValueField;
    844 
    845     [System.Runtime.Serialization.DataMemberAttribute()]
    846     public double Value {
    847       get {
    848         return this.ValueField;
    849       }
    850       set {
    851         if ((this.ValueField.Equals(value) != true)) {
     882  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     883  public partial class ProblemParameterBlobValue : HeuristicLab.Clients.OKB.ProblemParameterValue {
     884
     885    private byte[] ValueField;
     886
     887    [System.Runtime.Serialization.DataMemberAttribute()]
     888    public byte[] Value {
     889      get {
     890        return this.ValueField;
     891      }
     892      set {
     893        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    852894          this.ValueField = value;
    853895          this.RaisePropertyChanged("Value");
     
    880922  [System.Diagnostics.DebuggerStepThroughAttribute()]
    881923  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    882   [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    883   public partial class ProblemParameterStringValue : HeuristicLab.Clients.OKB.ProblemParameterValue {
    884 
    885     private string ValueField;
    886 
    887     [System.Runtime.Serialization.DataMemberAttribute()]
    888     public string Value {
    889       get {
    890         return this.ValueField;
    891       }
    892       set {
    893         if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    894           this.ValueField = value;
    895           this.RaisePropertyChanged("Value");
    896         }
    897       }
    898     }
    899   }
    900 
    901   [System.Diagnostics.DebuggerStepThroughAttribute()]
    902   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    903   [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    904   public partial class ProblemParameterBlobValue : HeuristicLab.Clients.OKB.ProblemParameterValue {
    905 
    906     private byte[] ValueField;
    907 
    908     [System.Runtime.Serialization.DataMemberAttribute()]
    909     public byte[] Value {
    910       get {
    911         return this.ValueField;
    912       }
    913       set {
    914         if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    915           this.ValueField = value;
    916           this.RaisePropertyChanged("Value");
    917         }
    918       }
    919     }
    920   }
    921 
    922   [System.Diagnostics.DebuggerStepThroughAttribute()]
    923   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    924924  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     925  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultIntValue))]
     926  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultStringValue))]
     927  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultBlobValue))]
     928  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultFloatValue))]
    925929  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultBoolValue))]
    926   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultBlobValue))]
    927   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultStringValue))]
    928   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultFloatValue))]
    929   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultIntValue))]
    930930  public partial class ResultValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
    931931
     
    998998  [System.Diagnostics.DebuggerStepThroughAttribute()]
    999999  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1000  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1001  public partial class ResultIntValue : HeuristicLab.Clients.OKB.ResultValue {
     1002
     1003    private long ValueField;
     1004
     1005    [System.Runtime.Serialization.DataMemberAttribute()]
     1006    public long Value {
     1007      get {
     1008        return this.ValueField;
     1009      }
     1010      set {
     1011        if ((this.ValueField.Equals(value) != true)) {
     1012          this.ValueField = value;
     1013          this.RaisePropertyChanged("Value");
     1014        }
     1015      }
     1016    }
     1017  }
     1018
     1019  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1020  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1021  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1022  public partial class ResultStringValue : HeuristicLab.Clients.OKB.ResultValue {
     1023
     1024    private string ValueField;
     1025
     1026    [System.Runtime.Serialization.DataMemberAttribute()]
     1027    public string Value {
     1028      get {
     1029        return this.ValueField;
     1030      }
     1031      set {
     1032        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
     1033          this.ValueField = value;
     1034          this.RaisePropertyChanged("Value");
     1035        }
     1036      }
     1037    }
     1038  }
     1039
     1040  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1041  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1042  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1043  public partial class ResultBlobValue : HeuristicLab.Clients.OKB.ResultValue {
     1044
     1045    private byte[] ValueField;
     1046
     1047    [System.Runtime.Serialization.DataMemberAttribute()]
     1048    public byte[] Value {
     1049      get {
     1050        return this.ValueField;
     1051      }
     1052      set {
     1053        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
     1054          this.ValueField = value;
     1055          this.RaisePropertyChanged("Value");
     1056        }
     1057      }
     1058    }
     1059  }
     1060
     1061  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1062  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1063  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1064  public partial class ResultFloatValue : HeuristicLab.Clients.OKB.ResultValue {
     1065
     1066    private double ValueField;
     1067
     1068    [System.Runtime.Serialization.DataMemberAttribute()]
     1069    public double Value {
     1070      get {
     1071        return this.ValueField;
     1072      }
     1073      set {
     1074        if ((this.ValueField.Equals(value) != true)) {
     1075          this.ValueField = value;
     1076          this.RaisePropertyChanged("Value");
     1077        }
     1078      }
     1079    }
     1080  }
     1081
     1082  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1083  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    10001084  [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    10011085  public partial class ResultBoolValue : HeuristicLab.Clients.OKB.ResultValue {
     
    10191103  [System.Diagnostics.DebuggerStepThroughAttribute()]
    10201104  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1021   [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1022   public partial class ResultBlobValue : HeuristicLab.Clients.OKB.ResultValue {
    1023 
    1024     private byte[] ValueField;
    1025 
    1026     [System.Runtime.Serialization.DataMemberAttribute()]
    1027     public byte[] Value {
    1028       get {
    1029         return this.ValueField;
    1030       }
    1031       set {
    1032         if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    1033           this.ValueField = value;
    1034           this.RaisePropertyChanged("Value");
    1035         }
    1036       }
    1037     }
    1038   }
    1039 
    1040   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1041   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1042   [System.Runtime.Serialization.DataContractAttribute(Name = "ResultStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1043   public partial class ResultStringValue : HeuristicLab.Clients.OKB.ResultValue {
    1044 
    1045     private string ValueField;
    1046 
    1047     [System.Runtime.Serialization.DataMemberAttribute()]
    1048     public string Value {
    1049       get {
    1050         return this.ValueField;
    1051       }
    1052       set {
    1053         if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    1054           this.ValueField = value;
    1055           this.RaisePropertyChanged("Value");
    1056         }
    1057       }
    1058     }
    1059   }
    1060 
    1061   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1062   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1063   [System.Runtime.Serialization.DataContractAttribute(Name = "ResultFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1064   public partial class ResultFloatValue : HeuristicLab.Clients.OKB.ResultValue {
    1065 
    1066     private double ValueField;
    1067 
    1068     [System.Runtime.Serialization.DataMemberAttribute()]
    1069     public double Value {
    1070       get {
    1071         return this.ValueField;
    1072       }
    1073       set {
    1074         if ((this.ValueField.Equals(value) != true)) {
    1075           this.ValueField = value;
    1076           this.RaisePropertyChanged("Value");
    1077         }
    1078       }
    1079     }
    1080   }
    1081 
    1082   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1083   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1084   [System.Runtime.Serialization.DataContractAttribute(Name = "ResultIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1085   public partial class ResultIntValue : HeuristicLab.Clients.OKB.ResultValue {
    1086 
    1087     private long ValueField;
    1088 
    1089     [System.Runtime.Serialization.DataMemberAttribute()]
    1090     public long Value {
    1091       get {
    1092         return this.ValueField;
    1093       }
    1094       set {
    1095         if ((this.ValueField.Equals(value) != true)) {
    1096           this.ValueField = value;
    1097           this.RaisePropertyChanged("Value");
    1098         }
    1099       }
    1100     }
    1101   }
    1102 
    1103   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1104   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    11051105  [System.Runtime.Serialization.DataContractAttribute(Name = "Filter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1106   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.EqualityComparisonFilter))]
    1107   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonByteArrayFilter))]
    1108   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonBoolFilter))]
    11091106  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonFilter))]
    1110   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonIntFilter))]
     1107  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))]
    11111108  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonLongFilter))]
    11121109  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonDateTimeFilter))]
     1110  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonIntFilter))]
    11131111  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonDoubleFilter))]
    1114   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))]
    11151112  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonFilter))]
    11161113  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringFilter))]
     1114  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringAvailableValuesFilter))]
    11171115  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameSetComparisonStringFilter))]
     1116  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameSetComparisonStringAvailableValuesFilter))]
     1117  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.CombinedFilter))]
     1118  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AndFilter))]
     1119  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrFilter))]
     1120  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.EqualityComparisonFilter))]
     1121  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonBoolFilter))]
     1122  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonByteArrayFilter))]
    11181123  public partial class Filter : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
    11191124
     
    11711176  [System.Diagnostics.DebuggerStepThroughAttribute()]
    11721177  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1173   [System.Runtime.Serialization.DataContractAttribute(Name = "EqualityComparisonFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1174   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonByteArrayFilter))]
    1175   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonBoolFilter))]
    1176   public partial class EqualityComparisonFilter : HeuristicLab.Clients.OKB.Filter {
    1177 
    1178     private HeuristicLab.Clients.OKB.EqualityComparison ComparisonField;
    1179 
    1180     [System.Runtime.Serialization.DataMemberAttribute()]
    1181     public HeuristicLab.Clients.OKB.EqualityComparison Comparison {
     1178  [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1179  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))]
     1180  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonLongFilter))]
     1181  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonDateTimeFilter))]
     1182  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonIntFilter))]
     1183  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonDoubleFilter))]
     1184  public partial class OrdinalComparisonFilter : HeuristicLab.Clients.OKB.Filter {
     1185
     1186    private HeuristicLab.Clients.OKB.OrdinalComparison ComparisonField;
     1187
     1188    [System.Runtime.Serialization.DataMemberAttribute()]
     1189    public HeuristicLab.Clients.OKB.OrdinalComparison Comparison {
    11821190      get {
    11831191        return this.ComparisonField;
     
    11941202  [System.Diagnostics.DebuggerStepThroughAttribute()]
    11951203  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1196   [System.Runtime.Serialization.DataContractAttribute(Name = "NameEqualityComparisonByteArrayFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1197   public partial class NameEqualityComparisonByteArrayFilter : HeuristicLab.Clients.OKB.EqualityComparisonFilter {
     1204  [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonLongFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1205  public partial class OrdinalComparisonLongFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
     1206
     1207    private long ValueField;
     1208
     1209    [System.Runtime.Serialization.DataMemberAttribute()]
     1210    public long Value {
     1211      get {
     1212        return this.ValueField;
     1213      }
     1214      set {
     1215        if ((this.ValueField.Equals(value) != true)) {
     1216          this.ValueField = value;
     1217          this.RaisePropertyChanged("Value");
     1218        }
     1219      }
     1220    }
     1221  }
     1222
     1223  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1224  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1225  [System.Runtime.Serialization.DataContractAttribute(Name = "NameOrdinalComparisonLongFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1226  public partial class NameOrdinalComparisonLongFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
    11981227
    11991228    private string NameField;
    12001229
    1201     private byte[] ValueField;
     1230    private long ValueField;
    12021231
    12031232    [System.Runtime.Serialization.DataMemberAttribute()]
     
    12151244
    12161245    [System.Runtime.Serialization.DataMemberAttribute()]
    1217     public byte[] Value {
    1218       get {
    1219         return this.ValueField;
    1220       }
    1221       set {
    1222         if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    1223           this.ValueField = value;
    1224           this.RaisePropertyChanged("Value");
    1225         }
    1226       }
    1227     }
    1228   }
    1229 
    1230   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1231   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1232   [System.Runtime.Serialization.DataContractAttribute(Name = "NameEqualityComparisonBoolFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1233   public partial class NameEqualityComparisonBoolFilter : HeuristicLab.Clients.OKB.EqualityComparisonFilter {
     1246    public long Value {
     1247      get {
     1248        return this.ValueField;
     1249      }
     1250      set {
     1251        if ((this.ValueField.Equals(value) != true)) {
     1252          this.ValueField = value;
     1253          this.RaisePropertyChanged("Value");
     1254        }
     1255      }
     1256    }
     1257  }
     1258
     1259  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1260  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1261  [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonDateTimeFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1262  public partial class OrdinalComparisonDateTimeFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
     1263
     1264    private System.DateTime ValueField;
     1265
     1266    [System.Runtime.Serialization.DataMemberAttribute()]
     1267    public System.DateTime Value {
     1268      get {
     1269        return this.ValueField;
     1270      }
     1271      set {
     1272        if ((this.ValueField.Equals(value) != true)) {
     1273          this.ValueField = value;
     1274          this.RaisePropertyChanged("Value");
     1275        }
     1276      }
     1277    }
     1278  }
     1279
     1280  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1281  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1282  [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonIntFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1283  public partial class OrdinalComparisonIntFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
     1284
     1285    private int ValueField;
     1286
     1287    [System.Runtime.Serialization.DataMemberAttribute()]
     1288    public int Value {
     1289      get {
     1290        return this.ValueField;
     1291      }
     1292      set {
     1293        if ((this.ValueField.Equals(value) != true)) {
     1294          this.ValueField = value;
     1295          this.RaisePropertyChanged("Value");
     1296        }
     1297      }
     1298    }
     1299  }
     1300
     1301  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1302  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1303  [System.Runtime.Serialization.DataContractAttribute(Name = "NameOrdinalComparisonDoubleFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1304  public partial class NameOrdinalComparisonDoubleFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
    12341305
    12351306    private string NameField;
    12361307
    1237     private bool ValueField;
     1308    private double ValueField;
    12381309
    12391310    [System.Runtime.Serialization.DataMemberAttribute()]
     
    12511322
    12521323    [System.Runtime.Serialization.DataMemberAttribute()]
    1253     public bool Value {
     1324    public double Value {
    12541325      get {
    12551326        return this.ValueField;
     
    12661337  [System.Diagnostics.DebuggerStepThroughAttribute()]
    12671338  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1268   [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1269   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonIntFilter))]
    1270   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonLongFilter))]
    1271   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonDateTimeFilter))]
    1272   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonDoubleFilter))]
    1273   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))]
    1274   public partial class OrdinalComparisonFilter : HeuristicLab.Clients.OKB.Filter {
    1275 
    1276     private HeuristicLab.Clients.OKB.OrdinalComparison ComparisonField;
    1277 
    1278     [System.Runtime.Serialization.DataMemberAttribute()]
    1279     public HeuristicLab.Clients.OKB.OrdinalComparison Comparison {
     1339  [System.Runtime.Serialization.DataContractAttribute(Name = "SetComparisonFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1340  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringFilter))]
     1341  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringAvailableValuesFilter))]
     1342  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameSetComparisonStringFilter))]
     1343  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameSetComparisonStringAvailableValuesFilter))]
     1344  public partial class SetComparisonFilter : HeuristicLab.Clients.OKB.Filter {
     1345
     1346    private HeuristicLab.Clients.OKB.SetComparison ComparisonField;
     1347
     1348    [System.Runtime.Serialization.DataMemberAttribute()]
     1349    public HeuristicLab.Clients.OKB.SetComparison Comparison {
    12801350      get {
    12811351        return this.ComparisonField;
     
    12921362  [System.Diagnostics.DebuggerStepThroughAttribute()]
    12931363  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1294   [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonIntFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1295   public partial class OrdinalComparisonIntFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
    1296 
    1297     private int ValueField;
    1298 
    1299     [System.Runtime.Serialization.DataMemberAttribute()]
    1300     public int Value {
    1301       get {
    1302         return this.ValueField;
    1303       }
    1304       set {
    1305         if ((this.ValueField.Equals(value) != true)) {
    1306           this.ValueField = value;
    1307           this.RaisePropertyChanged("Value");
    1308         }
    1309       }
    1310     }
    1311   }
    1312 
    1313   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1314   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1315   [System.Runtime.Serialization.DataContractAttribute(Name = "NameOrdinalComparisonLongFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1316   public partial class NameOrdinalComparisonLongFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
     1364  [System.Runtime.Serialization.DataContractAttribute(Name = "SetComparisonStringFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1365  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringAvailableValuesFilter))]
     1366  public partial class SetComparisonStringFilter : HeuristicLab.Clients.OKB.SetComparisonFilter {
     1367
     1368    private string ValueField;
     1369
     1370    [System.Runtime.Serialization.DataMemberAttribute()]
     1371    public string Value {
     1372      get {
     1373        return this.ValueField;
     1374      }
     1375      set {
     1376        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
     1377          this.ValueField = value;
     1378          this.RaisePropertyChanged("Value");
     1379        }
     1380      }
     1381    }
     1382  }
     1383
     1384  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1385  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1386  [System.Runtime.Serialization.DataContractAttribute(Name = "SetComparisonStringAvailableValuesFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1387  public partial class SetComparisonStringAvailableValuesFilter : HeuristicLab.Clients.OKB.SetComparisonStringFilter {
     1388
     1389    private System.Collections.Generic.List<string> AvailableValuesField;
     1390
     1391    [System.Runtime.Serialization.DataMemberAttribute()]
     1392    public System.Collections.Generic.List<string> AvailableValues {
     1393      get {
     1394        return this.AvailableValuesField;
     1395      }
     1396      set {
     1397        if ((object.ReferenceEquals(this.AvailableValuesField, value) != true)) {
     1398          this.AvailableValuesField = value;
     1399          this.RaisePropertyChanged("AvailableValues");
     1400        }
     1401      }
     1402    }
     1403  }
     1404
     1405  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1406  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1407  [System.Runtime.Serialization.DataContractAttribute(Name = "NameSetComparisonStringFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1408  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameSetComparisonStringAvailableValuesFilter))]
     1409  public partial class NameSetComparisonStringFilter : HeuristicLab.Clients.OKB.SetComparisonFilter {
    13171410
    13181411    private string NameField;
    13191412
    1320     private long ValueField;
     1413    private string ValueField;
    13211414
    13221415    [System.Runtime.Serialization.DataMemberAttribute()]
     
    13341427
    13351428    [System.Runtime.Serialization.DataMemberAttribute()]
    1336     public long Value {
    1337       get {
    1338         return this.ValueField;
    1339       }
    1340       set {
    1341         if ((this.ValueField.Equals(value) != true)) {
    1342           this.ValueField = value;
    1343           this.RaisePropertyChanged("Value");
    1344         }
    1345       }
    1346     }
    1347   }
    1348 
    1349   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1350   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1351   [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonDateTimeFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1352   public partial class OrdinalComparisonDateTimeFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
    1353 
    1354     private System.DateTime ValueField;
    1355 
    1356     [System.Runtime.Serialization.DataMemberAttribute()]
    1357     public System.DateTime Value {
    1358       get {
    1359         return this.ValueField;
    1360       }
    1361       set {
    1362         if ((this.ValueField.Equals(value) != true)) {
    1363           this.ValueField = value;
    1364           this.RaisePropertyChanged("Value");
    1365         }
    1366       }
    1367     }
    1368   }
    1369 
    1370   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1371   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1372   [System.Runtime.Serialization.DataContractAttribute(Name = "NameOrdinalComparisonDoubleFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1373   public partial class NameOrdinalComparisonDoubleFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
     1429    public string Value {
     1430      get {
     1431        return this.ValueField;
     1432      }
     1433      set {
     1434        if ((object.ReferenceEquals(this.ValueField, value) != true)) {
     1435          this.ValueField = value;
     1436          this.RaisePropertyChanged("Value");
     1437        }
     1438      }
     1439    }
     1440  }
     1441
     1442  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1443  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1444  [System.Runtime.Serialization.DataContractAttribute(Name = "NameSetComparisonStringAvailableValuesFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1445  public partial class NameSetComparisonStringAvailableValuesFilter : HeuristicLab.Clients.OKB.NameSetComparisonStringFilter {
     1446
     1447    private System.Collections.Generic.List<string> AvailableValuesField;
     1448
     1449    [System.Runtime.Serialization.DataMemberAttribute()]
     1450    public System.Collections.Generic.List<string> AvailableValues {
     1451      get {
     1452        return this.AvailableValuesField;
     1453      }
     1454      set {
     1455        if ((object.ReferenceEquals(this.AvailableValuesField, value) != true)) {
     1456          this.AvailableValuesField = value;
     1457          this.RaisePropertyChanged("AvailableValues");
     1458        }
     1459      }
     1460    }
     1461  }
     1462
     1463  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1464  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1465  [System.Runtime.Serialization.DataContractAttribute(Name = "CombinedFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1466  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AndFilter))]
     1467  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrFilter))]
     1468  public partial class CombinedFilter : HeuristicLab.Clients.OKB.Filter {
     1469
     1470    private System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> FiltersField;
     1471
     1472    [System.Runtime.Serialization.DataMemberAttribute()]
     1473    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> Filters {
     1474      get {
     1475        return this.FiltersField;
     1476      }
     1477      set {
     1478        if ((object.ReferenceEquals(this.FiltersField, value) != true)) {
     1479          this.FiltersField = value;
     1480          this.RaisePropertyChanged("Filters");
     1481        }
     1482      }
     1483    }
     1484  }
     1485
     1486  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1487  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1488  [System.Runtime.Serialization.DataContractAttribute(Name = "AndFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1489  public partial class AndFilter : HeuristicLab.Clients.OKB.CombinedFilter {
     1490  }
     1491
     1492  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1493  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1494  [System.Runtime.Serialization.DataContractAttribute(Name = "OrFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1495  public partial class OrFilter : HeuristicLab.Clients.OKB.CombinedFilter {
     1496  }
     1497
     1498  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1499  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1500  [System.Runtime.Serialization.DataContractAttribute(Name = "EqualityComparisonFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1501  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonBoolFilter))]
     1502  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonByteArrayFilter))]
     1503  public partial class EqualityComparisonFilter : HeuristicLab.Clients.OKB.Filter {
     1504
     1505    private HeuristicLab.Clients.OKB.EqualityComparison ComparisonField;
     1506
     1507    [System.Runtime.Serialization.DataMemberAttribute()]
     1508    public HeuristicLab.Clients.OKB.EqualityComparison Comparison {
     1509      get {
     1510        return this.ComparisonField;
     1511      }
     1512      set {
     1513        if ((this.ComparisonField.Equals(value) != true)) {
     1514          this.ComparisonField = value;
     1515          this.RaisePropertyChanged("Comparison");
     1516        }
     1517      }
     1518    }
     1519  }
     1520
     1521  [System.Diagnostics.DebuggerStepThroughAttribute()]
     1522  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1523  [System.Runtime.Serialization.DataContractAttribute(Name = "NameEqualityComparisonBoolFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1524  public partial class NameEqualityComparisonBoolFilter : HeuristicLab.Clients.OKB.EqualityComparisonFilter {
    13741525
    13751526    private string NameField;
    13761527
    1377     private double ValueField;
     1528    private bool ValueField;
    13781529
    13791530    [System.Runtime.Serialization.DataMemberAttribute()]
     
    13911542
    13921543    [System.Runtime.Serialization.DataMemberAttribute()]
    1393     public double Value {
     1544    public bool Value {
    13941545      get {
    13951546        return this.ValueField;
     
    14061557  [System.Diagnostics.DebuggerStepThroughAttribute()]
    14071558  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1408   [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonLongFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1409   public partial class OrdinalComparisonLongFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {
    1410 
    1411     private long ValueField;
    1412 
    1413     [System.Runtime.Serialization.DataMemberAttribute()]
    1414     public long Value {
    1415       get {
    1416         return this.ValueField;
    1417       }
    1418       set {
    1419         if ((this.ValueField.Equals(value) != true)) {
    1420           this.ValueField = value;
    1421           this.RaisePropertyChanged("Value");
    1422         }
    1423       }
    1424     }
    1425   }
    1426 
    1427   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1428   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1429   [System.Runtime.Serialization.DataContractAttribute(Name = "SetComparisonFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1430   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringFilter))]
    1431   [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameSetComparisonStringFilter))]
    1432   public partial class SetComparisonFilter : HeuristicLab.Clients.OKB.Filter {
    1433 
    1434     private HeuristicLab.Clients.OKB.SetComparison ComparisonField;
    1435 
    1436     [System.Runtime.Serialization.DataMemberAttribute()]
    1437     public HeuristicLab.Clients.OKB.SetComparison Comparison {
    1438       get {
    1439         return this.ComparisonField;
    1440       }
    1441       set {
    1442         if ((this.ComparisonField.Equals(value) != true)) {
    1443           this.ComparisonField = value;
    1444           this.RaisePropertyChanged("Comparison");
    1445         }
    1446       }
    1447     }
    1448   }
    1449 
    1450   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1451   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1452   [System.Runtime.Serialization.DataContractAttribute(Name = "SetComparisonStringFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1453   public partial class SetComparisonStringFilter : HeuristicLab.Clients.OKB.SetComparisonFilter {
    1454 
    1455     private string ValueField;
    1456 
    1457     [System.Runtime.Serialization.DataMemberAttribute()]
    1458     public string Value {
    1459       get {
    1460         return this.ValueField;
    1461       }
    1462       set {
    1463         if ((object.ReferenceEquals(this.ValueField, value) != true)) {
    1464           this.ValueField = value;
    1465           this.RaisePropertyChanged("Value");
    1466         }
    1467       }
    1468     }
    1469   }
    1470 
    1471   [System.Diagnostics.DebuggerStepThroughAttribute()]
    1472   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1473   [System.Runtime.Serialization.DataContractAttribute(Name = "NameSetComparisonStringFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1474   public partial class NameSetComparisonStringFilter : HeuristicLab.Clients.OKB.SetComparisonFilter {
     1559  [System.Runtime.Serialization.DataContractAttribute(Name = "NameEqualityComparisonByteArrayFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1560  public partial class NameEqualityComparisonByteArrayFilter : HeuristicLab.Clients.OKB.EqualityComparisonFilter {
    14751561
    14761562    private string NameField;
    14771563
    1478     private string ValueField;
     1564    private byte[] ValueField;
    14791565
    14801566    [System.Runtime.Serialization.DataMemberAttribute()]
     
    14921578
    14931579    [System.Runtime.Serialization.DataMemberAttribute()]
    1494     public string Value {
     1580    public byte[] Value {
    14951581      get {
    14961582        return this.ValueField;
     
    15031589      }
    15041590    }
     1591  }
     1592
     1593  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1594  [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparison", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1595  public enum OrdinalComparison : int {
     1596
     1597    [System.Runtime.Serialization.EnumMemberAttribute()]
     1598    Less = 0,
     1599
     1600    [System.Runtime.Serialization.EnumMemberAttribute()]
     1601    LessOrEqual = 1,
     1602
     1603    [System.Runtime.Serialization.EnumMemberAttribute()]
     1604    Equal = 2,
     1605
     1606    [System.Runtime.Serialization.EnumMemberAttribute()]
     1607    GreaterOrEqual = 3,
     1608
     1609    [System.Runtime.Serialization.EnumMemberAttribute()]
     1610    Greater = 4,
     1611
     1612    [System.Runtime.Serialization.EnumMemberAttribute()]
     1613    NotEqual = 5,
     1614  }
     1615
     1616  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     1617  [System.Runtime.Serialization.DataContractAttribute(Name = "SetComparison", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
     1618  public enum SetComparison : int {
     1619
     1620    [System.Runtime.Serialization.EnumMemberAttribute()]
     1621    Equal = 0,
     1622
     1623    [System.Runtime.Serialization.EnumMemberAttribute()]
     1624    NotEqual = 1,
     1625
     1626    [System.Runtime.Serialization.EnumMemberAttribute()]
     1627    Contains = 2,
     1628
     1629    [System.Runtime.Serialization.EnumMemberAttribute()]
     1630    NotContains = 3,
    15051631  }
    15061632
     
    15141640    [System.Runtime.Serialization.EnumMemberAttribute()]
    15151641    NotEqual = 1,
    1516   }
    1517 
    1518   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1519   [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparison", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1520   public enum OrdinalComparison : int {
    1521 
    1522     [System.Runtime.Serialization.EnumMemberAttribute()]
    1523     Less = 0,
    1524 
    1525     [System.Runtime.Serialization.EnumMemberAttribute()]
    1526     LessOrEqual = 1,
    1527 
    1528     [System.Runtime.Serialization.EnumMemberAttribute()]
    1529     Equal = 2,
    1530 
    1531     [System.Runtime.Serialization.EnumMemberAttribute()]
    1532     GreaterOrEqual = 3,
    1533 
    1534     [System.Runtime.Serialization.EnumMemberAttribute()]
    1535     Greater = 4,
    1536 
    1537     [System.Runtime.Serialization.EnumMemberAttribute()]
    1538     NotEqual = 5,
    1539   }
    1540 
    1541   [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    1542   [System.Runtime.Serialization.DataContractAttribute(Name = "SetComparison", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]
    1543   public enum SetComparison : int {
    1544 
    1545     [System.Runtime.Serialization.EnumMemberAttribute()]
    1546     Equal = 0,
    1547 
    1548     [System.Runtime.Serialization.EnumMemberAttribute()]
    1549     NotEqual = 1,
    1550 
    1551     [System.Runtime.Serialization.EnumMemberAttribute()]
    1552     Contains = 2,
    1553 
    1554     [System.Runtime.Serialization.EnumMemberAttribute()]
    1555     NotContains = 3,
    15561642  }
    15571643
     
    17151801
    17161802    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetExperiments", ReplyAction = "http://tempuri.org/IOKBService/GetExperimentsResponse")]
    1717     HeuristicLab.Clients.OKB.Experiment[] GetExperiments(long algorithmId, long problemId);
     1803    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Experiment> GetExperiments(long algorithmId, long problemId);
    17181804
    17191805    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddExperiment", ReplyAction = "http://tempuri.org/IOKBService/AddExperimentResponse")]
     
    17271813
    17281814    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetRuns", ReplyAction = "http://tempuri.org/IOKBService/GetRunsResponse")]
    1729     HeuristicLab.Clients.OKB.Run[] GetRuns(long experimentId);
     1815    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Run> GetRuns(long experimentId);
    17301816
    17311817    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddRun", ReplyAction = "http://tempuri.org/IOKBService/AddRunResponse")]
     
    17361822
    17371823    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetFilters", ReplyAction = "http://tempuri.org/IOKBService/GetFiltersResponse")]
    1738     HeuristicLab.Clients.OKB.Filter[] GetFilters();
     1824    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> GetFilters();
    17391825
    17401826    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/QueryRuns", ReplyAction = "http://tempuri.org/IOKBService/QueryRunsResponse")]
    1741     HeuristicLab.Clients.OKB.Run[] QueryRuns(HeuristicLab.Clients.OKB.Filter[] filters);
     1827    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Run> QueryRuns(HeuristicLab.Clients.OKB.Filter filter);
    17421828
    17431829    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetAlgorithmParameters", ReplyAction = "http://tempuri.org/IOKBService/GetAlgorithmParametersResponse")]
    1744     HeuristicLab.Clients.OKB.AlgorithmParameter[] GetAlgorithmParameters(long algorithmId);
     1830    System.Collections.Generic.List<HeuristicLab.Clients.OKB.AlgorithmParameter> GetAlgorithmParameters(long algorithmId);
    17451831
    17461832    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddAlgorithmParameter", ReplyAction = "http://tempuri.org/IOKBService/AddAlgorithmParameterResponse")]
     
    17571843
    17581844    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetProblemClasses", ReplyAction = "http://tempuri.org/IOKBService/GetProblemClassesResponse")]
    1759     HeuristicLab.Clients.OKB.ProblemClass[] GetProblemClasses();
     1845    System.Collections.Generic.List<HeuristicLab.Clients.OKB.ProblemClass> GetProblemClasses();
    17601846
    17611847    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddProblemClass", ReplyAction = "http://tempuri.org/IOKBService/AddProblemClassResponse")]
     
    17721858
    17731859    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetProblems", ReplyAction = "http://tempuri.org/IOKBService/GetProblemsResponse")]
    1774     HeuristicLab.Clients.OKB.Problem[] GetProblems();
     1860    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Problem> GetProblems();
    17751861
    17761862    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddProblem", ReplyAction = "http://tempuri.org/IOKBService/AddProblemResponse")]
     
    17841870
    17851871    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetProblemUsers", ReplyAction = "http://tempuri.org/IOKBService/GetProblemUsersResponse")]
    1786     System.Guid[] GetProblemUsers(long problemId);
     1872    System.Collections.Generic.List<System.Guid> GetProblemUsers(long problemId);
    17871873
    17881874    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/UpdateProblemUsers", ReplyAction = "http://tempuri.org/IOKBService/UpdateProblemUsersResponse")]
    1789     void UpdateProblemUsers(long problemId, System.Guid[] users);
     1875    void UpdateProblemUsers(long problemId, System.Collections.Generic.List<System.Guid> users);
    17901876
    17911877    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetProblemData", ReplyAction = "http://tempuri.org/IOKBService/GetProblemDataResponse")]
     
    17991885
    18001886    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetProblemParameters", ReplyAction = "http://tempuri.org/IOKBService/GetProblemParametersResponse")]
    1801     HeuristicLab.Clients.OKB.ProblemParameter[] GetProblemParameters(long problemId);
     1887    System.Collections.Generic.List<HeuristicLab.Clients.OKB.ProblemParameter> GetProblemParameters(long problemId);
    18021888
    18031889    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddProblemParameter", ReplyAction = "http://tempuri.org/IOKBService/AddProblemParameterResponse")]
     
    18141900
    18151901    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetResults", ReplyAction = "http://tempuri.org/IOKBService/GetResultsResponse")]
    1816     HeuristicLab.Clients.OKB.Result[] GetResults(long algorithmId);
     1902    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Result> GetResults(long algorithmId);
    18171903
    18181904    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetPlatform", ReplyAction = "http://tempuri.org/IOKBService/GetPlatformResponse")]
     
    18201906
    18211907    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetPlatforms", ReplyAction = "http://tempuri.org/IOKBService/GetPlatformsResponse")]
    1822     HeuristicLab.Clients.OKB.Platform[] GetPlatforms();
     1908    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Platform> GetPlatforms();
    18231909
    18241910    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddPlatform", ReplyAction = "http://tempuri.org/IOKBService/AddPlatformResponse")]
     
    18351921
    18361922    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetDataTypes", ReplyAction = "http://tempuri.org/IOKBService/GetDataTypesResponse")]
    1837     HeuristicLab.Clients.OKB.DataType[] GetDataTypes();
     1923    System.Collections.Generic.List<HeuristicLab.Clients.OKB.DataType> GetDataTypes();
    18381924
    18391925    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddDataType", ReplyAction = "http://tempuri.org/IOKBService/AddDataTypeResponse")]
     
    18501936
    18511937    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetAlgorithmClasses", ReplyAction = "http://tempuri.org/IOKBService/GetAlgorithmClassesResponse")]
    1852     HeuristicLab.Clients.OKB.AlgorithmClass[] GetAlgorithmClasses();
     1938    System.Collections.Generic.List<HeuristicLab.Clients.OKB.AlgorithmClass> GetAlgorithmClasses();
    18531939
    18541940    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddAlgorithmClass", ReplyAction = "http://tempuri.org/IOKBService/AddAlgorithmClassResponse")]
     
    18651951
    18661952    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetAlgorithms", ReplyAction = "http://tempuri.org/IOKBService/GetAlgorithmsResponse")]
    1867     HeuristicLab.Clients.OKB.Algorithm[] GetAlgorithms();
     1953    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Algorithm> GetAlgorithms();
    18681954
    18691955    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/AddAlgorithm", ReplyAction = "http://tempuri.org/IOKBService/AddAlgorithmResponse")]
     
    18771963
    18781964    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetAlgorithmUsers", ReplyAction = "http://tempuri.org/IOKBService/GetAlgorithmUsersResponse")]
    1879     System.Guid[] GetAlgorithmUsers(long algorithmId);
     1965    System.Collections.Generic.List<System.Guid> GetAlgorithmUsers(long algorithmId);
    18801966
    18811967    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/UpdateAlgorithmUsers", ReplyAction = "http://tempuri.org/IOKBService/UpdateAlgorithmUsersResponse")]
    1882     void UpdateAlgorithmUsers(long algorithmId, System.Guid[] users);
     1968    void UpdateAlgorithmUsers(long algorithmId, System.Collections.Generic.List<System.Guid> users);
    18831969
    18841970    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IOKBService/GetAlgorithmData", ReplyAction = "http://tempuri.org/IOKBService/GetAlgorithmDataResponse")]
     
    19352021    }
    19362022
    1937     public HeuristicLab.Clients.OKB.Experiment[] GetExperiments(long algorithmId, long problemId) {
     2023    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Experiment> GetExperiments(long algorithmId, long problemId) {
    19382024      return base.Channel.GetExperiments(algorithmId, problemId);
    19392025    }
     
    19512037    }
    19522038
    1953     public HeuristicLab.Clients.OKB.Run[] GetRuns(long experimentId) {
     2039    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Run> GetRuns(long experimentId) {
    19542040      return base.Channel.GetRuns(experimentId);
    19552041    }
     
    19632049    }
    19642050
    1965     public HeuristicLab.Clients.OKB.Filter[] GetFilters() {
     2051    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> GetFilters() {
    19662052      return base.Channel.GetFilters();
    19672053    }
    19682054
    1969     public HeuristicLab.Clients.OKB.Run[] QueryRuns(HeuristicLab.Clients.OKB.Filter[] filters) {
    1970       return base.Channel.QueryRuns(filters);
    1971     }
    1972 
    1973     public HeuristicLab.Clients.OKB.AlgorithmParameter[] GetAlgorithmParameters(long algorithmId) {
     2055    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Run> QueryRuns(HeuristicLab.Clients.OKB.Filter filter) {
     2056      return base.Channel.QueryRuns(filter);
     2057    }
     2058
     2059    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.AlgorithmParameter> GetAlgorithmParameters(long algorithmId) {
    19742060      return base.Channel.GetAlgorithmParameters(algorithmId);
    19752061    }
     
    19912077    }
    19922078
    1993     public HeuristicLab.Clients.OKB.ProblemClass[] GetProblemClasses() {
     2079    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.ProblemClass> GetProblemClasses() {
    19942080      return base.Channel.GetProblemClasses();
    19952081    }
     
    20112097    }
    20122098
    2013     public HeuristicLab.Clients.OKB.Problem[] GetProblems() {
     2099    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Problem> GetProblems() {
    20142100      return base.Channel.GetProblems();
    20152101    }
     
    20272113    }
    20282114
    2029     public System.Guid[] GetProblemUsers(long problemId) {
     2115    public System.Collections.Generic.List<System.Guid> GetProblemUsers(long problemId) {
    20302116      return base.Channel.GetProblemUsers(problemId);
    20312117    }
    20322118
    2033     public void UpdateProblemUsers(long problemId, System.Guid[] users) {
     2119    public void UpdateProblemUsers(long problemId, System.Collections.Generic.List<System.Guid> users) {
    20342120      base.Channel.UpdateProblemUsers(problemId, users);
    20352121    }
     
    20472133    }
    20482134
    2049     public HeuristicLab.Clients.OKB.ProblemParameter[] GetProblemParameters(long problemId) {
     2135    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.ProblemParameter> GetProblemParameters(long problemId) {
    20502136      return base.Channel.GetProblemParameters(problemId);
    20512137    }
     
    20672153    }
    20682154
    2069     public HeuristicLab.Clients.OKB.Result[] GetResults(long algorithmId) {
     2155    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Result> GetResults(long algorithmId) {
    20702156      return base.Channel.GetResults(algorithmId);
    20712157    }
     
    20752161    }
    20762162
    2077     public HeuristicLab.Clients.OKB.Platform[] GetPlatforms() {
     2163    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Platform> GetPlatforms() {
    20782164      return base.Channel.GetPlatforms();
    20792165    }
     
    20952181    }
    20962182
    2097     public HeuristicLab.Clients.OKB.DataType[] GetDataTypes() {
     2183    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.DataType> GetDataTypes() {
    20982184      return base.Channel.GetDataTypes();
    20992185    }
     
    21152201    }
    21162202
    2117     public HeuristicLab.Clients.OKB.AlgorithmClass[] GetAlgorithmClasses() {
     2203    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.AlgorithmClass> GetAlgorithmClasses() {
    21182204      return base.Channel.GetAlgorithmClasses();
    21192205    }
     
    21352221    }
    21362222
    2137     public HeuristicLab.Clients.OKB.Algorithm[] GetAlgorithms() {
     2223    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Algorithm> GetAlgorithms() {
    21382224      return base.Channel.GetAlgorithms();
    21392225    }
     
    21512237    }
    21522238
    2153     public System.Guid[] GetAlgorithmUsers(long algorithmId) {
     2239    public System.Collections.Generic.List<System.Guid> GetAlgorithmUsers(long algorithmId) {
    21542240      return base.Channel.GetAlgorithmUsers(algorithmId);
    21552241    }
    21562242
    2157     public void UpdateAlgorithmUsers(long algorithmId, System.Guid[] users) {
     2243    public void UpdateAlgorithmUsers(long algorithmId, System.Collections.Generic.List<System.Guid> users) {
    21582244      base.Channel.UpdateAlgorithmUsers(algorithmId, users);
    21592245    }
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/AlgorithmView.cs

    r4943 r5286  
    104104
    105105    private void refreshUsersButton_Click(object sender, System.EventArgs e) {
    106       Guid[] ids = OKBClient.Instance.GetAlgorithmUsers(Content.Id);
     106      List<Guid> ids = OKBClient.Instance.GetAlgorithmUsers(Content.Id);
    107107      if (ids != null) {
    108108        List<User> users = OKBClient.Instance.Users.ToList();
     
    117117    }
    118118    private void storeUsersButton_Click(object sender, System.EventArgs e) {
    119       if (OKBClient.Instance.UpdateAlgorithmUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToArray()))
     119      if (OKBClient.Instance.UpdateAlgorithmUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToList()))
    120120        storeUsersButton.Enabled = false;
    121121    }
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NameSetComparisonStringFilterView.Designer.cs

    r5269 r5286  
    6565      this.valueTextBox.TabIndex = 2;
    6666      this.valueTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.valueTextBox_KeyDown);
    67       this.valueTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.valueTextBox_Validating);
    6867      this.valueTextBox.Validated += new System.EventHandler(this.valueTextBox_Validated);
    6968      //
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/NameSetComparisonStringFilterView.cs

    r5269 r5286  
    5656      }
    5757    }
    58     private void valueTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e) {
    59     }
    6058    private void valueTextBox_Validated(object sender, System.EventArgs e) {
    6159      if (Content != null) {
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/ProblemView.cs

    r4558 r5286  
    104104
    105105    private void refreshUsersButton_Click(object sender, System.EventArgs e) {
    106       Guid[] ids = OKBClient.Instance.GetProblemUsers(Content.Id);
     106      List<Guid> ids = OKBClient.Instance.GetProblemUsers(Content.Id);
    107107      if (ids != null) {
    108108        List<User> users = OKBClient.Instance.Users.ToList();
     
    117117    }
    118118    private void storeUsersButton_Click(object sender, System.EventArgs e) {
    119       if (OKBClient.Instance.UpdateProblemUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToArray()))
     119      if (OKBClient.Instance.UpdateProblemUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToList()))
    120120        storeUsersButton.Enabled = false;
    121121    }
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/QueryView.Designer.cs

    r5269 r5286  
    4646    private void InitializeComponent() {
    4747      this.components = new System.ComponentModel.Container();
     48      System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QueryView));
    4849      this.refreshButton = new System.Windows.Forms.Button();
    4950      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
     
    5152      this.runCollectionView = new HeuristicLab.Clients.OKB.RunCollectionView();
    5253      this.splitContainer = new System.Windows.Forms.SplitContainer();
    53       this.filtersView = new HeuristicLab.Clients.OKB.FiltersView();
    5454      this.filtersGroupBox = new System.Windows.Forms.GroupBox();
    5555      this.resultsGroupBox = new System.Windows.Forms.GroupBox();
     56      this.andFilterView = new HeuristicLab.Clients.OKB.AndFilterView();
    5657      ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit();
    5758      this.splitContainer.Panel1.SuspendLayout();
     
    116117      this.splitContainer.TabIndex = 0;
    117118      //
    118       // filtersView
    119       //
    120       this.filtersView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    121                   | System.Windows.Forms.AnchorStyles.Left)
    122                   | System.Windows.Forms.AnchorStyles.Right)));
    123       this.filtersView.Caption = "Filters View";
    124       this.filtersView.Location = new System.Drawing.Point(6, 19);
    125       this.filtersView.Name = "filtersView";
    126       this.filtersView.ReadOnly = false;
    127       this.filtersView.Size = new System.Drawing.Size(722, 189);
    128       this.filtersView.TabIndex = 0;
    129       //
    130119      // filtersGroupBox
    131120      //
     
    133122                  | System.Windows.Forms.AnchorStyles.Left)
    134123                  | System.Windows.Forms.AnchorStyles.Right)));
    135       this.filtersGroupBox.Controls.Add(this.filtersView);
     124      this.filtersGroupBox.Controls.Add(this.andFilterView);
    136125      this.filtersGroupBox.Location = new System.Drawing.Point(0, 0);
    137126      this.filtersGroupBox.Name = "filtersGroupBox";
     
    155144      this.resultsGroupBox.TabStop = false;
    156145      this.resultsGroupBox.Text = "Results";
     146      //
     147      // andFilterView
     148      //
     149      this.andFilterView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
     150                  | System.Windows.Forms.AnchorStyles.Left)
     151                  | System.Windows.Forms.AnchorStyles.Right)));
     152      this.andFilterView.Caption = "AndFilter View";
     153      this.andFilterView.Content = null;
     154      this.andFilterView.Location = new System.Drawing.Point(6, 19);
     155      this.andFilterView.Name = "andFilterView";
     156      this.andFilterView.ReadOnly = false;
     157      this.andFilterView.Size = new System.Drawing.Size(722, 189);
     158      this.andFilterView.TabIndex = 0;
    157159      //
    158160      // QueryView
     
    180182    private System.Windows.Forms.Button showRunsButton;
    181183    private System.Windows.Forms.SplitContainer splitContainer;
    182     private FiltersView filtersView;
    183184    private System.Windows.Forms.GroupBox filtersGroupBox;
    184185    private System.Windows.Forms.GroupBox resultsGroupBox;
     186    private AndFilterView andFilterView;
    185187
    186188  }
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/QueryView.cs

    r5269 r5286  
    2121
    2222using System;
     23using System.Linq;
    2324using System.Windows.Forms;
    2425using HeuristicLab.MainForm;
     
    2829  [View("OKB Administrator")]
    2930  [Content(typeof(OKBClient), false)]
    30   public sealed partial class QueryView : AsynchronousContentView {
    31     public new OKBClient Content {
    32       get { return (OKBClient)base.Content; }
    33       set { base.Content = value; }
    34     }
    35 
     31  public sealed partial class QueryView : HeuristicLab.MainForm.WindowsForms.View {
    3632    public QueryView() {
    3733      InitializeComponent();
    3834    }
    3935
    40     protected override void DeregisterContentEvents() {
    41       // ...
    42       base.DeregisterContentEvents();
    43     }
    44 
    45     protected override void RegisterContentEvents() {
    46       base.RegisterContentEvents();
    47       // ...
    48     }
    49 
    50     protected override void OnContentChanged() {
    51       base.OnContentChanged();
    52       if (Content == null) {
    53         // ...
    54       } else {
    55         // ...
    56       }
     36    protected override void OnInitialized(EventArgs e) {
     37      base.OnInitialized(e);
     38      AndFilter filter = OKBClient.Instance.GetFilters().OfType<AndFilter>().FirstOrDefault();
     39      if (filter != null) andFilterView.Content = filter.Clone() as AndFilter;
    5740      runCollectionView.Content = null;
    5841    }
    5942
    60     protected override void SetEnabledStateOfControls() {
    61       base.SetEnabledStateOfControls();
    62       filtersView.Enabled = Content != null;
    63       refreshButton.Enabled = Content != null;
    64       showRunsButton.Enabled = Content != null;
    65       runCollectionView.Enabled = Content != null;
    66     }
    67 
    6843    private void refreshButton_Click(object sender, EventArgs e) {
    69       runCollectionView.Content = Content.QueryRuns(filtersView.Filters);
     44      runCollectionView.Content = OKBClient.Instance.QueryRuns(andFilterView.Content);
    7045    }
    7146
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/SetComparisonStringFilterView.Designer.cs

    r5269 r5286  
    6565      this.valueTextBox.TabIndex = 2;
    6666      this.valueTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.valueTextBox_KeyDown);
    67       this.valueTextBox.Validating += new System.ComponentModel.CancelEventHandler(this.valueTextBox_Validating);
    6867      this.valueTextBox.Validated += new System.EventHandler(this.valueTextBox_Validated);
    6968      //
  • TabularUnified branches/OKB/HeuristicLab.Clients.OKB-3.3/Views/SetComparisonStringFilterView.cs

    r5269 r5286  
    5656      }
    5757    }
    58     private void valueTextBox_Validating(object sender, System.ComponentModel.CancelEventArgs e) {
    59     }
    6058    private void valueTextBox_Validated(object sender, System.EventArgs e) {
    6159      if (Content != null) {
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB.DataTransfer/3.3/Filters/Filter.cs

    r5269 r5286  
    2828  [KnownType(typeof(OrdinalComparisonLongFilter))]
    2929  [KnownType(typeof(SetComparisonStringFilter))]
     30  [KnownType(typeof(SetComparisonStringAvailableValuesFilter))]
    3031  [KnownType(typeof(NameEqualityComparisonBoolFilter))]
    3132  [KnownType(typeof(NameEqualityComparisonByteArrayFilter))]
     
    3334  [KnownType(typeof(NameOrdinalComparisonLongFilter))]
    3435  [KnownType(typeof(NameSetComparisonStringFilter))]
     36  [KnownType(typeof(NameSetComparisonStringAvailableValuesFilter))]
     37  [KnownType(typeof(AndFilter))]
     38  [KnownType(typeof(OrFilter))]
    3539  public abstract class Filter {
    3640    [DataMember]
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB.DataTransfer/3.3/HeuristicLab.Services.OKB.DataTransfer-3.3.csproj

    r5269 r5286  
    5858    <Compile Include="AlgorithmParameterIntValue.cs" />
    5959    <Compile Include="AlgorithmParameterStringValue.cs" />
     60    <Compile Include="Filters\CombinedFilter.cs" />
     61    <Compile Include="Filters\AndFilter.cs" />
     62    <Compile Include="Filters\NameSetComparisonStringAvailableValuesFilter.cs" />
     63    <Compile Include="Filters\SetComparisonStringAvailableValuesFilter.cs" />
     64    <Compile Include="Filters\OrFilter.cs" />
    6065    <Compile Include="Filters\OrdinalComparisonFilter.cs" />
    6166    <Compile Include="Filters\SetComparisonFilter.cs" />
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmClassNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
     
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Algorithm.AlgorithmClass.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Algorithm.AlgorithmClass.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Algorithm.AlgorithmClass.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Algorithm.AlgorithmClass.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    2947
    3048    public AlgorithmClassNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Algorithm.AlgorithmClass.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Algorithm.AlgorithmClass.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Algorithm.AlgorithmClass.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Algorithm.AlgorithmClass.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmDataDataTypeNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
     
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Algorithm.AlgorithmData.DataType.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Algorithm.AlgorithmData.DataType.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Algorithm.AlgorithmData.DataType.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Algorithm.AlgorithmData.DataType.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    2947
    3048    public AlgorithmDataDataTypeNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Algorithm.AlgorithmData.DataType.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Algorithm.AlgorithmData.DataType.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Algorithm.AlgorithmData.DataType.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Algorithm.AlgorithmData.DataType.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
     
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Algorithm.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Algorithm.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Algorithm.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Algorithm.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    2947
    3048    public AlgorithmNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Algorithm.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Algorithm.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Algorithm.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Algorithm.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmParameterBlobValueDataTypeNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.SetComparison Comparison { get; set; }
    2931    public string Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.SetComparison.Equal:
     37            return x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.DataType.Name == Value));
     38          case DataTransfer.SetComparison.NotEqual:
     39            return x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.DataType.Name != Value));
     40          case DataTransfer.SetComparison.Contains:
     41            return x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && y.DataType.Name.Contains(Value));
     42          case DataTransfer.SetComparison.NotContains:
     43            return x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && !y.DataType.Name.Contains(Value));
     44          default:
     45            return x => true;
     46        }
     47      }
     48    }
    3049
    3150    public AlgorithmParameterBlobValueDataTypeNameFilter(string name, DataTransfer.SetComparison comparison, string value) {
     
    3958      Value = filter.Value;
    4059    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.SetComparison.Equal:
    45           return source.Where(x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.DataType.Name == Value)));
    46         case DataTransfer.SetComparison.NotEqual:
    47           return source.Where(x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.DataType.Name != Value)));
    48         case DataTransfer.SetComparison.Contains:
    49           return source.Where(x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && y.DataType.Name.Contains(Value)));
    50         case DataTransfer.SetComparison.NotContains:
    51           return source.Where(x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && !y.DataType.Name.Contains(Value)));
    52         default:
    53           return source;
    54       }
    55     }
    5660  }
    5761}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmParameterBlobValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.EqualityComparison Comparison { get; set; }
    2931    public byte[] Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.EqualityComparison.Equal:
     37            return x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.EqualityComparison.NotEqual:
     39            return x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value));
     40          default:
     41            return x => true;
     42        }
     43      }
     44    }
    3045
    3146    public AlgorithmParameterBlobValueValueFilter(string name, DataTransfer.EqualityComparison comparison, byte[] value) {
     
    3954      Value = filter.Value;
    4055    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.EqualityComparison.Equal:
    45           return source.Where(x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.EqualityComparison.NotEqual:
    47           return source.Where(x => x.Experiment.AlgorithmParameterBlobValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value)));
    48         default:
    49           return source;
    50       }
    51     }
    5256  }
    5357}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmParameterBoolValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.EqualityComparison Comparison { get; set; }
    2931    public bool Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.EqualityComparison.Equal:
     37            return x => x.Experiment.AlgorithmParameterBoolValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.EqualityComparison.NotEqual:
     39            return x => x.Experiment.AlgorithmParameterBoolValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value));
     40          default:
     41            return x => true;
     42        }
     43      }
     44    }
    3045
    3146    public AlgorithmParameterBoolValueValueFilter(string name, DataTransfer.EqualityComparison comparison, bool value) {
     
    3954      Value = filter.Value;
    4055    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.EqualityComparison.Equal:
    45           return source.Where(x => x.Experiment.AlgorithmParameterBoolValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.EqualityComparison.NotEqual:
    47           return source.Where(x => x.Experiment.AlgorithmParameterBoolValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value)));
    48         default:
    49           return source;
    50       }
    51     }
    5256  }
    5357}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmParameterFloatValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2931    public double Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.OrdinalComparison.Less:
     37            return x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value < Value));
     38          case DataTransfer.OrdinalComparison.LessOrEqual:
     39            return x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value <= Value));
     40          case DataTransfer.OrdinalComparison.Equal:
     41            return x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value));
     42          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     43            return x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value >= Value));
     44          case DataTransfer.OrdinalComparison.Greater:
     45            return x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value > Value));
     46          case DataTransfer.OrdinalComparison.NotEqual:
     47            return x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value));
     48          default:
     49            return x => true;
     50        }
     51      }
     52    }
    3053
    3154    public AlgorithmParameterFloatValueValueFilter(string name, DataTransfer.OrdinalComparison comparison, double value) {
     
    3962      Value = filter.Value;
    4063    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.OrdinalComparison.Less:
    45           return source.Where(x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value < Value)));
    46         case DataTransfer.OrdinalComparison.LessOrEqual:
    47           return source.Where(x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value <= Value)));
    48         case DataTransfer.OrdinalComparison.Equal:
    49           return source.Where(x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value)));
    50         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    51           return source.Where(x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value >= Value)));
    52         case DataTransfer.OrdinalComparison.Greater:
    53           return source.Where(x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value > Value)));
    54         case DataTransfer.OrdinalComparison.NotEqual:
    55           return source.Where(x => x.Experiment.AlgorithmParameterFloatValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value)));
    56         default:
    57           return source;
    58       }
    59     }
    6064  }
    6165}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmParameterIntValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2931    public long Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.OrdinalComparison.Less:
     37            return x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value < Value));
     38          case DataTransfer.OrdinalComparison.LessOrEqual:
     39            return x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value <= Value));
     40          case DataTransfer.OrdinalComparison.Equal:
     41            return x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value));
     42          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     43            return x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value >= Value));
     44          case DataTransfer.OrdinalComparison.Greater:
     45            return x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value > Value));
     46          case DataTransfer.OrdinalComparison.NotEqual:
     47            return x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value));
     48          default:
     49            return x => true;
     50        }
     51      }
     52    }
    3053
    3154    public AlgorithmParameterIntValueValueFilter(string name, DataTransfer.OrdinalComparison comparison, long value) {
     
    3962      Value = filter.Value;
    4063    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.OrdinalComparison.Less:
    45           return source.Where(x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value < Value)));
    46         case DataTransfer.OrdinalComparison.LessOrEqual:
    47           return source.Where(x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value <= Value)));
    48         case DataTransfer.OrdinalComparison.Equal:
    49           return source.Where(x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value)));
    50         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    51           return source.Where(x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value >= Value)));
    52         case DataTransfer.OrdinalComparison.Greater:
    53           return source.Where(x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value > Value)));
    54         case DataTransfer.OrdinalComparison.NotEqual:
    55           return source.Where(x => x.Experiment.AlgorithmParameterIntValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value)));
    56         default:
    57           return source;
    58       }
    59     }
    6064  }
    6165}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmParameterNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2729    public DataTransfer.SetComparison Comparison { get; set; }
    2830    public string Value { get; set; }
     31
     32    public Expression<Func<Run, bool>> Expression {
     33      get {
     34        switch (Comparison) {
     35          case DataTransfer.SetComparison.Equal:
     36            return x => x.Experiment.Algorithm.AlgorithmParameters.Any(y => (y.Name == Value) || (y.Alias == Value));
     37          case DataTransfer.SetComparison.NotEqual:
     38            return x => x.Experiment.Algorithm.AlgorithmParameters.All(y => (y.Name != Value) && (y.Alias != Value));
     39          case DataTransfer.SetComparison.Contains:
     40            return x => x.Experiment.Algorithm.AlgorithmParameters.Any(y => y.Name.Contains(Value) || y.Alias.Contains(Value));
     41          case DataTransfer.SetComparison.NotContains:
     42            return x => x.Experiment.Algorithm.AlgorithmParameters.All(y => !y.Name.Contains(Value) && !y.Alias.Contains(Value));
     43          default:
     44            return x => true;
     45        }
     46      }
     47    }
    2948
    3049    public AlgorithmParameterNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3655      Value = filter.Value;
    3756    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Algorithm.AlgorithmParameters.Any(y => (y.Name == Value) || (y.Alias == Value)));
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Algorithm.AlgorithmParameters.All(y => (y.Name != Value) && (y.Alias != Value)));
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Algorithm.AlgorithmParameters.Any(y => y.Name.Contains(Value) || y.Alias.Contains(Value)));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => x.Experiment.Algorithm.AlgorithmParameters.All(y => !y.Name.Contains(Value) && !y.Alias.Contains(Value)));
    49         default:
    50           return source;
    51       }
    52     }
    5357  }
    5458}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmParameterStringValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.SetComparison Comparison { get; set; }
    2931    public string Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.SetComparison.Equal:
     37            return x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.SetComparison.NotEqual:
     39            return x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value));
     40          case DataTransfer.SetComparison.Contains:
     41            return x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && y.Value.Contains(Value));
     42          case DataTransfer.SetComparison.NotContains:
     43            return x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && !y.Value.Contains(Value));
     44          default:
     45            return x => true;
     46        }
     47      }
     48    }
    3049
    3150    public AlgorithmParameterStringValueValueFilter(string name, DataTransfer.SetComparison comparison, string value) {
     
    3958      Value = filter.Value;
    4059    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.SetComparison.Equal:
    45           return source.Where(x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.SetComparison.NotEqual:
    47           return source.Where(x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && (y.Value != Value)));
    48         case DataTransfer.SetComparison.Contains:
    49           return source.Where(x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && y.Value.Contains(Value)));
    50         case DataTransfer.SetComparison.NotContains:
    51           return source.Where(x => x.Experiment.AlgorithmParameterStringValues.Any(y => ((y.AlgorithmParameter.Name == Name) || (y.AlgorithmParameter.Alias == Name)) && !y.Value.Contains(Value)));
    52         default:
    53           return source;
    54       }
    55     }
    5660  }
    5761}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/AlgorithmPlatformNameFilter.cs

    r5285 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
    2526namespace HeuristicLab.Services.OKB {
    26   public class AlgorithmPlattformNameFilter : IFilter {
     27  public class AlgorithmPlatformNameFilter : IFilter {
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
    2930
    30     public AlgorithmPlattformNameFilter(DataTransfer.SetComparison comparison, string value) {
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Algorithm.Platform.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Algorithm.Platform.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Algorithm.Platform.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Algorithm.Platform.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
     47
     48    public AlgorithmPlatformNameFilter(DataTransfer.SetComparison comparison, string value) {
    3149      Comparison = comparison;
    3250      Value = value;
    3351    }
    34     public AlgorithmPlattformNameFilter(DataTransfer.SetComparisonStringFilter filter) {
     52    public AlgorithmPlatformNameFilter(DataTransfer.SetComparisonStringFilter filter) {
    3553      Comparison = filter.Comparison;
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Algorithm.Platform.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Algorithm.Platform.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Algorithm.Platform.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Algorithm.Platform.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/IFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
    2526namespace HeuristicLab.Services.OKB {
    2627  public interface IFilter {
    27     IQueryable<Run> Apply(IQueryable<Run> source);
     28    Expression<Func<Run, bool>> Expression { get; }
    2829  }
    2930}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemClassNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
     
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Problem.ProblemClass.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Problem.ProblemClass.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Problem.ProblemClass.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Problem.ProblemClass.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    2947
    3048    public ProblemClassNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Problem.ProblemClass.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Problem.ProblemClass.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Problem.ProblemClass.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Problem.ProblemClass.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemDataDataTypeNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
     
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Problem.ProblemData.DataType.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Problem.ProblemData.DataType.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Problem.ProblemData.DataType.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Problem.ProblemData.DataType.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    2947
    3048    public ProblemDataDataTypeNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Problem.ProblemData.DataType.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Problem.ProblemData.DataType.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Problem.ProblemData.DataType.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Problem.ProblemData.DataType.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
     
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Problem.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Problem.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Problem.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Problem.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    2947
    3048    public ProblemNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Problem.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Problem.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Problem.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Problem.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemParameterBlobValueDataTypeNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.SetComparison Comparison { get; set; }
    2931    public string Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.SetComparison.Equal:
     37            return x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.DataType.Name == Value));
     38          case DataTransfer.SetComparison.NotEqual:
     39            return x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.DataType.Name != Value));
     40          case DataTransfer.SetComparison.Contains:
     41            return x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && y.DataType.Name.Contains(Value));
     42          case DataTransfer.SetComparison.NotContains:
     43            return x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && !y.DataType.Name.Contains(Value));
     44          default:
     45            return x => true;
     46        }
     47      }
     48    }
    3049
    3150    public ProblemParameterBlobValueDataTypeNameFilter(string name, DataTransfer.SetComparison comparison, string value) {
     
    3958      Value = filter.Value;
    4059    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.SetComparison.Equal:
    45           return source.Where(x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.DataType.Name == Value)));
    46         case DataTransfer.SetComparison.NotEqual:
    47           return source.Where(x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.DataType.Name != Value)));
    48         case DataTransfer.SetComparison.Contains:
    49           return source.Where(x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && y.DataType.Name.Contains(Value)));
    50         case DataTransfer.SetComparison.NotContains:
    51           return source.Where(x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && !y.DataType.Name.Contains(Value)));
    52         default:
    53           return source;
    54       }
    55     }
    5660  }
    5761}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemParameterBlobValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.EqualityComparison Comparison { get; set; }
    2931    public byte[] Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.EqualityComparison.Equal:
     37            return x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.EqualityComparison.NotEqual:
     39            return x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value));
     40          default:
     41            return x => true;
     42        }
     43      }
     44    }
    3045
    3146    public ProblemParameterBlobValueValueFilter(string name, DataTransfer.EqualityComparison comparison, byte[] value) {
     
    3954      Value = filter.Value;
    4055    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.EqualityComparison.Equal:
    45           return source.Where(x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.EqualityComparison.NotEqual:
    47           return source.Where(x => x.Experiment.ProblemParameterBlobValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value)));
    48         default:
    49           return source;
    50       }
    51     }
    5256  }
    5357}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemParameterBoolValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.EqualityComparison Comparison { get; set; }
    2931    public bool Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.EqualityComparison.Equal:
     37            return x => x.Experiment.ProblemParameterBoolValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.EqualityComparison.NotEqual:
     39            return x => x.Experiment.ProblemParameterBoolValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value));
     40          default:
     41            return x => true;
     42        }
     43      }
     44    }
    3045
    3146    public ProblemParameterBoolValueValueFilter(string name, DataTransfer.EqualityComparison comparison, bool value) {
     
    3954      Value = filter.Value;
    4055    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.EqualityComparison.Equal:
    45           return source.Where(x => x.Experiment.ProblemParameterBoolValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.EqualityComparison.NotEqual:
    47           return source.Where(x => x.Experiment.ProblemParameterBoolValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value)));
    48         default:
    49           return source;
    50       }
    51     }
    5256  }
    5357}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemParameterFloatValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2931    public double Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.OrdinalComparison.Less:
     37            return x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value < Value));
     38          case DataTransfer.OrdinalComparison.LessOrEqual:
     39            return x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value <= Value));
     40          case DataTransfer.OrdinalComparison.Equal:
     41            return x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value));
     42          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     43            return x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value >= Value));
     44          case DataTransfer.OrdinalComparison.Greater:
     45            return x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value > Value));
     46          case DataTransfer.OrdinalComparison.NotEqual:
     47            return x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value));
     48          default:
     49            return x => true;
     50        }
     51      }
     52    }
    3053
    3154    public ProblemParameterFloatValueValueFilter(string name, DataTransfer.OrdinalComparison comparison, double value) {
     
    3962      Value = filter.Value;
    4063    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.OrdinalComparison.Less:
    45           return source.Where(x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value < Value)));
    46         case DataTransfer.OrdinalComparison.LessOrEqual:
    47           return source.Where(x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value <= Value)));
    48         case DataTransfer.OrdinalComparison.Equal:
    49           return source.Where(x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value)));
    50         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    51           return source.Where(x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value >= Value)));
    52         case DataTransfer.OrdinalComparison.Greater:
    53           return source.Where(x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value > Value)));
    54         case DataTransfer.OrdinalComparison.NotEqual:
    55           return source.Where(x => x.Experiment.ProblemParameterFloatValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value)));
    56         default:
    57           return source;
    58       }
    59     }
    6064  }
    6165}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemParameterIntValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2931    public long Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.OrdinalComparison.Less:
     37            return x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value < Value));
     38          case DataTransfer.OrdinalComparison.LessOrEqual:
     39            return x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value <= Value));
     40          case DataTransfer.OrdinalComparison.Equal:
     41            return x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value));
     42          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     43            return x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value >= Value));
     44          case DataTransfer.OrdinalComparison.Greater:
     45            return x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value > Value));
     46          case DataTransfer.OrdinalComparison.NotEqual:
     47            return x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value));
     48          default:
     49            return x => true;
     50        }
     51      }
     52    }
    3053
    3154    public ProblemParameterIntValueValueFilter(string name, DataTransfer.OrdinalComparison comparison, long value) {
     
    3962      Value = filter.Value;
    4063    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.OrdinalComparison.Less:
    45           return source.Where(x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value < Value)));
    46         case DataTransfer.OrdinalComparison.LessOrEqual:
    47           return source.Where(x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value <= Value)));
    48         case DataTransfer.OrdinalComparison.Equal:
    49           return source.Where(x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value)));
    50         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    51           return source.Where(x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value >= Value)));
    52         case DataTransfer.OrdinalComparison.Greater:
    53           return source.Where(x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value > Value)));
    54         case DataTransfer.OrdinalComparison.NotEqual:
    55           return source.Where(x => x.Experiment.ProblemParameterIntValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value)));
    56         default:
    57           return source;
    58       }
    59     }
    6064  }
    6165}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemParameterNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2729    public DataTransfer.SetComparison Comparison { get; set; }
    2830    public string Value { get; set; }
     31
     32    public Expression<Func<Run, bool>> Expression {
     33      get {
     34        switch (Comparison) {
     35          case DataTransfer.SetComparison.Equal:
     36            return x => x.Experiment.Problem.ProblemParameters.Any(y => (y.Name == Value) || (y.Alias == Value));
     37          case DataTransfer.SetComparison.NotEqual:
     38            return x => x.Experiment.Problem.ProblemParameters.All(y => (y.Name != Value) && (y.Alias != Value));
     39          case DataTransfer.SetComparison.Contains:
     40            return x => x.Experiment.Problem.ProblemParameters.Any(y => y.Name.Contains(Value) || y.Alias.Contains(Value));
     41          case DataTransfer.SetComparison.NotContains:
     42            return x => x.Experiment.Problem.ProblemParameters.All(y => !y.Name.Contains(Value) && !y.Alias.Contains(Value));
     43          default:
     44            return x => true;
     45        }
     46      }
     47    }
    2948
    3049    public ProblemParameterNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3655      Value = filter.Value;
    3756    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Problem.ProblemParameters.Any(y => (y.Name == Value) || (y.Alias == Value)));
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Problem.ProblemParameters.All(y => (y.Name != Value) && (y.Alias != Value)));
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Problem.ProblemParameters.Any(y => y.Name.Contains(Value) || y.Alias.Contains(Value)));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => x.Experiment.Problem.ProblemParameters.All(y => !y.Name.Contains(Value) && !y.Alias.Contains(Value)));
    49         default:
    50           return source;
    51       }
    52     }
    5357  }
    5458}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemParameterStringValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.SetComparison Comparison { get; set; }
    2931    public string Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.SetComparison.Equal:
     37            return x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.SetComparison.NotEqual:
     39            return x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value));
     40          case DataTransfer.SetComparison.Contains:
     41            return x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && y.Value.Contains(Value));
     42          case DataTransfer.SetComparison.NotContains:
     43            return x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && !y.Value.Contains(Value));
     44          default:
     45            return x => true;
     46        }
     47      }
     48    }
    3049
    3150    public ProblemParameterStringValueValueFilter(string name, DataTransfer.SetComparison comparison, string value) {
     
    3958      Value = filter.Value;
    4059    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.SetComparison.Equal:
    45           return source.Where(x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.SetComparison.NotEqual:
    47           return source.Where(x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && (y.Value != Value)));
    48         case DataTransfer.SetComparison.Contains:
    49           return source.Where(x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && y.Value.Contains(Value)));
    50         case DataTransfer.SetComparison.NotContains:
    51           return source.Where(x => x.Experiment.ProblemParameterStringValues.Any(y => ((y.ProblemParameter.Name == Name) || (y.ProblemParameter.Alias == Name)) && !y.Value.Contains(Value)));
    52         default:
    53           return source;
    54       }
    55     }
    5660  }
    5761}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ProblemPlatformNameFilter.cs

    r5285 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
    2526namespace HeuristicLab.Services.OKB {
    26   public class ProblemPlattformNameFilter : IFilter {
     27  public class ProblemPlatformNameFilter : IFilter {
    2728    public DataTransfer.SetComparison Comparison { get; set; }
    2829    public string Value { get; set; }
    2930
    30     public ProblemPlattformNameFilter(DataTransfer.SetComparison comparison, string value) {
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            return x => x.Experiment.Problem.Platform.Name == Value;
     36          case DataTransfer.SetComparison.NotEqual:
     37            return x => x.Experiment.Problem.Platform.Name != Value;
     38          case DataTransfer.SetComparison.Contains:
     39            return x => x.Experiment.Problem.Platform.Name.Contains(Value);
     40          case DataTransfer.SetComparison.NotContains:
     41            return x => !x.Experiment.Problem.Platform.Name.Contains(Value);
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
     47
     48    public ProblemPlatformNameFilter(DataTransfer.SetComparison comparison, string value) {
    3149      Comparison = comparison;
    3250      Value = value;
    3351    }
    34     public ProblemPlattformNameFilter(DataTransfer.SetComparisonStringFilter filter) {
     52    public ProblemPlatformNameFilter(DataTransfer.SetComparisonStringFilter filter) {
    3553      Comparison = filter.Comparison;
    3654      Value = filter.Value;
    3755    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Problem.Platform.Name == Value);
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Problem.Platform.Name != Value);
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Problem.Platform.Name.Contains(Value));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => !x.Experiment.Problem.Platform.Name.Contains(Value));
    49         default:
    50           return source;
    51       }
    52     }
    5356  }
    5457}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ResultBlobValueDataTypeNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.SetComparison Comparison { get; set; }
    2931    public string Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.SetComparison.Equal:
     37            return x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.DataType.Name == Value));
     38          case DataTransfer.SetComparison.NotEqual:
     39            return x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.DataType.Name != Value));
     40          case DataTransfer.SetComparison.Contains:
     41            return x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && y.DataType.Name.Contains(Value));
     42          case DataTransfer.SetComparison.NotContains:
     43            return x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && !y.DataType.Name.Contains(Value));
     44          default:
     45            return x => true;
     46        }
     47      }
     48    }
    3049
    3150    public ResultBlobValueDataTypeNameFilter(string name, DataTransfer.SetComparison comparison, string value) {
     
    3958      Value = filter.Value;
    4059    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.SetComparison.Equal:
    45           return source.Where(x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.DataType.Name == Value)));
    46         case DataTransfer.SetComparison.NotEqual:
    47           return source.Where(x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.DataType.Name != Value)));
    48         case DataTransfer.SetComparison.Contains:
    49           return source.Where(x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && y.DataType.Name.Contains(Value)));
    50         case DataTransfer.SetComparison.NotContains:
    51           return source.Where(x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && !y.DataType.Name.Contains(Value)));
    52         default:
    53           return source;
    54       }
    55     }
    5660  }
    5761}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ResultBlobValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.EqualityComparison Comparison { get; set; }
    2931    public byte[] Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.EqualityComparison.Equal:
     37            return x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.EqualityComparison.NotEqual:
     39            return x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value));
     40          default:
     41            return x => true;
     42        }
     43      }
     44    }
    3045
    3146    public ResultBlobValueValueFilter(string name, DataTransfer.EqualityComparison comparison, byte[] value) {
     
    3954      Value = filter.Value;
    4055    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.EqualityComparison.Equal:
    45           return source.Where(x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.EqualityComparison.NotEqual:
    47           return source.Where(x => x.ResultBlobValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value)));
    48         default:
    49           return source;
    50       }
    51     }
    5256  }
    5357}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ResultBoolValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.EqualityComparison Comparison { get; set; }
    2931    public bool Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.EqualityComparison.Equal:
     37            return x => x.ResultBoolValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.EqualityComparison.NotEqual:
     39            return x => x.ResultBoolValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value));
     40          default:
     41            return x => true;
     42        }
     43      }
     44    }
    3045
    3146    public ResultBoolValueValueFilter(string name, DataTransfer.EqualityComparison comparison, bool value) {
     
    3954      Value = filter.Value;
    4055    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.EqualityComparison.Equal:
    45           return source.Where(x => x.ResultBoolValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.EqualityComparison.NotEqual:
    47           return source.Where(x => x.ResultBoolValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value)));
    48         default:
    49           return source;
    50       }
    51     }
    5256  }
    5357}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ResultFloatValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2931    public double Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.OrdinalComparison.Less:
     37            return x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value < Value));
     38          case DataTransfer.OrdinalComparison.LessOrEqual:
     39            return x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value <= Value));
     40          case DataTransfer.OrdinalComparison.Equal:
     41            return x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value));
     42          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     43            return x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value >= Value));
     44          case DataTransfer.OrdinalComparison.Greater:
     45            return x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value > Value));
     46          case DataTransfer.OrdinalComparison.NotEqual:
     47            return x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value));
     48          default:
     49            return x => true;
     50        }
     51      }
     52    }
    3053
    3154    public ResultFloatValueValueFilter(string name, DataTransfer.OrdinalComparison comparison, double value) {
     
    3962      Value = filter.Value;
    4063    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.OrdinalComparison.Less:
    45           return source.Where(x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value < Value)));
    46         case DataTransfer.OrdinalComparison.LessOrEqual:
    47           return source.Where(x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value <= Value)));
    48         case DataTransfer.OrdinalComparison.Equal:
    49           return source.Where(x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value)));
    50         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    51           return source.Where(x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value >= Value)));
    52         case DataTransfer.OrdinalComparison.Greater:
    53           return source.Where(x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value > Value)));
    54         case DataTransfer.OrdinalComparison.NotEqual:
    55           return source.Where(x => x.ResultFloatValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value)));
    56         default:
    57           return source;
    58       }
    59     }
    6064  }
    6165}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ResultIntValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2931    public long Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.OrdinalComparison.Less:
     37            return x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value < Value));
     38          case DataTransfer.OrdinalComparison.LessOrEqual:
     39            return x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value <= Value));
     40          case DataTransfer.OrdinalComparison.Equal:
     41            return x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value));
     42          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     43            return x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value >= Value));
     44          case DataTransfer.OrdinalComparison.Greater:
     45            return x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value > Value));
     46          case DataTransfer.OrdinalComparison.NotEqual:
     47            return x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value));
     48          default:
     49            return x => true;
     50        }
     51      }
     52    }
    3053
    3154    public ResultIntValueValueFilter(string name, DataTransfer.OrdinalComparison comparison, long value) {
     
    3962      Value = filter.Value;
    4063    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.OrdinalComparison.Less:
    45           return source.Where(x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value < Value)));
    46         case DataTransfer.OrdinalComparison.LessOrEqual:
    47           return source.Where(x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value <= Value)));
    48         case DataTransfer.OrdinalComparison.Equal:
    49           return source.Where(x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value)));
    50         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    51           return source.Where(x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value >= Value)));
    52         case DataTransfer.OrdinalComparison.Greater:
    53           return source.Where(x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value > Value)));
    54         case DataTransfer.OrdinalComparison.NotEqual:
    55           return source.Where(x => x.ResultIntValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value)));
    56         default:
    57           return source;
    58       }
    59     }
    6064  }
    6165}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ResultNameFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2729    public DataTransfer.SetComparison Comparison { get; set; }
    2830    public string Value { get; set; }
     31
     32    public Expression<Func<Run, bool>> Expression {
     33      get {
     34        switch (Comparison) {
     35          case DataTransfer.SetComparison.Equal:
     36            return x => x.Experiment.Algorithm.Results.Any(y => (y.Name == Value) || (y.Alias == Value));
     37          case DataTransfer.SetComparison.NotEqual:
     38            return x => x.Experiment.Algorithm.Results.All(y => (y.Name != Value) && (y.Alias != Value));
     39          case DataTransfer.SetComparison.Contains:
     40            return x => x.Experiment.Algorithm.Results.Any(y => y.Name.Contains(Value) || y.Alias.Contains(Value));
     41          case DataTransfer.SetComparison.NotContains:
     42            return x => x.Experiment.Algorithm.Results.All(y => !y.Name.Contains(Value) && !y.Alias.Contains(Value));
     43          default:
     44            return x => true;
     45        }
     46      }
     47    }
    2948
    3049    public ResultNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3655      Value = filter.Value;
    3756    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.SetComparison.Equal:
    42           return source.Where(x => x.Experiment.Algorithm.Results.Any(y => (y.Name == Value) || (y.Alias == Value)));
    43         case DataTransfer.SetComparison.NotEqual:
    44           return source.Where(x => x.Experiment.Algorithm.Results.All(y => (y.Name != Value) && (y.Alias != Value)));
    45         case DataTransfer.SetComparison.Contains:
    46           return source.Where(x => x.Experiment.Algorithm.Results.Any(y => y.Name.Contains(Value) || y.Alias.Contains(Value)));
    47         case DataTransfer.SetComparison.NotContains:
    48           return source.Where(x => x.Experiment.Algorithm.Results.All(y => !y.Name.Contains(Value) && !y.Alias.Contains(Value)));
    49         default:
    50           return source;
    51       }
    52     }
    5357  }
    5458}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/ResultStringValueValueFilter.cs

    r5269 r5286  
    2020#endregion
    2121
     22using System;
    2223using System.Linq;
     24using System.Linq.Expressions;
    2325using HeuristicLab.Services.OKB.DataAccess;
    2426
     
    2830    public DataTransfer.SetComparison Comparison { get; set; }
    2931    public string Value { get; set; }
     32
     33    public Expression<Func<Run, bool>> Expression {
     34      get {
     35        switch (Comparison) {
     36          case DataTransfer.SetComparison.Equal:
     37            return x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value));
     38          case DataTransfer.SetComparison.NotEqual:
     39            return x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value));
     40          case DataTransfer.SetComparison.Contains:
     41            return x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && y.Value.Contains(Value));
     42          case DataTransfer.SetComparison.NotContains:
     43            return x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && !y.Value.Contains(Value));
     44          default:
     45            return x => true;
     46        }
     47      }
     48    }
    3049
    3150    public ResultStringValueValueFilter(string name, DataTransfer.SetComparison comparison, string value) {
     
    3958      Value = filter.Value;
    4059    }
    41 
    42     public IQueryable<Run> Apply(IQueryable<Run> source) {
    43       switch (Comparison) {
    44         case DataTransfer.SetComparison.Equal:
    45           return source.Where(x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value == Value)));
    46         case DataTransfer.SetComparison.NotEqual:
    47           return source.Where(x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && (y.Value != Value)));
    48         case DataTransfer.SetComparison.Contains:
    49           return source.Where(x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && y.Value.Contains(Value)));
    50         case DataTransfer.SetComparison.NotContains:
    51           return source.Where(x => x.ResultStringValues.Any(y => ((y.Result.Name == Name) || (y.Result.Alias == Name)) && !y.Value.Contains(Value)));
    52         default:
    53           return source;
    54       }
    55     }
    5660  }
    5761}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/RunClientNameFilter.cs

    r5269 r5286  
    2121
    2222using System;
    23 using System.Linq;
     23using System.Linq.Expressions;
    2424using HeuristicLab.Services.OKB.DataAccess;
    2525
     
    2828    public DataTransfer.SetComparison Comparison { get; set; }
    2929    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            throw new NotSupportedException();
     36          case DataTransfer.SetComparison.NotEqual:
     37            throw new NotSupportedException();
     38          case DataTransfer.SetComparison.Contains:
     39            throw new NotSupportedException();
     40          case DataTransfer.SetComparison.NotContains:
     41            throw new NotSupportedException();
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    3047
    3148    public RunClientNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3754      Value = filter.Value;
    3855    }
    39 
    40     public IQueryable<Run> Apply(IQueryable<Run> source) {
    41       switch (Comparison) {
    42         case DataTransfer.SetComparison.Equal:
    43           throw new NotSupportedException();
    44         case DataTransfer.SetComparison.NotEqual:
    45           throw new NotSupportedException();
    46         case DataTransfer.SetComparison.Contains:
    47           throw new NotSupportedException();
    48         case DataTransfer.SetComparison.NotContains:
    49           throw new NotSupportedException();
    50         default:
    51           return source;
    52       }
    53     }
    5456  }
    5557}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/RunFinishedDateFilter.cs

    r5269 r5286  
    2121
    2222using System;
    23 using System.Linq;
     23using System.Linq.Expressions;
    2424using HeuristicLab.Services.OKB.DataAccess;
    2525
     
    2828    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2929    public DateTime Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.OrdinalComparison.Less:
     35            return x => x.FinishedDate < Value;
     36          case DataTransfer.OrdinalComparison.LessOrEqual:
     37            return x => x.FinishedDate <= Value;
     38          case DataTransfer.OrdinalComparison.Equal:
     39            return x => x.FinishedDate == Value;
     40          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     41            return x => x.FinishedDate >= Value;
     42          case DataTransfer.OrdinalComparison.Greater:
     43            return x => x.FinishedDate > Value;
     44          case DataTransfer.OrdinalComparison.NotEqual:
     45            return x => x.FinishedDate != Value;
     46          default:
     47            return x => true;
     48        }
     49      }
     50    }
    3051
    3152    public RunFinishedDateFilter(DataTransfer.OrdinalComparison comparison, DateTime value) {
     
    3758      Value = filter.Value;
    3859    }
    39 
    40     public IQueryable<Run> Apply(IQueryable<Run> source) {
    41       switch (Comparison) {
    42         case DataTransfer.OrdinalComparison.Less:
    43           return source.Where(x => x.FinishedDate < Value);
    44         case DataTransfer.OrdinalComparison.LessOrEqual:
    45           return source.Where(x => x.FinishedDate <= Value);
    46         case DataTransfer.OrdinalComparison.Equal:
    47           return source.Where(x => x.FinishedDate == Value);
    48         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    49           return source.Where(x => x.FinishedDate >= Value);
    50         case DataTransfer.OrdinalComparison.Greater:
    51           return source.Where(x => x.FinishedDate > Value);
    52         case DataTransfer.OrdinalComparison.NotEqual:
    53           return source.Where(x => x.FinishedDate != Value);
    54         default:
    55           return source;
    56       }
    57     }
    5860  }
    5961}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/RunRandomSeedFilter.cs

    r5269 r5286  
    2020#endregion
    2121
    22 using System.Linq;
     22using System;
     23using System.Linq.Expressions;
    2324using HeuristicLab.Services.OKB.DataAccess;
    2425
     
    2728    public DataTransfer.OrdinalComparison Comparison { get; set; }
    2829    public int Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.OrdinalComparison.Less:
     35            return x => x.RandomSeed < Value;
     36          case DataTransfer.OrdinalComparison.LessOrEqual:
     37            return x => x.RandomSeed <= Value;
     38          case DataTransfer.OrdinalComparison.Equal:
     39            return x => x.RandomSeed == Value;
     40          case DataTransfer.OrdinalComparison.GreaterOrEqual:
     41            return x => x.RandomSeed >= Value;
     42          case DataTransfer.OrdinalComparison.Greater:
     43            return x => x.RandomSeed > Value;
     44          case DataTransfer.OrdinalComparison.NotEqual:
     45            return x => x.RandomSeed != Value;
     46          default:
     47            return x => true;
     48        }
     49      }
     50    }
    2951
    3052    public RunRandomSeedFilter(DataTransfer.OrdinalComparison comparison, int value) {
     
    3658      Value = filter.Value;
    3759    }
    38 
    39     public IQueryable<Run> Apply(IQueryable<Run> source) {
    40       switch (Comparison) {
    41         case DataTransfer.OrdinalComparison.Less:
    42           return source.Where(x => x.RandomSeed < Value);
    43         case DataTransfer.OrdinalComparison.LessOrEqual:
    44           return source.Where(x => x.RandomSeed <= Value);
    45         case DataTransfer.OrdinalComparison.Equal:
    46           return source.Where(x => x.RandomSeed == Value);
    47         case DataTransfer.OrdinalComparison.GreaterOrEqual:
    48           return source.Where(x => x.RandomSeed >= Value);
    49         case DataTransfer.OrdinalComparison.Greater:
    50           return source.Where(x => x.RandomSeed > Value);
    51         case DataTransfer.OrdinalComparison.NotEqual:
    52           return source.Where(x => x.RandomSeed != Value);
    53         default:
    54           return source;
    55       }
    56     }
    5760  }
    5861}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Filters/RunUserNameFilter.cs

    r5269 r5286  
    2121
    2222using System;
    23 using System.Linq;
     23using System.Linq.Expressions;
    2424using HeuristicLab.Services.OKB.DataAccess;
    2525
     
    2828    public DataTransfer.SetComparison Comparison { get; set; }
    2929    public string Value { get; set; }
     30
     31    public Expression<Func<Run, bool>> Expression {
     32      get {
     33        switch (Comparison) {
     34          case DataTransfer.SetComparison.Equal:
     35            throw new NotSupportedException();
     36          case DataTransfer.SetComparison.NotEqual:
     37            throw new NotSupportedException();
     38          case DataTransfer.SetComparison.Contains:
     39            throw new NotSupportedException();
     40          case DataTransfer.SetComparison.NotContains:
     41            throw new NotSupportedException();
     42          default:
     43            return x => true;
     44        }
     45      }
     46    }
    3047
    3148    public RunUserNameFilter(DataTransfer.SetComparison comparison, string value) {
     
    3754      Value = filter.Value;
    3855    }
    39 
    40     public IQueryable<Run> Apply(IQueryable<Run> source) {
    41       switch (Comparison) {
    42         case DataTransfer.SetComparison.Equal:
    43           throw new NotSupportedException();
    44         case DataTransfer.SetComparison.NotEqual:
    45           throw new NotSupportedException();
    46         case DataTransfer.SetComparison.Contains:
    47           throw new NotSupportedException();
    48         case DataTransfer.SetComparison.NotContains:
    49           throw new NotSupportedException();
    50         default:
    51           return source;
    52       }
    53     }
    5456  }
    5557}
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj

    r5269 r5286  
    131131    <Compile Include="Filters\AlgorithmNameFilter.cs" />
    132132    <Compile Include="Filters\AlgorithmClassNameFilter.cs" />
    133     <Compile Include="Filters\AlgorithmPlattformNameFilter.cs" />
     133    <Compile Include="Filters\AlgorithmPlatformNameFilter.cs" />
    134134    <Compile Include="Filters\AlgorithmDataDataTypeNameFilter.cs" />
     135    <Compile Include="Filters\AndFilter.cs" />
     136    <Compile Include="Filters\OrFilter.cs" />
    135137    <Compile Include="Filters\ProblemDataDataTypeNameFilter.cs" />
    136     <Compile Include="Filters\ProblemPlattformNameFilter.cs" />
     138    <Compile Include="Filters\ProblemPlatformNameFilter.cs" />
    137139    <Compile Include="Filters\ProblemClassNameFilter.cs" />
    138140    <Compile Include="Filters\ProblemNameFilter.cs" />
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/Interfaces/IOKBService.cs

    r5269 r5286  
    197197    IEnumerable<Filter> GetFilters();
    198198    [OperationContract]
    199     IEnumerable<Run> QueryRuns(IEnumerable<Filter> filters);
     199    IEnumerable<Run> QueryRuns(Filter filter);
    200200    #endregion
    201201  }
  • TabularUnified branches/OKB/HeuristicLab.Services.OKB/3.3/OKBService.cs

    r5269 r5286  
    566566      List<DataTransfer.Filter> filters = new List<DataTransfer.Filter>();
    567567      using (OKBDataContext okb = new OKBDataContext()) {
    568         DataLoadOptions dlo = new DataLoadOptions();
    569         dlo.LoadWith<AlgorithmParameter>(x => x.DataType);
    570         dlo.LoadWith<ProblemParameter>(x => x.DataType);
    571         dlo.LoadWith<Result>(x => x.DataType);
    572         okb.LoadOptions = dlo;
     568        //DataLoadOptions dlo = new DataLoadOptions();
     569        //dlo.LoadWith<Algorithm>(x => x.AlgorithmData);
     570        //dlo.LoadWith<AlgorithmData>(x => x.DataType);
     571        //dlo.LoadWith<Problem>(x => x.ProblemData);
     572        //dlo.LoadWith<ProblemData>(x => x.DataType);
     573        //dlo.LoadWith<AlgorithmParameter>(x => x.DataType);
     574        //dlo.LoadWith<ProblemParameter>(x => x.DataType);
     575        //dlo.LoadWith<Result>(x => x.DataType);
     576        //okb.LoadOptions = dlo;
    573577
    574578        // run filters
     
    579583
    580584        // result filters
    581         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ResultNameFilter).AssemblyQualifiedName, "Result Name"));
     585        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ResultNameFilter).AssemblyQualifiedName, "Result Name", okb.Results.Select(x => x.Name).Distinct().ToArray()));
    582586        foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))
    583           filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ResultBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value Data Type Name", entity.Name));
     587          filters.Add(new DataTransfer.NameSetComparisonStringAvailableValuesFilter(typeof(ResultBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value Data Type Name", entity.Name, okb.ResultBlobValues.Where(x => x.Result.Name == entity.Name).Select(x => x.DataType.Name).Distinct().ToArray()));
    584588        foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))
    585589          filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ResultBlobValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name));
     
    594598
    595599        // algorithm parameter filters
    596         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmParameterNameFilter).AssemblyQualifiedName, "Algorithm Parameter Name"));
     600        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmParameterNameFilter).AssemblyQualifiedName, "Algorithm Parameter Name", okb.AlgorithmParameters.Select(x => x.Name).Distinct().ToArray()));
    597601        foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))
    598           filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(AlgorithmParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value Data Type Name", entity.Name));
     602          filters.Add(new DataTransfer.NameSetComparisonStringAvailableValuesFilter(typeof(AlgorithmParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value Data Type Name", entity.Name, okb.AlgorithmParameterBlobValues.Where(x => x.AlgorithmParameter.Name == entity.Name).Select(x => x.DataType.Name).Distinct().ToArray()));
    599603        foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))
    600604          filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(AlgorithmParameterBlobValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name));
     
    609613
    610614        // algorithm filters
    611         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmNameFilter).AssemblyQualifiedName, "Algorithm Name"));
    612         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmClassNameFilter).AssemblyQualifiedName, "Algorithm Class Name"));
    613         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmPlattformNameFilter).AssemblyQualifiedName, "Algorithm Plattform Name"));
    614         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmDataDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Data Type Name"));
     615        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmNameFilter).AssemblyQualifiedName, "Algorithm Name", okb.Algorithms.Select(x => x.Name).Distinct().ToArray()));
     616        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmClassNameFilter).AssemblyQualifiedName, "Algorithm Class Name", okb.AlgorithmClasses.Select(x => x.Name).Distinct().ToArray()));
     617        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmPlatformNameFilter).AssemblyQualifiedName, "Algorithm Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray()));
     618        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmDataDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Data Type Name", okb.Algorithms.Select(x => x.AlgorithmData.DataType.Name).Distinct().ToArray()));
    615619
    616620        // problem parameter filters
    617         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemParameterNameFilter).AssemblyQualifiedName, "Problem Parameter Name"));
     621        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemParameterNameFilter).AssemblyQualifiedName, "Problem Parameter Name", okb.ProblemParameters.Select(x => x.Name).Distinct().ToArray()));
    618622        foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))
    619           filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ProblemParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value Data Type Name", entity.Name));
     623          filters.Add(new DataTransfer.NameSetComparisonStringAvailableValuesFilter(typeof(ProblemParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value Data Type Name", entity.Name, okb.ProblemParameterBlobValues.Where(x => x.ProblemParameter.Name == entity.Name).Select(x => x.DataType.Name).Distinct().ToArray()));
    620624        foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))
    621625          filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ProblemParameterBlobValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name));
     
    630634
    631635        // problem filters
    632         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemNameFilter).AssemblyQualifiedName, "Problem Name"));
    633         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemClassNameFilter).AssemblyQualifiedName, "Problem Class Name"));
    634         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemPlattformNameFilter).AssemblyQualifiedName, "Problem Plattform Name"));
    635         filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemDataDataTypeNameFilter).AssemblyQualifiedName, "Problem Data Type Name"));
     636        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemNameFilter).AssemblyQualifiedName, "Problem Name", okb.Problems.Select(x => x.Name).Distinct().ToArray()));
     637        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemClassNameFilter).AssemblyQualifiedName, "Problem Class Name", okb.ProblemClasses.Select(x => x.Name).Distinct().ToArray()));
     638        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemPlatformNameFilter).AssemblyQualifiedName, "Problem Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray()));
     639        filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemDataDataTypeNameFilter).AssemblyQualifiedName, "Problem Data Type Name", okb.Problems.Select(x => x.ProblemData.DataType.Name).Distinct().ToArray()));
     640
     641        // and/or filters
     642        filters.Add(new DataTransfer.AndFilter(typeof(AndFilter).AssemblyQualifiedName, "And"));
     643        filters.Add(new DataTransfer.OrFilter(typeof(OrFilter).AssemblyQualifiedName, "Or"));
    636644      }
    637645      return filters.OrderBy(x => x.Label);
    638646    }
    639     public IEnumerable<DataTransfer.Run> QueryRuns(IEnumerable<DataTransfer.Filter> filters) {
    640       using (OKBDataContext okb = new OKBDataContext()) {
    641         DataLoadOptions dlo = new DataLoadOptions();
    642         dlo.LoadWith<Run>(x => x.ResultBlobValues);
    643         dlo.LoadWith<Run>(x => x.ResultBoolValues);
    644         dlo.LoadWith<Run>(x => x.ResultFloatValues);
    645         dlo.LoadWith<Run>(x => x.ResultIntValues);
    646         dlo.LoadWith<Run>(x => x.ResultStringValues);
    647         dlo.LoadWith<Run>(x => x.Experiment);
    648         dlo.LoadWith<ResultBlobValue>(x => x.Result);
    649         dlo.LoadWith<ResultBlobValue>(x => x.DataType);
    650         dlo.LoadWith<ResultBoolValue>(x => x.Result);
    651         dlo.LoadWith<ResultBoolValue>(x => x.DataType);
    652         dlo.LoadWith<ResultFloatValue>(x => x.Result);
    653         dlo.LoadWith<ResultFloatValue>(x => x.DataType);
    654         dlo.LoadWith<ResultIntValue>(x => x.Result);
    655         dlo.LoadWith<ResultIntValue>(x => x.DataType);
    656         dlo.LoadWith<ResultStringValue>(x => x.Result);
    657         dlo.LoadWith<ResultStringValue>(x => x.DataType);
    658         dlo.LoadWith<Result>(x => x.Algorithm);
    659         dlo.LoadWith<Result>(x => x.DataType);
    660         dlo.LoadWith<Experiment>(x => x.Algorithm);
    661         dlo.LoadWith<Experiment>(x => x.Problem);
    662         dlo.LoadWith<Experiment>(x => x.AlgorithmParameterBlobValues);
    663         dlo.LoadWith<Experiment>(x => x.AlgorithmParameterBoolValues);
    664         dlo.LoadWith<Experiment>(x => x.AlgorithmParameterFloatValues);
    665         dlo.LoadWith<Experiment>(x => x.AlgorithmParameterIntValues);
    666         dlo.LoadWith<Experiment>(x => x.AlgorithmParameterStringValues);
    667         dlo.LoadWith<Experiment>(x => x.ProblemParameterBlobValues);
    668         dlo.LoadWith<Experiment>(x => x.ProblemParameterBoolValues);
    669         dlo.LoadWith<Experiment>(x => x.ProblemParameterFloatValues);
    670         dlo.LoadWith<Experiment>(x => x.ProblemParameterIntValues);
    671         dlo.LoadWith<Experiment>(x => x.ProblemParameterStringValues);
    672         dlo.LoadWith<AlgorithmParameterBlobValue>(x => x.AlgorithmParameter);
    673         dlo.LoadWith<AlgorithmParameterBlobValue>(x => x.DataType);
    674         dlo.LoadWith<AlgorithmParameterBoolValue>(x => x.AlgorithmParameter);
    675         dlo.LoadWith<AlgorithmParameterBoolValue>(x => x.DataType);
    676         dlo.LoadWith<AlgorithmParameterFloatValue>(x => x.AlgorithmParameter);
    677         dlo.LoadWith<AlgorithmParameterFloatValue>(x => x.DataType);
    678         dlo.LoadWith<AlgorithmParameterIntValue>(x => x.AlgorithmParameter);
    679         dlo.LoadWith<AlgorithmParameterIntValue>(x => x.DataType);
    680         dlo.LoadWith<AlgorithmParameterStringValue>(x => x.AlgorithmParameter);
    681         dlo.LoadWith<AlgorithmParameterStringValue>(x => x.DataType);
    682         dlo.LoadWith<ProblemParameterBlobValue>(x => x.ProblemParameter);
    683         dlo.LoadWith<ProblemParameterBlobValue>(x => x.DataType);
    684         dlo.LoadWith<ProblemParameterBoolValue>(x => x.ProblemParameter);
    685         dlo.LoadWith<ProblemParameterBoolValue>(x => x.DataType);
    686         dlo.LoadWith<ProblemParameterFloatValue>(x => x.ProblemParameter);
    687         dlo.LoadWith<ProblemParameterFloatValue>(x => x.DataType);
    688         dlo.LoadWith<ProblemParameterIntValue>(x => x.ProblemParameter);
    689         dlo.LoadWith<ProblemParameterIntValue>(x => x.DataType);
    690         dlo.LoadWith<ProblemParameterStringValue>(x => x.ProblemParameter);
    691         dlo.LoadWith<ProblemParameterStringValue>(x => x.DataType);
    692         dlo.LoadWith<AlgorithmParameter>(x => x.Algorithm);
    693         dlo.LoadWith<AlgorithmParameter>(x => x.DataType);
    694         dlo.LoadWith<ProblemParameter>(x => x.Problem);
    695         dlo.LoadWith<ProblemParameter>(x => x.DataType);
    696         dlo.LoadWith<Algorithm>(x => x.AlgorithmClass);
    697         dlo.LoadWith<Algorithm>(x => x.Platform);
    698         dlo.LoadWith<Problem>(x => x.ProblemClass);
    699         dlo.LoadWith<Problem>(x => x.Platform);
    700         okb.LoadOptions = dlo;
    701 
    702         var runs = okb.Runs.AsQueryable<Run>();
    703         foreach (DataTransfer.Filter filter in filters) {
    704           IFilter f = (IFilter)Activator.CreateInstance(Type.GetType(filter.FilterTypeName), filter);
    705           runs = f.Apply(runs);
    706         }
     647    public IEnumerable<DataTransfer.Run> QueryRuns(DataTransfer.Filter filter) {
     648      using (OKBDataContext okb = new OKBDataContext()) {
     649        //DataLoadOptions dlo = new DataLoadOptions();
     650        //dlo.LoadWith<Run>(x => x.ResultBlobValues);
     651        //dlo.LoadWith<Run>(x => x.ResultBoolValues);
     652        //dlo.LoadWith<Run>(x => x.ResultFloatValues);
     653        //dlo.LoadWith<Run>(x => x.ResultIntValues);
     654        //dlo.LoadWith<Run>(x => x.ResultStringValues);
     655        //dlo.LoadWith<Run>(x => x.Experiment);
     656        //dlo.LoadWith<ResultBlobValue>(x => x.Result);
     657        //dlo.LoadWith<ResultBlobValue>(x => x.DataType);
     658        //dlo.LoadWith<ResultBoolValue>(x => x.Result);
     659        //dlo.LoadWith<ResultBoolValue>(x => x.DataType);
     660        //dlo.LoadWith<ResultFloatValue>(x => x.Result);
     661        //dlo.LoadWith<ResultFloatValue>(x => x.DataType);
     662        //dlo.LoadWith<ResultIntValue>(x => x.Result);
     663        //dlo.LoadWith<ResultIntValue>(x => x.DataType);
     664        //dlo.LoadWith<ResultStringValue>(x => x.Result);
     665        //dlo.LoadWith<ResultStringValue>(x => x.DataType);
     666        //dlo.LoadWith<Result>(x => x.Algorithm);
     667        //dlo.LoadWith<Result>(x => x.DataType);
     668        //dlo.LoadWith<Experiment>(x => x.Algorithm);
     669        //dlo.LoadWith<Experiment>(x => x.Problem);
     670        //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterBlobValues);
     671        //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterBoolValues);
     672        //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterFloatValues);
     673        //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterIntValues);
     674        //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterStringValues);
     675        //dlo.LoadWith<Experiment>(x => x.ProblemParameterBlobValues);
     676        //dlo.LoadWith<Experiment>(x => x.ProblemParameterBoolValues);
     677        //dlo.LoadWith<Experiment>(x => x.ProblemParameterFloatValues);
     678        //dlo.LoadWith<Experiment>(x => x.ProblemParameterIntValues);
     679        //dlo.LoadWith<Experiment>(x => x.ProblemParameterStringValues);
     680        //dlo.LoadWith<AlgorithmParameterBlobValue>(x => x.AlgorithmParameter);
     681        //dlo.LoadWith<AlgorithmParameterBlobValue>(x => x.DataType);
     682        //dlo.LoadWith<AlgorithmParameterBoolValue>(x => x.AlgorithmParameter);
     683        //dlo.LoadWith<AlgorithmParameterBoolValue>(x => x.DataType);
     684        //dlo.LoadWith<AlgorithmParameterFloatValue>(x => x.AlgorithmParameter);
     685        //dlo.LoadWith<AlgorithmParameterFloatValue>(x => x.DataType);
     686        //dlo.LoadWith<AlgorithmParameterIntValue>(x => x.AlgorithmParameter);
     687        //dlo.LoadWith<AlgorithmParameterIntValue>(x => x.DataType);
     688        //dlo.LoadWith<AlgorithmParameterStringValue>(x => x.AlgorithmParameter);
     689        //dlo.LoadWith<AlgorithmParameterStringValue>(x => x.DataType);
     690        //dlo.LoadWith<ProblemParameterBlobValue>(x => x.ProblemParameter);
     691        //dlo.LoadWith<ProblemParameterBlobValue>(x => x.DataType);
     692        //dlo.LoadWith<ProblemParameterBoolValue>(x => x.ProblemParameter);
     693        //dlo.LoadWith<ProblemParameterBoolValue>(x => x.DataType);
     694        //dlo.LoadWith<ProblemParameterFloatValue>(x => x.ProblemParameter);
     695        //dlo.LoadWith<ProblemParameterFloatValue>(x => x.DataType);
     696        //dlo.LoadWith<ProblemParameterIntValue>(x => x.ProblemParameter);
     697        //dlo.LoadWith<ProblemParameterIntValue>(x => x.DataType);
     698        //dlo.LoadWith<ProblemParameterStringValue>(x => x.ProblemParameter);
     699        //dlo.LoadWith<ProblemParameterStringValue>(x => x.DataType);
     700        //dlo.LoadWith<AlgorithmParameter>(x => x.Algorithm);
     701        //dlo.LoadWith<AlgorithmParameter>(x => x.DataType);
     702        //dlo.LoadWith<ProblemParameter>(x => x.Problem);
     703        //dlo.LoadWith<ProblemParameter>(x => x.DataType);
     704        //dlo.LoadWith<Algorithm>(x => x.AlgorithmClass);
     705        //dlo.LoadWith<Algorithm>(x => x.Platform);
     706        //dlo.LoadWith<Problem>(x => x.ProblemClass);
     707        //dlo.LoadWith<Problem>(x => x.Platform);
     708        //okb.LoadOptions = dlo;
     709
     710        IFilter convertedFilter = (IFilter)Activator.CreateInstance(Type.GetType(filter.FilterTypeName), filter);
     711        var runs = okb.Runs.Where(convertedFilter.Expression);
    707712        return runs.Select(x => Convert.ToDto(x)).ToArray();
    708713      }
Note: See TracChangeset for help on using the changeset viewer.