Changeset 5304
- Timestamp:
- 01/17/11 05:03:21 (14 years ago)
- Location:
- branches/OKB (trunk integration)
- Files:
-
- 9 added
- 8 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj
r5299 r5304 108 108 <Compile Include="ServiceClients\AlgorithmData.cs" /> 109 109 <Compile Include="ServiceClients\AlgorithmParameter.cs" /> 110 <Compile Include="ServiceClients\ AndFilter.cs" />110 <Compile Include="ServiceClients\CombinedFilter.cs" /> 111 111 <Compile Include="ServiceClients\OKBServiceClients.cs" /> 112 112 <Compile Include="ServiceClients\SetComparisonStringAvailableValuesFilter.cs" /> 113 113 <Compile Include="ServiceClients\NameSetComparisonStringAvailableValuesFilter.cs" /> 114 <Compile Include="ServiceClients\OrFilter.cs" />115 114 <Compile Include="ServiceClients\OrdinalComparisonDateTimeFilter.cs" /> 116 115 <Compile Include="ServiceClients\OrdinalComparisonLongFilter.cs" /> … … 183 182 <DependentUpon>AlgorithmParameterView.cs</DependentUpon> 184 183 </Compile> 185 <Compile Include="Views\AndFilterView.cs">186 <SubType>UserControl</SubType>187 </Compile>188 <Compile Include="Views\AndFilterView.Designer.cs">189 <DependentUpon>AndFilterView.cs</DependentUpon>190 </Compile>191 184 <Compile Include="Views\SetComparisonStringAvailableValuesFilterView.cs"> 192 185 <SubType>UserControl</SubType> … … 200 193 <Compile Include="Views\NameSetComparisonStringAvailableValuesFilterView.Designer.cs"> 201 194 <DependentUpon>NameSetComparisonStringAvailableValuesFilterView.cs</DependentUpon> 202 </Compile>203 <Compile Include="Views\OrFilterView.cs">204 <SubType>UserControl</SubType>205 </Compile>206 <Compile Include="Views\OrFilterView.Designer.cs">207 <DependentUpon>OrFilterView.cs</DependentUpon>208 195 </Compile> 209 196 <Compile Include="Views\CombinedFilterView.cs"> -
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/OKBClient.cs
r5299 r5304 603 603 } 604 604 } 605 public RunCollection ConvertOKBRunsToOptimizationRuns(IItemCollection<Run> runs) {606 RunCollection runCollection = new RunCollection();607 foreach (Run run in runs) {608 Optimization.Run r = new Optimization.Run();609 foreach (ResultValue resultValue in run.ResultValues) {610 Result result = GetResult(resultValue.ResultId);611 if (resultValue is ResultBlobValue) {612 IItem item = null;613 using (MemoryStream stream = new MemoryStream(((ResultBlobValue)resultValue).Value)) {614 try {615 item = XmlParser.Deserialize<IItem>(stream);616 }617 catch (Exception ex) {618 ErrorHandling.ShowErrorDialog(ex);619 }620 stream.Close();621 }622 r.Results.Add(result.Name, item);623 } else if (resultValue is ResultBoolValue) {624 r.Results.Add(result.Name, new BoolValue(((ResultBoolValue)resultValue).Value));625 } else if (resultValue is ResultFloatValue) {626 r.Results.Add(result.Name, new DoubleValue(((ResultFloatValue)resultValue).Value));627 } else if (resultValue is ResultIntValue) {628 r.Results.Add(result.Name, new IntValue((int)((ResultIntValue)resultValue).Value));629 } else if (resultValue is ResultStringValue) {630 r.Results.Add(result.Name, new StringValue(((ResultStringValue)resultValue).Value));631 }632 }633 634 Experiment exp = GetExperiment(run.ExperimentId);635 foreach (AlgorithmParameterValue algorithmParameterValue in exp.AlgorithmParameterValues) {636 AlgorithmParameter algorithmParameter = GetAlgorithmParameter(algorithmParameterValue.AlgorithmParameterId);637 if (algorithmParameterValue is AlgorithmParameterBlobValue) {638 IItem item = null;639 using (MemoryStream stream = new MemoryStream(((AlgorithmParameterBlobValue)algorithmParameterValue).Value)) {640 try {641 item = XmlParser.Deserialize<IItem>(stream);642 }643 catch (Exception ex) {644 ErrorHandling.ShowErrorDialog(ex);645 }646 stream.Close();647 }648 r.Parameters.Add(algorithmParameter.Name, item);649 } else if (algorithmParameterValue is AlgorithmParameterBoolValue) {650 r.Parameters.Add(algorithmParameter.Name, new BoolValue(((AlgorithmParameterBoolValue)algorithmParameterValue).Value));651 } else if (algorithmParameterValue is AlgorithmParameterFloatValue) {652 r.Parameters.Add(algorithmParameter.Name, new DoubleValue(((AlgorithmParameterFloatValue)algorithmParameterValue).Value));653 } else if (algorithmParameterValue is AlgorithmParameterIntValue) {654 r.Parameters.Add(algorithmParameter.Name, new IntValue((int)((AlgorithmParameterIntValue)algorithmParameterValue).Value));655 } else if (algorithmParameterValue is AlgorithmParameterStringValue) {656 r.Parameters.Add(algorithmParameter.Name, new StringValue(((AlgorithmParameterStringValue)algorithmParameterValue).Value));657 }658 }659 foreach (ProblemParameterValue problemParameterValue in exp.ProblemParameterValues) {660 ProblemParameter problemParameter = GetProblemParameter(problemParameterValue.ProblemParameterId);661 if (problemParameterValue is ProblemParameterBlobValue) {662 IItem item = null;663 using (MemoryStream stream = new MemoryStream(((ProblemParameterBlobValue)problemParameterValue).Value)) {664 try {665 item = XmlParser.Deserialize<IItem>(stream);666 }667 catch (Exception ex) {668 ErrorHandling.ShowErrorDialog(ex);669 }670 stream.Close();671 }672 r.Parameters.Add(problemParameter.Name, item);673 } else if (problemParameterValue is ProblemParameterBoolValue) {674 r.Parameters.Add(problemParameter.Name, new BoolValue(((ProblemParameterBoolValue)problemParameterValue).Value));675 } else if (problemParameterValue is ProblemParameterFloatValue) {676 r.Parameters.Add(problemParameter.Name, new DoubleValue(((ProblemParameterFloatValue)problemParameterValue).Value));677 } else if (problemParameterValue is ProblemParameterIntValue) {678 r.Parameters.Add(problemParameter.Name, new IntValue((int)((ProblemParameterIntValue)problemParameterValue).Value));679 } else if (problemParameterValue is ProblemParameterStringValue) {680 r.Parameters.Add(problemParameter.Name, new StringValue(((ProblemParameterStringValue)problemParameterValue).Value));681 }682 }683 runCollection.Add(r);684 }685 return runCollection;686 }687 605 #endregion 688 606 … … 695 613 } 696 614 catch (Exception ex) { 697 ErrorHandling.ShowErrorDialog(" Refresh filters.", ex);698 return null;615 ErrorHandling.ShowErrorDialog("Get filters failed.", ex); 616 return Enumerable.Empty<Filter>(); 699 617 } 700 618 } … … 704 622 return GetFilters(false); 705 623 } 706 public long QueryNumberOfRuns(Filter filter) {707 try { 708 return CallQueryService<long>(x => x. QueryNumberOfRuns(filter));709 } 710 catch (Exception ex) { 711 ErrorHandling.ShowErrorDialog(" Refresh runs failed.", ex);624 public long GetNumberOfQueryResults(Filter filter) { 625 try { 626 return CallQueryService<long>(x => x.GetNumberOfQueryResults(filter)); 627 } 628 catch (Exception ex) { 629 ErrorHandling.ShowErrorDialog("Get number of query results failed.", ex); 712 630 return -1; 713 631 } 714 632 } 715 public ItemCollection<Run> QueryRuns(Filter filter) { 716 try { 717 ItemCollection<Run> runs = new ItemCollection<Run>(); 718 runs.AddRange(CallQueryService<List<Run>>(s => s.QueryRuns(filter)).OrderByDescending(x => x.CreatedDate)); 719 return runs; 720 } 721 catch (Exception ex) { 722 ErrorHandling.ShowErrorDialog("Refresh runs failed.", ex); 633 public IEnumerable<long> GetQueryResultIds(Filter filter) { 634 try { 635 return CallQueryService<IEnumerable<long>>(x => x.GetQueryResultIds(filter)); 636 } 637 catch (Exception ex) { 638 ErrorHandling.ShowErrorDialog("Get query result ids failed.", ex); 639 return Enumerable.Empty<long>(); 640 } 641 } 642 public IEnumerable<QueryResult> GetQueryResults(IEnumerable<long> ids) { 643 try { 644 return CallQueryService<IEnumerable<QueryResult>>(s => s.GetQueryResults(ids.ToList())); 645 } 646 catch (Exception ex) { 647 ErrorHandling.ShowErrorDialog("Get query results failed.", ex); 723 648 return null; 724 649 } -
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/OKBExperiment.cs
r5289 r5304 118 118 } 119 119 } 120 private RunCollection runs; 120 121 public RunCollection Runs { 121 get { 122 if (Algorithm != null) return Algorithm.Runs; 123 else return null; 124 } 122 get { return runs; } 125 123 } 126 124 127 125 #region Persistence Properties 128 126 [Storable(Name = "AlgorithmId")] 129 private long AlgorithmIdPersistence{127 private long StorableAlgorithmId { 130 128 get { return algorithmId; } 131 129 set { algorithmId = value; } 132 130 } 133 131 [Storable(Name = "Algorithm")] 134 private IAlgorithm AlgorithmPersistence{132 private IAlgorithm StorableAlgorithm { 135 133 get { return Algorithm; } 136 134 set { Algorithm = value; } 137 135 } 138 136 [Storable(Name = "ProblemId")] 139 private long ProblemIdPersistence{137 private long StorableProblemId { 140 138 get { return problemId; } 141 139 set { problemId = value; } 142 140 } 143 141 [Storable(Name = "Problem")] 144 private IProblem ProblemPersistence{142 private IProblem StorableProblem { 145 143 get { return Problem; } 146 144 set { Problem = value; } 145 } 146 [Storable(Name = "Runs")] 147 private RunCollection StorableRuns { 148 get { return runs; } 149 set { runs = value; } 147 150 } 148 151 #endregion … … 156 159 problemId = original.problemId; 157 160 problem = cloner.Clone(original.problem); 161 runs = cloner.Clone(original.runs); 158 162 RegisterAlgorithmEvents(); 159 163 } … … 162 166 name = ItemName; 163 167 description = ItemDescription; 168 runs = new RunCollection(); 164 169 } 165 170 … … 290 295 Algorithm.Started += new EventHandler(algorithm_Started); 291 296 Algorithm.Stopped += new EventHandler(algorithm_Stopped); 297 Algorithm.Runs.ItemsAdded += new Collections.CollectionItemsChangedEventHandler<IRun>(algorithm_Runs_ItemsAdded); 298 Algorithm.Runs.ItemsRemoved += new Collections.CollectionItemsChangedEventHandler<IRun>(algorithm_Runs_ItemsRemoved); 299 Algorithm.Runs.CollectionReset += new Collections.CollectionItemsChangedEventHandler<IRun>(algorithm_Runs_CollectionReset); 292 300 } 293 301 } … … 302 310 Algorithm.Started -= new EventHandler(algorithm_Started); 303 311 Algorithm.Stopped -= new EventHandler(algorithm_Stopped); 312 Algorithm.Runs.ItemsAdded -= new Collections.CollectionItemsChangedEventHandler<IRun>(algorithm_Runs_ItemsAdded); 313 Algorithm.Runs.ItemsRemoved -= new Collections.CollectionItemsChangedEventHandler<IRun>(algorithm_Runs_ItemsRemoved); 314 Algorithm.Runs.CollectionReset -= new Collections.CollectionItemsChangedEventHandler<IRun>(algorithm_Runs_CollectionReset); 304 315 } 305 316 } … … 334 345 OnExceptionOccurred(ex); 335 346 } 347 } 348 private void algorithm_Runs_ItemsAdded(object sender, Collections.CollectionItemsChangedEventArgs<IRun> e) { 349 runs.AddRange(e.Items); 350 } 351 private void algorithm_Runs_ItemsRemoved(object sender, Collections.CollectionItemsChangedEventArgs<IRun> e) { 352 runs.RemoveRange(e.Items); 353 } 354 private void algorithm_Runs_CollectionReset(object sender, Collections.CollectionItemsChangedEventArgs<IRun> e) { 355 runs.Clear(); 356 runs.AddRange(algorithm.Runs); 336 357 } 337 358 #endregion -
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/ServiceClients/OKBServiceClients.cs
r5299 r5304 576 576 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 577 577 [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 578 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterStringValue))] 579 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue))] 578 580 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterBlobValue))] 579 581 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterIntValue))] 580 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterBoolValue))]581 582 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterFloatValue))] 582 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AlgorithmParameterStringValue))]583 583 public partial class AlgorithmParameterValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { 584 584 … … 652 652 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 653 653 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 654 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterBlobValue))] 655 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterIntValue))] 656 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterFloatValue))] 657 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterStringValue))] 654 658 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterBoolValue))] 655 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterFloatValue))]656 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterIntValue))]657 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterBlobValue))]658 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ProblemParameterStringValue))]659 659 public partial class ProblemParameterValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { 660 660 … … 727 727 [System.Diagnostics.DebuggerStepThroughAttribute()] 728 728 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 729 [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 730 public partial class AlgorithmParameterStringValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue { 731 732 private string ValueField; 733 734 [System.Runtime.Serialization.DataMemberAttribute()] 735 public string Value { 736 get { 737 return this.ValueField; 738 } 739 set { 740 if ((object.ReferenceEquals(this.ValueField, value) != true)) { 741 this.ValueField = value; 742 this.RaisePropertyChanged("Value"); 743 } 744 } 745 } 746 } 747 748 [System.Diagnostics.DebuggerStepThroughAttribute()] 749 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 750 [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 751 public partial class AlgorithmParameterBoolValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue { 752 753 private bool ValueField; 754 755 [System.Runtime.Serialization.DataMemberAttribute()] 756 public bool Value { 757 get { 758 return this.ValueField; 759 } 760 set { 761 if ((this.ValueField.Equals(value) != true)) { 762 this.ValueField = value; 763 this.RaisePropertyChanged("Value"); 764 } 765 } 766 } 767 } 768 769 [System.Diagnostics.DebuggerStepThroughAttribute()] 770 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 729 771 [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 730 772 public partial class AlgorithmParameterBlobValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue { … … 769 811 [System.Diagnostics.DebuggerStepThroughAttribute()] 770 812 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 771 [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]772 public partial class AlgorithmParameterBoolValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue {773 774 private bool ValueField;775 776 [System.Runtime.Serialization.DataMemberAttribute()]777 public bool Value {778 get {779 return this.ValueField;780 }781 set {782 if ((this.ValueField.Equals(value) != true)) {783 this.ValueField = value;784 this.RaisePropertyChanged("Value");785 }786 }787 }788 }789 790 [System.Diagnostics.DebuggerStepThroughAttribute()]791 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]792 813 [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 793 814 public partial class AlgorithmParameterFloatValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue { … … 811 832 [System.Diagnostics.DebuggerStepThroughAttribute()] 812 833 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 813 [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 814 public partial class AlgorithmParameterStringValue : HeuristicLab.Clients.OKB.AlgorithmParameterValue { 834 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 835 public partial class ProblemParameterBlobValue : HeuristicLab.Clients.OKB.ProblemParameterValue { 836 837 private byte[] ValueField; 838 839 [System.Runtime.Serialization.DataMemberAttribute()] 840 public byte[] Value { 841 get { 842 return this.ValueField; 843 } 844 set { 845 if ((object.ReferenceEquals(this.ValueField, value) != true)) { 846 this.ValueField = value; 847 this.RaisePropertyChanged("Value"); 848 } 849 } 850 } 851 } 852 853 [System.Diagnostics.DebuggerStepThroughAttribute()] 854 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 855 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 856 public partial class ProblemParameterIntValue : HeuristicLab.Clients.OKB.ProblemParameterValue { 857 858 private long ValueField; 859 860 [System.Runtime.Serialization.DataMemberAttribute()] 861 public long Value { 862 get { 863 return this.ValueField; 864 } 865 set { 866 if ((this.ValueField.Equals(value) != true)) { 867 this.ValueField = value; 868 this.RaisePropertyChanged("Value"); 869 } 870 } 871 } 872 } 873 874 [System.Diagnostics.DebuggerStepThroughAttribute()] 875 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 876 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 877 public partial class ProblemParameterFloatValue : HeuristicLab.Clients.OKB.ProblemParameterValue { 878 879 private double ValueField; 880 881 [System.Runtime.Serialization.DataMemberAttribute()] 882 public double Value { 883 get { 884 return this.ValueField; 885 } 886 set { 887 if ((this.ValueField.Equals(value) != true)) { 888 this.ValueField = value; 889 this.RaisePropertyChanged("Value"); 890 } 891 } 892 } 893 } 894 895 [System.Diagnostics.DebuggerStepThroughAttribute()] 896 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 897 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 898 public partial class ProblemParameterStringValue : HeuristicLab.Clients.OKB.ProblemParameterValue { 815 899 816 900 private string ValueField; … … 853 937 [System.Diagnostics.DebuggerStepThroughAttribute()] 854 938 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 855 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]856 public partial class ProblemParameterFloatValue : HeuristicLab.Clients.OKB.ProblemParameterValue {857 858 private double ValueField;859 860 [System.Runtime.Serialization.DataMemberAttribute()]861 public double Value {862 get {863 return this.ValueField;864 }865 set {866 if ((this.ValueField.Equals(value) != true)) {867 this.ValueField = value;868 this.RaisePropertyChanged("Value");869 }870 }871 }872 }873 874 [System.Diagnostics.DebuggerStepThroughAttribute()]875 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]876 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]877 public partial class ProblemParameterIntValue : HeuristicLab.Clients.OKB.ProblemParameterValue {878 879 private long ValueField;880 881 [System.Runtime.Serialization.DataMemberAttribute()]882 public long Value {883 get {884 return this.ValueField;885 }886 set {887 if ((this.ValueField.Equals(value) != true)) {888 this.ValueField = value;889 this.RaisePropertyChanged("Value");890 }891 }892 }893 }894 895 [System.Diagnostics.DebuggerStepThroughAttribute()]896 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]897 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]898 public partial class ProblemParameterBlobValue : HeuristicLab.Clients.OKB.ProblemParameterValue {899 900 private byte[] ValueField;901 902 [System.Runtime.Serialization.DataMemberAttribute()]903 public byte[] Value {904 get {905 return this.ValueField;906 }907 set {908 if ((object.ReferenceEquals(this.ValueField, value) != true)) {909 this.ValueField = value;910 this.RaisePropertyChanged("Value");911 }912 }913 }914 }915 916 [System.Diagnostics.DebuggerStepThroughAttribute()]917 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]918 [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemParameterStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]919 public partial class ProblemParameterStringValue : HeuristicLab.Clients.OKB.ProblemParameterValue {920 921 private string ValueField;922 923 [System.Runtime.Serialization.DataMemberAttribute()]924 public string Value {925 get {926 return this.ValueField;927 }928 set {929 if ((object.ReferenceEquals(this.ValueField, value) != true)) {930 this.ValueField = value;931 this.RaisePropertyChanged("Value");932 }933 }934 }935 }936 937 [System.Diagnostics.DebuggerStepThroughAttribute()]938 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]939 939 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 940 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultBlobValue))] 940 941 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultBoolValue))] 941 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultIntValue))]942 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultBlobValue))]943 942 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultStringValue))] 944 943 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultFloatValue))] 944 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.ResultIntValue))] 945 945 public partial class ResultValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { 946 946 … … 1013 1013 [System.Diagnostics.DebuggerStepThroughAttribute()] 1014 1014 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1015 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1016 public partial class ResultBlobValue : HeuristicLab.Clients.OKB.ResultValue { 1017 1018 private byte[] ValueField; 1019 1020 [System.Runtime.Serialization.DataMemberAttribute()] 1021 public byte[] Value { 1022 get { 1023 return this.ValueField; 1024 } 1025 set { 1026 if ((object.ReferenceEquals(this.ValueField, value) != true)) { 1027 this.ValueField = value; 1028 this.RaisePropertyChanged("Value"); 1029 } 1030 } 1031 } 1032 } 1033 1034 [System.Diagnostics.DebuggerStepThroughAttribute()] 1035 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1015 1036 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1016 1037 public partial class ResultBoolValue : HeuristicLab.Clients.OKB.ResultValue { … … 1034 1055 [System.Diagnostics.DebuggerStepThroughAttribute()] 1035 1056 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1057 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1058 public partial class ResultStringValue : HeuristicLab.Clients.OKB.ResultValue { 1059 1060 private string ValueField; 1061 1062 [System.Runtime.Serialization.DataMemberAttribute()] 1063 public string Value { 1064 get { 1065 return this.ValueField; 1066 } 1067 set { 1068 if ((object.ReferenceEquals(this.ValueField, value) != true)) { 1069 this.ValueField = value; 1070 this.RaisePropertyChanged("Value"); 1071 } 1072 } 1073 } 1074 } 1075 1076 [System.Diagnostics.DebuggerStepThroughAttribute()] 1077 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1078 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1079 public partial class ResultFloatValue : HeuristicLab.Clients.OKB.ResultValue { 1080 1081 private double ValueField; 1082 1083 [System.Runtime.Serialization.DataMemberAttribute()] 1084 public double Value { 1085 get { 1086 return this.ValueField; 1087 } 1088 set { 1089 if ((this.ValueField.Equals(value) != true)) { 1090 this.ValueField = value; 1091 this.RaisePropertyChanged("Value"); 1092 } 1093 } 1094 } 1095 } 1096 1097 [System.Diagnostics.DebuggerStepThroughAttribute()] 1098 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1036 1099 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1037 1100 public partial class ResultIntValue : HeuristicLab.Clients.OKB.ResultValue { … … 1041 1104 [System.Runtime.Serialization.DataMemberAttribute()] 1042 1105 public long Value { 1043 get {1044 return this.ValueField;1045 }1046 set {1047 if ((this.ValueField.Equals(value) != true)) {1048 this.ValueField = value;1049 this.RaisePropertyChanged("Value");1050 }1051 }1052 }1053 }1054 1055 [System.Diagnostics.DebuggerStepThroughAttribute()]1056 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]1057 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]1058 public partial class ResultBlobValue : HeuristicLab.Clients.OKB.ResultValue {1059 1060 private byte[] ValueField;1061 1062 [System.Runtime.Serialization.DataMemberAttribute()]1063 public byte[] Value {1064 get {1065 return this.ValueField;1066 }1067 set {1068 if ((object.ReferenceEquals(this.ValueField, value) != true)) {1069 this.ValueField = value;1070 this.RaisePropertyChanged("Value");1071 }1072 }1073 }1074 }1075 1076 [System.Diagnostics.DebuggerStepThroughAttribute()]1077 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]1078 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]1079 public partial class ResultStringValue : HeuristicLab.Clients.OKB.ResultValue {1080 1081 private string ValueField;1082 1083 [System.Runtime.Serialization.DataMemberAttribute()]1084 public string Value {1085 get {1086 return this.ValueField;1087 }1088 set {1089 if ((object.ReferenceEquals(this.ValueField, value) != true)) {1090 this.ValueField = value;1091 this.RaisePropertyChanged("Value");1092 }1093 }1094 }1095 }1096 1097 [System.Diagnostics.DebuggerStepThroughAttribute()]1098 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]1099 [System.Runtime.Serialization.DataContractAttribute(Name = "ResultFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]1100 public partial class ResultFloatValue : HeuristicLab.Clients.OKB.ResultValue {1101 1102 private double ValueField;1103 1104 [System.Runtime.Serialization.DataMemberAttribute()]1105 public double Value {1106 1106 get { 1107 1107 return this.ValueField; … … 1266 1266 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringFilter))] 1267 1267 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.SetComparisonStringAvailableValuesFilter))] 1268 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.CombinedFilter))] 1268 1269 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonFilter))] 1269 1270 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonDateTimeFilter))] 1271 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))] 1270 1272 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonDoubleFilter))] 1271 1273 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonLongFilter))] 1272 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))]1273 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.CombinedFilter))]1274 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AndFilter))]1275 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrFilter))]1276 1274 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.EqualityComparisonFilter))] 1277 1275 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameEqualityComparisonBoolFilter))] … … 1458 1456 [System.Diagnostics.DebuggerStepThroughAttribute()] 1459 1457 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1458 [System.Runtime.Serialization.DataContractAttribute(Name = "CombinedFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1459 public partial class CombinedFilter : HeuristicLab.Clients.OKB.Filter { 1460 1461 private System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> FiltersField; 1462 1463 private HeuristicLab.Clients.OKB.BooleanOperation OperationField; 1464 1465 [System.Runtime.Serialization.DataMemberAttribute()] 1466 public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> Filters { 1467 get { 1468 return this.FiltersField; 1469 } 1470 set { 1471 if ((object.ReferenceEquals(this.FiltersField, value) != true)) { 1472 this.FiltersField = value; 1473 this.RaisePropertyChanged("Filters"); 1474 } 1475 } 1476 } 1477 1478 [System.Runtime.Serialization.DataMemberAttribute()] 1479 public HeuristicLab.Clients.OKB.BooleanOperation Operation { 1480 get { 1481 return this.OperationField; 1482 } 1483 set { 1484 if ((this.OperationField.Equals(value) != true)) { 1485 this.OperationField = value; 1486 this.RaisePropertyChanged("Operation"); 1487 } 1488 } 1489 } 1490 } 1491 1492 [System.Diagnostics.DebuggerStepThroughAttribute()] 1493 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1460 1494 [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1461 1495 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonDateTimeFilter))] 1496 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))] 1462 1497 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonDoubleFilter))] 1463 1498 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.NameOrdinalComparisonLongFilter))] 1464 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrdinalComparisonLongFilter))]1465 1499 public partial class OrdinalComparisonFilter : HeuristicLab.Clients.OKB.Filter { 1466 1500 … … 1504 1538 [System.Diagnostics.DebuggerStepThroughAttribute()] 1505 1539 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1540 [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonLongFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1541 public partial class OrdinalComparisonLongFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter { 1542 1543 private long ValueField; 1544 1545 [System.Runtime.Serialization.DataMemberAttribute()] 1546 public long Value { 1547 get { 1548 return this.ValueField; 1549 } 1550 set { 1551 if ((this.ValueField.Equals(value) != true)) { 1552 this.ValueField = value; 1553 this.RaisePropertyChanged("Value"); 1554 } 1555 } 1556 } 1557 } 1558 1559 [System.Diagnostics.DebuggerStepThroughAttribute()] 1560 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1506 1561 [System.Runtime.Serialization.DataContractAttribute(Name = "NameOrdinalComparisonDoubleFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1507 1562 public partial class NameOrdinalComparisonDoubleFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter { … … 1572 1627 } 1573 1628 } 1574 }1575 1576 [System.Diagnostics.DebuggerStepThroughAttribute()]1577 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]1578 [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparisonLongFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]1579 public partial class OrdinalComparisonLongFilter : HeuristicLab.Clients.OKB.OrdinalComparisonFilter {1580 1581 private long ValueField;1582 1583 [System.Runtime.Serialization.DataMemberAttribute()]1584 public long Value {1585 get {1586 return this.ValueField;1587 }1588 set {1589 if ((this.ValueField.Equals(value) != true)) {1590 this.ValueField = value;1591 this.RaisePropertyChanged("Value");1592 }1593 }1594 }1595 }1596 1597 [System.Diagnostics.DebuggerStepThroughAttribute()]1598 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]1599 [System.Runtime.Serialization.DataContractAttribute(Name = "CombinedFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]1600 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.AndFilter))]1601 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.OrFilter))]1602 public partial class CombinedFilter : HeuristicLab.Clients.OKB.Filter {1603 1604 private System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> FiltersField;1605 1606 [System.Runtime.Serialization.DataMemberAttribute()]1607 public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> Filters {1608 get {1609 return this.FiltersField;1610 }1611 set {1612 if ((object.ReferenceEquals(this.FiltersField, value) != true)) {1613 this.FiltersField = value;1614 this.RaisePropertyChanged("Filters");1615 }1616 }1617 }1618 }1619 1620 [System.Diagnostics.DebuggerStepThroughAttribute()]1621 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]1622 [System.Runtime.Serialization.DataContractAttribute(Name = "AndFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]1623 public partial class AndFilter : HeuristicLab.Clients.OKB.CombinedFilter {1624 }1625 1626 [System.Diagnostics.DebuggerStepThroughAttribute()]1627 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]1628 [System.Runtime.Serialization.DataContractAttribute(Name = "OrFilter", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")]1629 public partial class OrFilter : HeuristicLab.Clients.OKB.CombinedFilter {1630 1629 } 1631 1630 … … 1743 1742 1744 1743 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1744 [System.Runtime.Serialization.DataContractAttribute(Name = "BooleanOperation", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1745 public enum BooleanOperation : int { 1746 1747 [System.Runtime.Serialization.EnumMemberAttribute()] 1748 And = 0, 1749 1750 [System.Runtime.Serialization.EnumMemberAttribute()] 1751 Or = 1, 1752 } 1753 1754 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1745 1755 [System.Runtime.Serialization.DataContractAttribute(Name = "OrdinalComparison", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1746 1756 public enum OrdinalComparison : int { … … 1774 1784 [System.Runtime.Serialization.EnumMemberAttribute()] 1775 1785 NotEqual = 1, 1786 } 1787 1788 [System.Diagnostics.DebuggerStepThroughAttribute()] 1789 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1790 [System.Runtime.Serialization.DataContractAttribute(Name = "QueryResult", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1791 public partial class QueryResult : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { 1792 1793 private System.Runtime.Serialization.ExtensionDataObject extensionDataField; 1794 1795 private System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryValue> AlgorithmParametersField; 1796 1797 private long IdField; 1798 1799 private System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryValue> ProblemParametersField; 1800 1801 private System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryValue> ResultsField; 1802 1803 public System.Runtime.Serialization.ExtensionDataObject ExtensionData { 1804 get { 1805 return this.extensionDataField; 1806 } 1807 set { 1808 this.extensionDataField = value; 1809 } 1810 } 1811 1812 [System.Runtime.Serialization.DataMemberAttribute()] 1813 public System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryValue> AlgorithmParameters { 1814 get { 1815 return this.AlgorithmParametersField; 1816 } 1817 set { 1818 if ((object.ReferenceEquals(this.AlgorithmParametersField, value) != true)) { 1819 this.AlgorithmParametersField = value; 1820 this.RaisePropertyChanged("AlgorithmParameters"); 1821 } 1822 } 1823 } 1824 1825 [System.Runtime.Serialization.DataMemberAttribute()] 1826 public long Id { 1827 get { 1828 return this.IdField; 1829 } 1830 set { 1831 if ((this.IdField.Equals(value) != true)) { 1832 this.IdField = value; 1833 this.RaisePropertyChanged("Id"); 1834 } 1835 } 1836 } 1837 1838 [System.Runtime.Serialization.DataMemberAttribute()] 1839 public System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryValue> ProblemParameters { 1840 get { 1841 return this.ProblemParametersField; 1842 } 1843 set { 1844 if ((object.ReferenceEquals(this.ProblemParametersField, value) != true)) { 1845 this.ProblemParametersField = value; 1846 this.RaisePropertyChanged("ProblemParameters"); 1847 } 1848 } 1849 } 1850 1851 [System.Runtime.Serialization.DataMemberAttribute()] 1852 public System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryValue> Results { 1853 get { 1854 return this.ResultsField; 1855 } 1856 set { 1857 if ((object.ReferenceEquals(this.ResultsField, value) != true)) { 1858 this.ResultsField = value; 1859 this.RaisePropertyChanged("Results"); 1860 } 1861 } 1862 } 1863 1864 public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; 1865 1866 protected void RaisePropertyChanged(string propertyName) { 1867 System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; 1868 if ((propertyChanged != null)) { 1869 propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); 1870 } 1871 } 1872 } 1873 1874 [System.Diagnostics.DebuggerStepThroughAttribute()] 1875 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1876 [System.Runtime.Serialization.DataContractAttribute(Name = "QueryValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1877 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.QueryIntValue))] 1878 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.QueryStringValue))] 1879 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.QueryFloatValue))] 1880 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.QueryBoolValue))] 1881 [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.QueryBlobValue))] 1882 public partial class QueryValue : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged { 1883 1884 private System.Runtime.Serialization.ExtensionDataObject extensionDataField; 1885 1886 private string NameField; 1887 1888 public System.Runtime.Serialization.ExtensionDataObject ExtensionData { 1889 get { 1890 return this.extensionDataField; 1891 } 1892 set { 1893 this.extensionDataField = value; 1894 } 1895 } 1896 1897 [System.Runtime.Serialization.DataMemberAttribute()] 1898 public string Name { 1899 get { 1900 return this.NameField; 1901 } 1902 set { 1903 if ((object.ReferenceEquals(this.NameField, value) != true)) { 1904 this.NameField = value; 1905 this.RaisePropertyChanged("Name"); 1906 } 1907 } 1908 } 1909 1910 public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; 1911 1912 protected void RaisePropertyChanged(string propertyName) { 1913 System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged; 1914 if ((propertyChanged != null)) { 1915 propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); 1916 } 1917 } 1918 } 1919 1920 [System.Diagnostics.DebuggerStepThroughAttribute()] 1921 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1922 [System.Runtime.Serialization.DataContractAttribute(Name = "QueryIntValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1923 public partial class QueryIntValue : HeuristicLab.Clients.OKB.QueryValue { 1924 1925 private long ValueField; 1926 1927 [System.Runtime.Serialization.DataMemberAttribute()] 1928 public long Value { 1929 get { 1930 return this.ValueField; 1931 } 1932 set { 1933 if ((this.ValueField.Equals(value) != true)) { 1934 this.ValueField = value; 1935 this.RaisePropertyChanged("Value"); 1936 } 1937 } 1938 } 1939 } 1940 1941 [System.Diagnostics.DebuggerStepThroughAttribute()] 1942 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1943 [System.Runtime.Serialization.DataContractAttribute(Name = "QueryStringValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1944 public partial class QueryStringValue : HeuristicLab.Clients.OKB.QueryValue { 1945 1946 private string ValueField; 1947 1948 [System.Runtime.Serialization.DataMemberAttribute()] 1949 public string Value { 1950 get { 1951 return this.ValueField; 1952 } 1953 set { 1954 if ((object.ReferenceEquals(this.ValueField, value) != true)) { 1955 this.ValueField = value; 1956 this.RaisePropertyChanged("Value"); 1957 } 1958 } 1959 } 1960 } 1961 1962 [System.Diagnostics.DebuggerStepThroughAttribute()] 1963 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1964 [System.Runtime.Serialization.DataContractAttribute(Name = "QueryFloatValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1965 public partial class QueryFloatValue : HeuristicLab.Clients.OKB.QueryValue { 1966 1967 private double ValueField; 1968 1969 [System.Runtime.Serialization.DataMemberAttribute()] 1970 public double Value { 1971 get { 1972 return this.ValueField; 1973 } 1974 set { 1975 if ((this.ValueField.Equals(value) != true)) { 1976 this.ValueField = value; 1977 this.RaisePropertyChanged("Value"); 1978 } 1979 } 1980 } 1981 } 1982 1983 [System.Diagnostics.DebuggerStepThroughAttribute()] 1984 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 1985 [System.Runtime.Serialization.DataContractAttribute(Name = "QueryBoolValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 1986 public partial class QueryBoolValue : HeuristicLab.Clients.OKB.QueryValue { 1987 1988 private bool ValueField; 1989 1990 [System.Runtime.Serialization.DataMemberAttribute()] 1991 public bool Value { 1992 get { 1993 return this.ValueField; 1994 } 1995 set { 1996 if ((this.ValueField.Equals(value) != true)) { 1997 this.ValueField = value; 1998 this.RaisePropertyChanged("Value"); 1999 } 2000 } 2001 } 2002 } 2003 2004 [System.Diagnostics.DebuggerStepThroughAttribute()] 2005 [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")] 2006 [System.Runtime.Serialization.DataContractAttribute(Name = "QueryBlobValue", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.DataTransfer")] 2007 public partial class QueryBlobValue : HeuristicLab.Clients.OKB.QueryValue { 2008 2009 private string DataTypeNameField; 2010 2011 private byte[] ValueField; 2012 2013 [System.Runtime.Serialization.DataMemberAttribute()] 2014 public string DataTypeName { 2015 get { 2016 return this.DataTypeNameField; 2017 } 2018 set { 2019 if ((object.ReferenceEquals(this.DataTypeNameField, value) != true)) { 2020 this.DataTypeNameField = value; 2021 this.RaisePropertyChanged("DataTypeName"); 2022 } 2023 } 2024 } 2025 2026 [System.Runtime.Serialization.DataMemberAttribute()] 2027 public byte[] Value { 2028 get { 2029 return this.ValueField; 2030 } 2031 set { 2032 if ((object.ReferenceEquals(this.ValueField, value) != true)) { 2033 this.ValueField = value; 2034 this.RaisePropertyChanged("Value"); 2035 } 2036 } 2037 } 1776 2038 } 1777 2039 … … 2243 2505 System.Collections.Generic.List<HeuristicLab.Clients.OKB.Filter> GetFilters(); 2244 2506 2245 [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IQueryService/QueryNumberOfRuns", ReplyAction = "http://tempuri.org/IQueryService/QueryNumberOfRunsResponse")] 2246 long QueryNumberOfRuns(HeuristicLab.Clients.OKB.Filter filter); 2247 2248 [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IQueryService/QueryRuns", ReplyAction = "http://tempuri.org/IQueryService/QueryRunsResponse")] 2249 System.Collections.Generic.List<HeuristicLab.Clients.OKB.Run> QueryRuns(HeuristicLab.Clients.OKB.Filter filter); 2507 [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IQueryService/GetNumberOfQueryResults", ReplyAction = "http://tempuri.org/IQueryService/GetNumberOfQueryResultsResponse")] 2508 long GetNumberOfQueryResults(HeuristicLab.Clients.OKB.Filter filter); 2509 2510 [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IQueryService/GetQueryResultIds", ReplyAction = "http://tempuri.org/IQueryService/GetQueryResultIdsResponse")] 2511 System.Collections.Generic.List<long> GetQueryResultIds(HeuristicLab.Clients.OKB.Filter filter); 2512 2513 [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IQueryService/GetQueryResults", ReplyAction = "http://tempuri.org/IQueryService/GetQueryResultsResponse")] 2514 System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryResult> GetQueryResults(System.Collections.Generic.List<long> ids); 2250 2515 } 2251 2516 … … 2281 2546 } 2282 2547 2283 public long QueryNumberOfRuns(HeuristicLab.Clients.OKB.Filter filter) { 2284 return base.Channel.QueryNumberOfRuns(filter); 2285 } 2286 2287 public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Run> QueryRuns(HeuristicLab.Clients.OKB.Filter filter) { 2288 return base.Channel.QueryRuns(filter); 2548 public long GetNumberOfQueryResults(HeuristicLab.Clients.OKB.Filter filter) { 2549 return base.Channel.GetNumberOfQueryResults(filter); 2550 } 2551 2552 public System.Collections.Generic.List<long> GetQueryResultIds(HeuristicLab.Clients.OKB.Filter filter) { 2553 return base.Channel.GetQueryResultIds(filter); 2554 } 2555 2556 public System.Collections.Generic.List<HeuristicLab.Clients.OKB.QueryResult> GetQueryResults(System.Collections.Generic.List<long> ids) { 2557 return base.Channel.GetQueryResults(ids); 2289 2558 } 2290 2559 } -
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Views/CombinedFilterView.cs
r5289 r5304 20 20 #endregion 21 21 22 using System; 22 23 using System.Collections.Generic; 23 24 using System.Windows.Forms; … … 48 49 base.OnContentChanged(); 49 50 RemoveFilters(); 51 label.Text = string.Empty; 50 52 if (Content != null) { 53 string nl = Environment.NewLine; 54 label.Text = Content.Operation == BooleanOperation.And ? "A" + nl + "N" + nl + "D" : "O" + nl + "R"; 55 51 56 foreach (Filter filter in Content.Filters) 52 57 AddFilter(filter); -
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Views/QueryView.Designer.cs
r5295 r5304 46 46 private void InitializeComponent() { 47 47 this.components = new System.ComponentModel.Container(); 48 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(QueryView)); 48 49 this.refreshResultsButton = new System.Windows.Forms.Button(); 49 50 this.toolTip = new System.Windows.Forms.ToolTip(this.components); 50 this.showRunsButton = new System.Windows.Forms.Button(); 51 this.runCollectionView = new HeuristicLab.Clients.OKB.RunCollectionView(); 51 this.runCollectionView = new HeuristicLab.Optimization.Views.RunCollectionView(); 52 52 this.splitContainer = new System.Windows.Forms.SplitContainer(); 53 53 this.filtersGroupBox = new System.Windows.Forms.GroupBox(); 54 this.filterPanel = new System.Windows.Forms.Panel(); 54 55 this.resultsGroupBox = new System.Windows.Forms.GroupBox(); 55 this.nrOfRunsButton = new System.Windows.Forms.Button(); 56 this.filterPanel = new System.Windows.Forms.Panel(); 56 this.deserializeBlobsCheckBox = new System.Windows.Forms.CheckBox(); 57 57 ((System.ComponentModel.ISupportInitialize)(this.splitContainer)).BeginInit(); 58 58 this.splitContainer.Panel1.SuspendLayout(); … … 73 73 this.refreshResultsButton.UseVisualStyleBackColor = true; 74 74 this.refreshResultsButton.Click += new System.EventHandler(this.refreshResultsButton_Click); 75 //76 // showRunsButton77 //78 this.showRunsButton.Location = new System.Drawing.Point(36, 19);79 this.showRunsButton.Name = "showRunsButton";80 this.showRunsButton.Size = new System.Drawing.Size(75, 24);81 this.showRunsButton.TabIndex = 1;82 this.showRunsButton.Text = "&Show Runs";83 this.showRunsButton.UseVisualStyleBackColor = true;84 this.showRunsButton.Click += new System.EventHandler(this.showRunsButton_Click);85 75 // 86 76 // runCollectionView … … 130 120 this.filtersGroupBox.Text = "Filters"; 131 121 // 132 // resultsGroupBox133 //134 this.resultsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)135 | System.Windows.Forms.AnchorStyles.Left)136 | System.Windows.Forms.AnchorStyles.Right)));137 this.resultsGroupBox.Controls.Add(this.nrOfRunsButton);138 this.resultsGroupBox.Controls.Add(this.refreshResultsButton);139 this.resultsGroupBox.Controls.Add(this.runCollectionView);140 this.resultsGroupBox.Controls.Add(this.showRunsButton);141 this.resultsGroupBox.Location = new System.Drawing.Point(0, 3);142 this.resultsGroupBox.Name = "resultsGroupBox";143 this.resultsGroupBox.Size = new System.Drawing.Size(734, 211);144 this.resultsGroupBox.TabIndex = 0;145 this.resultsGroupBox.TabStop = false;146 this.resultsGroupBox.Text = "Results";147 //148 // nrOfRunsButton149 //150 this.nrOfRunsButton.Location = new System.Drawing.Point(117, 19);151 this.nrOfRunsButton.Name = "nrOfRunsButton";152 this.nrOfRunsButton.Size = new System.Drawing.Size(75, 23);153 this.nrOfRunsButton.TabIndex = 3;154 this.nrOfRunsButton.Text = "No. of Runs";155 this.nrOfRunsButton.UseVisualStyleBackColor = true;156 this.nrOfRunsButton.Click += new System.EventHandler(this.nrOfRunsButton_Click);157 //158 122 // filterPanel 159 123 // … … 165 129 this.filterPanel.Size = new System.Drawing.Size(722, 189); 166 130 this.filterPanel.TabIndex = 0; 131 // 132 // resultsGroupBox 133 // 134 this.resultsGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 135 | System.Windows.Forms.AnchorStyles.Left) 136 | System.Windows.Forms.AnchorStyles.Right))); 137 this.resultsGroupBox.Controls.Add(this.deserializeBlobsCheckBox); 138 this.resultsGroupBox.Controls.Add(this.refreshResultsButton); 139 this.resultsGroupBox.Controls.Add(this.runCollectionView); 140 this.resultsGroupBox.Location = new System.Drawing.Point(0, 3); 141 this.resultsGroupBox.Name = "resultsGroupBox"; 142 this.resultsGroupBox.Size = new System.Drawing.Size(734, 211); 143 this.resultsGroupBox.TabIndex = 0; 144 this.resultsGroupBox.TabStop = false; 145 this.resultsGroupBox.Text = "Results"; 146 // 147 // deserializeBlobsCheckBox 148 // 149 this.deserializeBlobsCheckBox.AutoSize = true; 150 this.deserializeBlobsCheckBox.Checked = true; 151 this.deserializeBlobsCheckBox.CheckState = System.Windows.Forms.CheckState.Checked; 152 this.deserializeBlobsCheckBox.Location = new System.Drawing.Point(62, 24); 153 this.deserializeBlobsCheckBox.Name = "deserializeBlobsCheckBox"; 154 this.deserializeBlobsCheckBox.Size = new System.Drawing.Size(106, 17); 155 this.deserializeBlobsCheckBox.TabIndex = 3; 156 this.deserializeBlobsCheckBox.Text = "&Deserialize Blobs"; 157 this.deserializeBlobsCheckBox.UseVisualStyleBackColor = true; 167 158 // 168 159 // QueryView … … 179 170 this.filtersGroupBox.ResumeLayout(false); 180 171 this.resultsGroupBox.ResumeLayout(false); 172 this.resultsGroupBox.PerformLayout(); 181 173 this.ResumeLayout(false); 182 174 … … 187 179 private System.Windows.Forms.Button refreshResultsButton; 188 180 private System.Windows.Forms.ToolTip toolTip; 189 private RunCollectionView runCollectionView; 190 private System.Windows.Forms.Button showRunsButton; 181 private HeuristicLab.Optimization.Views.RunCollectionView runCollectionView; 191 182 private System.Windows.Forms.SplitContainer splitContainer; 192 183 private System.Windows.Forms.GroupBox filtersGroupBox; 193 184 private System.Windows.Forms.GroupBox resultsGroupBox; 194 private System.Windows.Forms.Button nrOfRunsButton;195 185 private System.Windows.Forms.Panel filterPanel; 186 private System.Windows.Forms.CheckBox deserializeBlobsCheckBox; 196 187 197 188 } -
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Views/QueryView.cs
r5295 r5304 21 21 22 22 using System; 23 using System.Collections.Generic; 24 using System.IO; 23 25 using System.Linq; 24 26 using System.Windows.Forms; 27 using HeuristicLab.Core; 28 using HeuristicLab.Data; 25 29 using HeuristicLab.MainForm; 26 30 using HeuristicLab.MainForm.WindowsForms; 31 using HeuristicLab.Optimization; 32 using HeuristicLab.Persistence.Default.Xml; 27 33 28 34 namespace HeuristicLab.Clients.OKB { … … 30 36 [Content(typeof(OKBClient), false)] 31 37 public sealed partial class QueryView : HeuristicLab.MainForm.WindowsForms.View { 32 private AndFilterView andFilterView;38 private CombinedFilterView combinedFilterView; 33 39 34 40 public QueryView() { … … 40 46 this.Cursor = Cursors.AppStarting; 41 47 42 Func< AndFilter> func = () => {43 return OKBClient.Instance.GetFilters().OfType< AndFilter>().FirstOrDefault();48 Func<CombinedFilter> func = () => { 49 return OKBClient.Instance.GetFilters().OfType<CombinedFilter>().Where(x => x.Operation == BooleanOperation.And).FirstOrDefault(); 44 50 }; 45 51 46 52 func.BeginInvoke((IAsyncResult result) => { 47 AndFilter filter = func.EndInvoke(result);48 if (InvokeRequired) Invoke(new Action< AndFilter>(FinishedLoadingAndFilter), filter);49 else FinishedLoading AndFilter(filter);53 CombinedFilter filter = func.EndInvoke(result); 54 if (InvokeRequired) Invoke(new Action<CombinedFilter>(FinishedLoadingFilter), filter); 55 else FinishedLoadingFilter(filter); 50 56 }, null); 51 57 } 52 58 53 private void FinishedLoading AndFilter(AndFilter filter) {59 private void FinishedLoadingFilter(CombinedFilter filter) { 54 60 if (filter != null) { 55 andFilterView = (AndFilterView)MainFormManager.CreateView(typeof(AndFilterView));56 andFilterView.Content = (AndFilter)filter.Clone();57 Control control = (Control) andFilterView;61 combinedFilterView = (CombinedFilterView)MainFormManager.CreateView(typeof(CombinedFilterView)); 62 combinedFilterView.Content = (CombinedFilter)filter.Clone(); 63 Control control = (Control)combinedFilterView; 58 64 control.Dock = DockStyle.Fill; 59 65 filterPanel.Controls.Add(control); … … 65 71 protected override void SetEnabledStateOfControls() { 66 72 base.SetEnabledStateOfControls(); 67 resultsGroupBox.Enabled = andFilterView != null; 68 showRunsButton.Enabled = (runCollectionView.Content != null) && (runCollectionView.Content.Count > 0); 73 resultsGroupBox.Enabled = combinedFilterView != null; 69 74 } 70 75 71 76 private void refreshResultsButton_Click(object sender, EventArgs e) { 72 DateTime start = DateTime.Now; 73 runCollectionView.Content = OKBClient.Instance.QueryRuns(andFilterView.Content); 74 MessageBox.Show((DateTime.Now - start).ToString()); 77 bool deserialize = deserializeBlobsCheckBox.Checked; 78 79 System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); 80 sw.Start(); 81 long count = OKBClient.Instance.GetNumberOfQueryResults(combinedFilterView.Content); 82 sw.Stop(); 83 MessageBox.Show(count.ToString() + " Runs"); 84 if (MessageBox.Show(sw.Elapsed.ToString(), "GetNumberOfQueryResults", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; 85 86 sw.Restart(); 87 var ids = OKBClient.Instance.GetQueryResultIds(combinedFilterView.Content); 88 sw.Stop(); 89 if (MessageBox.Show(sw.Elapsed.ToString(), "GetQueryResultIds", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; 90 91 sw.Restart(); 92 List<QueryResult> results = new List<QueryResult>(); 93 while (ids.Count() > 0) { 94 results.AddRange(OKBClient.Instance.GetQueryResults(ids.Take(50))); 95 ids = ids.Skip(50); 96 } 97 sw.Stop(); 98 if (MessageBox.Show(sw.Elapsed.ToString(), "GetQueryResults", MessageBoxButtons.OKCancel) == DialogResult.Cancel) return; 99 100 sw.Restart(); 101 IEnumerable<QueryResult> res = results.AsEnumerable(); 102 RunCollection runs = new RunCollection(); 103 runCollectionView.Content = runs; 104 while (res.Count() > 0) { 105 runs.AddRange(res.Take(50).Select(x => ConvertToOptimizationRun(x, deserialize))); 106 res = res.Skip(50); 107 } 108 sw.Stop(); 109 MessageBox.Show(sw.Elapsed.ToString(), "Conversion", MessageBoxButtons.OK); 110 75 111 SetEnabledStateOfControls(); 76 112 } 77 113 78 private void showRunsButton_Click(object sender, EventArgs e) { 79 DateTime start = DateTime.Now; 80 MainFormManager.MainForm.ShowContent(OKBClient.Instance.ConvertOKBRunsToOptimizationRuns(runCollectionView.Content)); 81 MessageBox.Show((DateTime.Now - start).ToString()); 114 private Optimization.IRun ConvertToOptimizationRun(QueryResult queryResult, bool deserialize) { 115 Optimization.Run run = new Optimization.Run(); 116 foreach (QueryValue value in queryResult.AlgorithmParameters) 117 run.Parameters.Add(value.Name, ConvertToItem(value, deserialize)); 118 foreach (QueryValue value in queryResult.ProblemParameters) 119 run.Parameters.Add(value.Name, ConvertToItem(value, deserialize)); 120 foreach (QueryValue value in queryResult.Results) 121 run.Results.Add(value.Name, ConvertToItem(value, deserialize)); 122 return run; 82 123 } 83 124 84 private void nrOfRunsButton_Click(object sender, EventArgs e) { 85 long runs = OKBClient.Instance.QueryNumberOfRuns(andFilterView.Content); 86 MessageBox.Show(runs.ToString()); 125 private IItem ConvertToItem(QueryValue value, bool deserialize) { 126 if (value is QueryBlobValue) { 127 if (deserialize) { 128 IItem item = null; 129 using (MemoryStream stream = new MemoryStream(((QueryBlobValue)value).Value)) { 130 try { 131 item = XmlParser.Deserialize<IItem>(stream); 132 } 133 catch (Exception) { } 134 stream.Close(); 135 } 136 return item != null ? item : new StringValue(((QueryBlobValue)value).DataTypeName); 137 } else { 138 return new StringValue(((QueryBlobValue)value).DataTypeName); 139 } 140 } else if (value is QueryBoolValue) { 141 return new BoolValue(((QueryBoolValue)value).Value); 142 } else if (value is QueryFloatValue) { 143 return new DoubleValue(((QueryFloatValue)value).Value); 144 } else if (value is QueryIntValue) { 145 return new IntValue((int)((QueryIntValue)value).Value); 146 } else if (value is QueryStringValue) { 147 return new StringValue(((QueryStringValue)value).Value); 148 } 149 return null; 87 150 } 88 151 } -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB.DataAccess/3.3/Tests/DBTests.cs
r5298 r5304 21 21 22 22 using System; 23 using System.Collections.Generic; 23 24 using System.Data.Linq; 24 25 using System.Linq; … … 99 100 100 101 [TestMethod] 102 public void FetchRunsTest() { 103 long[] ids; 104 using (OKBDataContext okb = new OKBDataContext()) { 105 ids = okb.Runs.Skip(100).Take(50).Select(x => x.Id).ToArray(); 106 } 107 108 QueryService qs = new QueryService(); 109 qs.GetQueryResults(ids); 110 } 111 112 [TestMethod] 113 public void GetFiltersTest() { 114 List<DataTransfer.Filter> filters = new List<DataTransfer.Filter>(); 115 using (OKBDataContext okb = new OKBDataContext()) { 116 // run filters 117 filters.Add(new DataTransfer.OrdinalComparisonLongFilter(typeof(RunRandomSeedFilter).AssemblyQualifiedName, "Run Random Seed")); 118 filters.Add(new DataTransfer.OrdinalComparisonDateTimeFilter(typeof(RunCreatedDateFilter).AssemblyQualifiedName, "Run Created Date")); 119 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(RunUserNameFilter).AssemblyQualifiedName, "Run User Name")); 120 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(RunClientNameFilter).AssemblyQualifiedName, "Run Client Name")); 121 122 // result filters 123 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ResultNameFilter).AssemblyQualifiedName, "Result Name", okb.Results.Select(x => x.Name).Distinct().ToArray())); 124 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 125 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())); 126 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 127 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ResultBlobValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 128 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 129 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(ResultBoolValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 130 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 131 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(ResultFloatValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 132 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 133 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(ResultIntValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 134 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 135 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ResultStringValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 136 137 // algorithm parameter filters 138 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmParameterNameFilter).AssemblyQualifiedName, "Algorithm Parameter Name", okb.AlgorithmParameters.Select(x => x.Name).Distinct().ToArray())); 139 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 140 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())); 141 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 142 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(AlgorithmParameterBlobValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 143 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 144 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(AlgorithmParameterBoolValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 145 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 146 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(AlgorithmParameterFloatValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 147 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 148 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(AlgorithmParameterIntValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 149 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 150 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(AlgorithmParameterStringValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 151 152 // algorithm filters 153 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmNameFilter).AssemblyQualifiedName, "Algorithm Name", okb.Algorithms.Select(x => x.Name).Distinct().ToArray())); 154 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmClassNameFilter).AssemblyQualifiedName, "Algorithm Class Name", okb.AlgorithmClasses.Select(x => x.Name).Distinct().ToArray())); 155 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmPlatformNameFilter).AssemblyQualifiedName, "Algorithm Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray())); 156 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmDataDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Data Type Name", okb.Algorithms.Select(x => x.AlgorithmData.DataType.Name).Distinct().ToArray())); 157 158 // problem parameter filters 159 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemParameterNameFilter).AssemblyQualifiedName, "Problem Parameter Name", okb.ProblemParameters.Select(x => x.Name).Distinct().ToArray())); 160 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 161 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())); 162 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 163 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ProblemParameterBlobValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 164 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 165 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(ProblemParameterBoolValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 166 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 167 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(ProblemParameterFloatValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 168 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 169 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(ProblemParameterIntValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 170 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 171 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ProblemParameterStringValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 172 173 // problem filters 174 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemNameFilter).AssemblyQualifiedName, "Problem Name", okb.Problems.Select(x => x.Name).Distinct().ToArray())); 175 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemClassNameFilter).AssemblyQualifiedName, "Problem Class Name", okb.ProblemClasses.Select(x => x.Name).Distinct().ToArray())); 176 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemPlatformNameFilter).AssemblyQualifiedName, "Problem Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray())); 177 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemDataDataTypeNameFilter).AssemblyQualifiedName, "Problem Data Type Name", okb.Problems.Select(x => x.ProblemData.DataType.Name).Distinct().ToArray())); 178 179 // and/or filters 180 filters.Add(new DataTransfer.CombinedFilter(typeof(AndFilter).AssemblyQualifiedName, "And", DataTransfer.BooleanOperation.And)); 181 filters.Add(new DataTransfer.CombinedFilter(typeof(OrFilter).AssemblyQualifiedName, "Or", DataTransfer.BooleanOperation.Or)); 182 } 183 } 184 185 [TestMethod] 101 186 public void ClearDB() { 102 187 using (OKBDataContext okb = new OKBDataContext()) { -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB.DataAccess/3.3/Tests/HeuristicLab.Services.OKB.DataAccess-3.3.Tests.csproj
r5298 r5304 51 51 </ItemGroup> 52 52 <ItemGroup> 53 <ProjectReference Include="..\..\..\HeuristicLab.Clients.OKB\3.3\HeuristicLab.Clients.OKB-3.3.csproj"> 54 <Project>{73857A9C-9706-4B72-8D9C-210B5B6A5691}</Project> 55 <Name>HeuristicLab.Clients.OKB-3.3</Name> 56 </ProjectReference> 57 <ProjectReference Include="..\..\..\HeuristicLab.Services.OKB.DataTransfer\3.3\HeuristicLab.Services.OKB.DataTransfer-3.3.csproj"> 58 <Project>{209FD7A1-DFB2-4B9F-9268-B95E886B2F7A}</Project> 59 <Name>HeuristicLab.Services.OKB.DataTransfer-3.3</Name> 60 </ProjectReference> 61 <ProjectReference Include="..\..\..\HeuristicLab.Services.OKB\3.3\HeuristicLab.Services.OKB-3.3.csproj"> 62 <Project>{766DA4B7-2A0E-4CDE-8F90-93D8B1AD62CF}</Project> 63 <Name>HeuristicLab.Services.OKB-3.3</Name> 64 </ProjectReference> 53 65 <ProjectReference Include="..\HeuristicLab.Services.OKB.DataAccess-3.3.csproj"> 54 66 <Project>{E36BE58F-F3CE-40BB-9AB3-9F9E30AD5CCF}</Project> -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB.DataTransfer/3.3/Filters/CombinedFilter.cs
r5286 r5304 21 21 22 22 using System.Collections.Generic; 23 using System.Linq; 23 24 using System.Runtime.Serialization; 24 25 25 26 namespace HeuristicLab.Services.OKB.DataTransfer { 26 27 [DataContract] 27 public abstract class CombinedFilter : Filter { 28 public class CombinedFilter : Filter { 29 [DataMember] 30 public BooleanOperation Operation { get; protected set; } 28 31 [DataMember] 29 32 public IEnumerable<Filter> Filters { get; set; } 33 34 public CombinedFilter(string filterTypeName, string label, BooleanOperation operation) { 35 FilterTypeName = filterTypeName; 36 Label = label; 37 Operation = operation; 38 Filters = Enumerable.Empty<Filter>(); 39 } 30 40 } 31 41 } -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB.DataTransfer/3.3/Filters/Filter.cs
r5295 r5304 34 34 [KnownType(typeof(NameSetComparisonStringFilter))] 35 35 [KnownType(typeof(NameSetComparisonStringAvailableValuesFilter))] 36 [KnownType(typeof(AndFilter))] 37 [KnownType(typeof(OrFilter))] 36 [KnownType(typeof(CombinedFilter))] 38 37 public abstract class Filter { 39 38 [DataMember] -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB.DataTransfer/3.3/HeuristicLab.Services.OKB.DataTransfer-3.3.csproj
r5295 r5304 58 58 <Compile Include="AlgorithmParameterIntValue.cs" /> 59 59 <Compile Include="AlgorithmParameterStringValue.cs" /> 60 <Compile Include="Filters\BooleanOperation.cs" /> 61 <Compile Include="QueryBoolValue.cs" /> 62 <Compile Include="QueryBlobValue.cs" /> 63 <Compile Include="QueryFloatValue.cs" /> 64 <Compile Include="QueryIntValue.cs" /> 65 <Compile Include="QueryStringValue.cs" /> 66 <Compile Include="QueryValue.cs" /> 67 <Compile Include="QueryResult.cs" /> 60 68 <Compile Include="Filters\CombinedFilter.cs" /> 61 <Compile Include="Filters\AndFilter.cs" />62 69 <Compile Include="Filters\NameSetComparisonStringAvailableValuesFilter.cs" /> 63 70 <Compile Include="Filters\SetComparisonStringAvailableValuesFilter.cs" /> 64 <Compile Include="Filters\OrFilter.cs" />65 71 <Compile Include="Filters\OrdinalComparisonFilter.cs" /> 66 72 <Compile Include="Filters\SetComparisonFilter.cs" /> -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Filters/AndFilter.cs
r5286 r5304 43 43 Filters = new List<IFilter>(filters); 44 44 } 45 public AndFilter(DataTransfer. AndFilter filter) {45 public AndFilter(DataTransfer.CombinedFilter filter) { 46 46 Filters = new List<IFilter>(filter.Filters.Select(x => (IFilter)Activator.CreateInstance(Type.GetType(x.FilterTypeName), x))); 47 47 } -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Filters/OrFilter.cs
r5286 r5304 43 43 Filters = new List<IFilter>(filters); 44 44 } 45 public OrFilter(DataTransfer. OrFilter filter) {45 public OrFilter(DataTransfer.CombinedFilter filter) { 46 46 Filters = new List<IFilter>(filter.Filters.Select(x => (IFilter)Activator.CreateInstance(Type.GetType(x.FilterTypeName), x))); 47 47 } -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/Interfaces/IQueryService.cs
r5299 r5304 35 35 36 36 [OperationContract] 37 long QueryNumberOfRuns(Filter filter);37 long GetNumberOfQueryResults(Filter filter); 38 38 39 39 [OperationContract] 40 IEnumerable<Run> QueryRuns(Filter filter); 40 IEnumerable<long> GetQueryResultIds(Filter filter); 41 42 [OperationContract] 43 IEnumerable<QueryResult> GetQueryResults(IEnumerable<long> ids); 41 44 } 42 45 } -
branches/OKB (trunk integration)/HeuristicLab.Services.OKB/3.3/QueryService.cs
r5299 r5304 26 26 using System.ServiceModel; 27 27 using HeuristicLab.Services.OKB.DataAccess; 28 using HeuristicLab.Services.OKB.DataTransfer; 28 29 29 30 namespace HeuristicLab.Services.OKB { … … 33 34 [ServiceBehavior(IncludeExceptionDetailInFaults = true)] 34 35 public class QueryService : IQueryService { 35 public IEnumerable<DataTransfer.Filter> GetFilters() { 36 List<DataTransfer.Filter> filters = new List<DataTransfer.Filter>(); 37 using (OKBDataContext okb = new OKBDataContext()) { 38 //DataLoadOptions dlo = new DataLoadOptions(); 39 //dlo.LoadWith<Algorithm>(x => x.AlgorithmData); 40 //dlo.LoadWith<AlgorithmData>(x => x.DataType); 41 //dlo.LoadWith<Problem>(x => x.ProblemData); 42 //dlo.LoadWith<ProblemData>(x => x.DataType); 43 //dlo.LoadWith<AlgorithmParameter>(x => x.DataType); 44 //dlo.LoadWith<ProblemParameter>(x => x.DataType); 45 //dlo.LoadWith<Result>(x => x.DataType); 46 //okb.LoadOptions = dlo; 47 36 public IEnumerable<Filter> GetFilters() { 37 List<Filter> filters = new List<Filter>(); 38 using (OKBDataContext okb = new OKBDataContext()) { 48 39 // run filters 49 filters.Add(new DataTransfer.OrdinalComparisonLongFilter(typeof(RunRandomSeedFilter).AssemblyQualifiedName, "Run Random Seed"));50 filters.Add(new DataTransfer.OrdinalComparisonDateTimeFilter(typeof(RunCreatedDateFilter).AssemblyQualifiedName, "Run Created Date"));51 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(RunUserNameFilter).AssemblyQualifiedName, "Run User Name"));52 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(RunClientNameFilter).AssemblyQualifiedName, "Run Client Name"));40 filters.Add(new OrdinalComparisonLongFilter(typeof(RunRandomSeedFilter).AssemblyQualifiedName, "Run Random Seed")); 41 filters.Add(new OrdinalComparisonDateTimeFilter(typeof(RunCreatedDateFilter).AssemblyQualifiedName, "Run Created Date")); 42 filters.Add(new SetComparisonStringFilter(typeof(RunUserNameFilter).AssemblyQualifiedName, "Run User Name")); 43 filters.Add(new SetComparisonStringFilter(typeof(RunClientNameFilter).AssemblyQualifiedName, "Run Client Name")); 53 44 54 45 // result filters 55 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ResultNameFilter).AssemblyQualifiedName, "Result Name", okb.Results.Select(x => x.Name).Distinct().ToArray()));56 foreach ( Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))57 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()));58 foreach ( Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))59 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ResultBlobValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name));60 foreach ( Result entity in okb.Results.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))61 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(ResultBoolValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name));62 foreach ( Result entity in okb.Results.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))63 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(ResultFloatValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name));64 foreach ( Result entity in okb.Results.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))65 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(ResultIntValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name));66 foreach ( Result entity in okb.Results.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name)))67 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ResultStringValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name));46 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(ResultNameFilter).AssemblyQualifiedName, "Result Name", okb.Results.Select(x => x.Name).Distinct().ToArray())); 47 foreach (string name in okb.Results.Where(x => x.DataType.SqlName == "varbinary").Select(x => x.Name).Distinct()) 48 filters.Add(new NameSetComparisonStringAvailableValuesFilter(typeof(ResultBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Result " + name + " Value Data Type Name", name, okb.ResultBlobValues.Where(x => x.Result.Name == name).Select(x => x.DataType.Name).Distinct().ToArray())); 49 foreach (string name in okb.Results.Where(x => x.DataType.SqlName == "varbinary").Select(x => x.Name).Distinct()) 50 filters.Add(new NameEqualityComparisonByteArrayFilter(typeof(ResultBlobValueValueFilter).AssemblyQualifiedName, "Result " + name + " Value", name)); 51 foreach (string name in okb.Results.Where(x => x.DataType.SqlName == "bit").Select(x => x.Name).Distinct()) 52 filters.Add(new NameEqualityComparisonBoolFilter(typeof(ResultBoolValueValueFilter).AssemblyQualifiedName, "Result " + name + " Value", name)); 53 foreach (string name in okb.Results.Where(x => x.DataType.SqlName == "float").Select(x => x.Name).Distinct()) 54 filters.Add(new NameOrdinalComparisonDoubleFilter(typeof(ResultFloatValueValueFilter).AssemblyQualifiedName, "Result " + name + " Value", name)); 55 foreach (string name in okb.Results.Where(x => x.DataType.SqlName == "bigint").Select(x => x.Name).Distinct()) 56 filters.Add(new NameOrdinalComparisonLongFilter(typeof(ResultIntValueValueFilter).AssemblyQualifiedName, "Result " + name + " Value", name)); 57 foreach (string name in okb.Results.Where(x => x.DataType.SqlName == "nvarchar").Select(x => x.Name).Distinct()) 58 filters.Add(new NameSetComparisonStringFilter(typeof(ResultStringValueValueFilter).AssemblyQualifiedName, "Result " + name + " Value", name)); 68 59 69 60 // algorithm parameter filters 70 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmParameterNameFilter).AssemblyQualifiedName, "Algorithm Parameter Name", okb.AlgorithmParameters.Select(x => x.Name).Distinct().ToArray()));71 foreach ( AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))72 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()));73 foreach ( AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))74 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(AlgorithmParameterBlobValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name));75 foreach ( AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))76 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(AlgorithmParameterBoolValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name));77 foreach ( AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))78 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(AlgorithmParameterFloatValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name));79 foreach ( AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))80 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(AlgorithmParameterIntValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name));81 foreach ( AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name)))82 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(AlgorithmParameterStringValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name));61 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(AlgorithmParameterNameFilter).AssemblyQualifiedName, "Algorithm Parameter Name", okb.AlgorithmParameters.Select(x => x.Name).Distinct().ToArray())); 62 foreach (string name in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").Select(x => x.Name).Distinct()) 63 filters.Add(new NameSetComparisonStringAvailableValuesFilter(typeof(AlgorithmParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Parameter " + name + " Value Data Type Name", name, okb.AlgorithmParameterBlobValues.Where(x => x.AlgorithmParameter.Name == name).Select(x => x.DataType.Name).Distinct().ToArray())); 64 foreach (string name in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").Select(x => x.Name).Distinct()) 65 filters.Add(new NameEqualityComparisonByteArrayFilter(typeof(AlgorithmParameterBlobValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + name + " Value", name)); 66 foreach (string name in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bit").Select(x => x.Name).Distinct()) 67 filters.Add(new NameEqualityComparisonBoolFilter(typeof(AlgorithmParameterBoolValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + name + " Value", name)); 68 foreach (string name in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "float").Select(x => x.Name).Distinct()) 69 filters.Add(new NameOrdinalComparisonDoubleFilter(typeof(AlgorithmParameterFloatValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + name + " Value", name)); 70 foreach (string name in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bigint").Select(x => x.Name).Distinct()) 71 filters.Add(new NameOrdinalComparisonLongFilter(typeof(AlgorithmParameterIntValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + name + " Value", name)); 72 foreach (string name in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "nvarchar").Select(x => x.Name).Distinct()) 73 filters.Add(new NameSetComparisonStringFilter(typeof(AlgorithmParameterStringValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + name + " Value", name)); 83 74 84 75 // algorithm filters 85 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmNameFilter).AssemblyQualifiedName, "Algorithm Name", okb.Algorithms.Select(x => x.Name).Distinct().ToArray()));86 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmClassNameFilter).AssemblyQualifiedName, "Algorithm Class Name", okb.AlgorithmClasses.Select(x => x.Name).Distinct().ToArray()));87 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmPlatformNameFilter).AssemblyQualifiedName, "Algorithm Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray()));88 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(AlgorithmDataDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Data Type Name", okb.Algorithms.Select(x => x.AlgorithmData.DataType.Name).Distinct().ToArray()));76 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(AlgorithmNameFilter).AssemblyQualifiedName, "Algorithm Name", okb.Algorithms.Select(x => x.Name).Distinct().ToArray())); 77 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(AlgorithmClassNameFilter).AssemblyQualifiedName, "Algorithm Class Name", okb.AlgorithmClasses.Select(x => x.Name).Distinct().ToArray())); 78 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(AlgorithmPlatformNameFilter).AssemblyQualifiedName, "Algorithm Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray())); 79 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(AlgorithmDataDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Data Type Name", okb.Algorithms.Select(x => x.AlgorithmData.DataType.Name).Distinct().ToArray())); 89 80 90 81 // problem parameter filters 91 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemParameterNameFilter).AssemblyQualifiedName, "Problem Parameter Name", okb.ProblemParameters.Select(x => x.Name).Distinct().ToArray()));92 foreach ( ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))93 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()));94 foreach ( ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))95 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ProblemParameterBlobValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name));96 foreach ( ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))97 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(ProblemParameterBoolValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name));98 foreach ( ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))99 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(ProblemParameterFloatValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name));100 foreach ( ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))101 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(ProblemParameterIntValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name));102 foreach ( ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name)))103 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ProblemParameterStringValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name));82 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(ProblemParameterNameFilter).AssemblyQualifiedName, "Problem Parameter Name", okb.ProblemParameters.Select(x => x.Name).Distinct().ToArray())); 83 foreach (string name in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").Select(x => x.Name).Distinct()) 84 filters.Add(new NameSetComparisonStringAvailableValuesFilter(typeof(ProblemParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Problem Parameter " + name + " Value Data Type Name", name, okb.ProblemParameterBlobValues.Where(x => x.ProblemParameter.Name == name).Select(x => x.DataType.Name).Distinct().ToArray())); 85 foreach (string name in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").Select(x => x.Name).Distinct()) 86 filters.Add(new NameEqualityComparisonByteArrayFilter(typeof(ProblemParameterBlobValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + name + " Value", name)); 87 foreach (string name in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bit").Select(x => x.Name).Distinct()) 88 filters.Add(new NameEqualityComparisonBoolFilter(typeof(ProblemParameterBoolValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + name + " Value", name)); 89 foreach (string name in okb.ProblemParameters.Where(x => x.DataType.SqlName == "float").Select(x => x.Name).Distinct()) 90 filters.Add(new NameOrdinalComparisonDoubleFilter(typeof(ProblemParameterFloatValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + name + " Value", name)); 91 foreach (string name in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bigint").Select(x => x.Name).Distinct()) 92 filters.Add(new NameOrdinalComparisonLongFilter(typeof(ProblemParameterIntValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + name + " Value", name)); 93 foreach (string name in okb.ProblemParameters.Where(x => x.DataType.SqlName == "nvarchar").Select(x => x.Name).Distinct()) 94 filters.Add(new NameSetComparisonStringFilter(typeof(ProblemParameterStringValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + name + " Value", name)); 104 95 105 96 // problem filters 106 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemNameFilter).AssemblyQualifiedName, "Problem Name", okb.Problems.Select(x => x.Name).Distinct().ToArray()));107 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemClassNameFilter).AssemblyQualifiedName, "Problem Class Name", okb.ProblemClasses.Select(x => x.Name).Distinct().ToArray()));108 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemPlatformNameFilter).AssemblyQualifiedName, "Problem Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray()));109 filters.Add(new DataTransfer.SetComparisonStringAvailableValuesFilter(typeof(ProblemDataDataTypeNameFilter).AssemblyQualifiedName, "Problem Data Type Name", okb.Problems.Select(x => x.ProblemData.DataType.Name).Distinct().ToArray()));97 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(ProblemNameFilter).AssemblyQualifiedName, "Problem Name", okb.Problems.Select(x => x.Name).Distinct().ToArray())); 98 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(ProblemClassNameFilter).AssemblyQualifiedName, "Problem Class Name", okb.ProblemClasses.Select(x => x.Name).Distinct().ToArray())); 99 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(ProblemPlatformNameFilter).AssemblyQualifiedName, "Problem Platform Name", okb.Platforms.Select(x => x.Name).Distinct().ToArray())); 100 filters.Add(new SetComparisonStringAvailableValuesFilter(typeof(ProblemDataDataTypeNameFilter).AssemblyQualifiedName, "Problem Data Type Name", okb.Problems.Select(x => x.ProblemData.DataType.Name).Distinct().ToArray())); 110 101 111 102 // and/or filters 112 filters.Add(new DataTransfer.AndFilter(typeof(AndFilter).AssemblyQualifiedName, "And"));113 filters.Add(new DataTransfer.OrFilter(typeof(OrFilter).AssemblyQualifiedName, "Or"));103 filters.Add(new CombinedFilter(typeof(AndFilter).AssemblyQualifiedName, "AND", BooleanOperation.And)); 104 filters.Add(new CombinedFilter(typeof(OrFilter).AssemblyQualifiedName, "OR", BooleanOperation.Or)); 114 105 } 115 106 return filters.OrderBy(x => x.Label); 116 107 } 117 public long QueryNumberOfRuns(DataTransfer.Filter filter) { 118 using (OKBDataContext okb = new OKBDataContext()) { 119 IFilter convertedFilter = (IFilter)Activator.CreateInstance(Type.GetType(filter.FilterTypeName), filter); 120 return okb.Runs.Where(convertedFilter.Expression).LongCount(); 121 } 122 } 123 public IEnumerable<DataTransfer.Run> QueryRuns(DataTransfer.Filter filter) { 124 using (OKBDataContext okb = new OKBDataContext()) { 125 //DataLoadOptions dlo = new DataLoadOptions(); 126 //dlo.LoadWith<Run>(x => x.ResultBlobValues); 127 //dlo.LoadWith<Run>(x => x.ResultBoolValues); 128 //dlo.LoadWith<Run>(x => x.ResultFloatValues); 129 //dlo.LoadWith<Run>(x => x.ResultIntValues); 130 //dlo.LoadWith<Run>(x => x.ResultStringValues); 131 //dlo.LoadWith<Run>(x => x.Experiment); 132 //dlo.LoadWith<ResultBlobValue>(x => x.Result); 133 //dlo.LoadWith<ResultBlobValue>(x => x.DataType); 134 //dlo.LoadWith<ResultBoolValue>(x => x.Result); 135 //dlo.LoadWith<ResultBoolValue>(x => x.DataType); 136 //dlo.LoadWith<ResultFloatValue>(x => x.Result); 137 //dlo.LoadWith<ResultFloatValue>(x => x.DataType); 138 //dlo.LoadWith<ResultIntValue>(x => x.Result); 139 //dlo.LoadWith<ResultIntValue>(x => x.DataType); 140 //dlo.LoadWith<ResultStringValue>(x => x.Result); 141 //dlo.LoadWith<ResultStringValue>(x => x.DataType); 142 //dlo.LoadWith<Result>(x => x.Algorithm); 143 //dlo.LoadWith<Result>(x => x.DataType); 144 //dlo.LoadWith<Experiment>(x => x.Algorithm); 145 //dlo.LoadWith<Experiment>(x => x.Problem); 146 //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterBlobValues); 147 //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterBoolValues); 148 //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterFloatValues); 149 //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterIntValues); 150 //dlo.LoadWith<Experiment>(x => x.AlgorithmParameterStringValues); 151 //dlo.LoadWith<Experiment>(x => x.ProblemParameterBlobValues); 152 //dlo.LoadWith<Experiment>(x => x.ProblemParameterBoolValues); 153 //dlo.LoadWith<Experiment>(x => x.ProblemParameterFloatValues); 154 //dlo.LoadWith<Experiment>(x => x.ProblemParameterIntValues); 155 //dlo.LoadWith<Experiment>(x => x.ProblemParameterStringValues); 156 //dlo.LoadWith<AlgorithmParameterBlobValue>(x => x.AlgorithmParameter); 157 //dlo.LoadWith<AlgorithmParameterBlobValue>(x => x.DataType); 158 //dlo.LoadWith<AlgorithmParameterBoolValue>(x => x.AlgorithmParameter); 159 //dlo.LoadWith<AlgorithmParameterBoolValue>(x => x.DataType); 160 //dlo.LoadWith<AlgorithmParameterFloatValue>(x => x.AlgorithmParameter); 161 //dlo.LoadWith<AlgorithmParameterFloatValue>(x => x.DataType); 162 //dlo.LoadWith<AlgorithmParameterIntValue>(x => x.AlgorithmParameter); 163 //dlo.LoadWith<AlgorithmParameterIntValue>(x => x.DataType); 164 //dlo.LoadWith<AlgorithmParameterStringValue>(x => x.AlgorithmParameter); 165 //dlo.LoadWith<AlgorithmParameterStringValue>(x => x.DataType); 166 //dlo.LoadWith<ProblemParameterBlobValue>(x => x.ProblemParameter); 167 //dlo.LoadWith<ProblemParameterBlobValue>(x => x.DataType); 168 //dlo.LoadWith<ProblemParameterBoolValue>(x => x.ProblemParameter); 169 //dlo.LoadWith<ProblemParameterBoolValue>(x => x.DataType); 170 //dlo.LoadWith<ProblemParameterFloatValue>(x => x.ProblemParameter); 171 //dlo.LoadWith<ProblemParameterFloatValue>(x => x.DataType); 172 //dlo.LoadWith<ProblemParameterIntValue>(x => x.ProblemParameter); 173 //dlo.LoadWith<ProblemParameterIntValue>(x => x.DataType); 174 //dlo.LoadWith<ProblemParameterStringValue>(x => x.ProblemParameter); 175 //dlo.LoadWith<ProblemParameterStringValue>(x => x.DataType); 176 //dlo.LoadWith<AlgorithmParameter>(x => x.Algorithm); 177 //dlo.LoadWith<AlgorithmParameter>(x => x.DataType); 178 //dlo.LoadWith<ProblemParameter>(x => x.Problem); 179 //dlo.LoadWith<ProblemParameter>(x => x.DataType); 180 //dlo.LoadWith<Algorithm>(x => x.AlgorithmClass); 181 //dlo.LoadWith<Algorithm>(x => x.Platform); 182 //dlo.LoadWith<Problem>(x => x.ProblemClass); 183 //dlo.LoadWith<Problem>(x => x.Platform); 184 //okb.LoadOptions = dlo; 185 108 109 public long GetNumberOfQueryResults(Filter filter) { 110 using (OKBDataContext okb = new OKBDataContext()) { 111 return FilterRuns(okb.Runs, filter).LongCount(); 112 } 113 } 114 115 public IEnumerable<long> GetQueryResultIds(Filter filter) { 116 using (OKBDataContext okb = new OKBDataContext()) { 117 return FilterRuns(okb.Runs, filter).Select(x => x.Id).ToArray(); 118 } 119 } 120 121 public IEnumerable<QueryResult> GetQueryResults(IEnumerable<long> ids) { 122 using (OKBDataContext okb = new OKBDataContext()) { 186 123 DataLoadOptions dlo = new DataLoadOptions(); 187 dlo.LoadWith<Run>(x => x.ResultBlobValues); 188 dlo.LoadWith<Run>(x => x.ResultBoolValues); 189 dlo.LoadWith<Run>(x => x.ResultFloatValues); 190 dlo.LoadWith<Run>(x => x.ResultIntValues); 191 dlo.LoadWith<Run>(x => x.ResultStringValues); 124 dlo.LoadWith<DataAccess.Run>(x => x.ResultBlobValues); 125 dlo.LoadWith<DataAccess.Run>(x => x.ResultBoolValues); 126 dlo.LoadWith<DataAccess.Run>(x => x.ResultFloatValues); 127 dlo.LoadWith<DataAccess.Run>(x => x.ResultIntValues); 128 dlo.LoadWith<DataAccess.Run>(x => x.ResultStringValues); 129 dlo.LoadWith<DataAccess.Run>(x => x.Experiment); 130 dlo.LoadWith<DataAccess.ResultBlobValue>(x => x.Result); 131 dlo.LoadWith<DataAccess.ResultBlobValue>(x => x.DataType); 132 dlo.LoadWith<DataAccess.ResultBoolValue>(x => x.Result); 133 dlo.LoadWith<DataAccess.ResultFloatValue>(x => x.Result); 134 dlo.LoadWith<DataAccess.ResultIntValue>(x => x.Result); 135 dlo.LoadWith<DataAccess.ResultStringValue>(x => x.Result); 136 dlo.LoadWith<DataAccess.Experiment>(x => x.AlgorithmParameterBlobValues); 137 dlo.LoadWith<DataAccess.Experiment>(x => x.AlgorithmParameterBoolValues); 138 dlo.LoadWith<DataAccess.Experiment>(x => x.AlgorithmParameterFloatValues); 139 dlo.LoadWith<DataAccess.Experiment>(x => x.AlgorithmParameterIntValues); 140 dlo.LoadWith<DataAccess.Experiment>(x => x.AlgorithmParameterStringValues); 141 dlo.LoadWith<DataAccess.Experiment>(x => x.ProblemParameterBlobValues); 142 dlo.LoadWith<DataAccess.Experiment>(x => x.ProblemParameterBoolValues); 143 dlo.LoadWith<DataAccess.Experiment>(x => x.ProblemParameterFloatValues); 144 dlo.LoadWith<DataAccess.Experiment>(x => x.ProblemParameterIntValues); 145 dlo.LoadWith<DataAccess.Experiment>(x => x.ProblemParameterStringValues); 146 //dlo.LoadWith<DataAccess.Experiment>(x => x.Algorithm); 147 //dlo.LoadWith<DataAccess.Experiment>(x => x.Problem); 148 dlo.LoadWith<DataAccess.AlgorithmParameterBlobValue>(x => x.AlgorithmParameter); 149 dlo.LoadWith<DataAccess.AlgorithmParameterBlobValue>(x => x.DataType); 150 dlo.LoadWith<DataAccess.AlgorithmParameterBoolValue>(x => x.AlgorithmParameter); 151 dlo.LoadWith<DataAccess.AlgorithmParameterFloatValue>(x => x.AlgorithmParameter); 152 dlo.LoadWith<DataAccess.AlgorithmParameterIntValue>(x => x.AlgorithmParameter); 153 dlo.LoadWith<DataAccess.AlgorithmParameterStringValue>(x => x.AlgorithmParameter); 154 dlo.LoadWith<DataAccess.ProblemParameterBlobValue>(x => x.ProblemParameter); 155 dlo.LoadWith<DataAccess.ProblemParameterBlobValue>(x => x.DataType); 156 dlo.LoadWith<DataAccess.ProblemParameterBoolValue>(x => x.ProblemParameter); 157 dlo.LoadWith<DataAccess.ProblemParameterFloatValue>(x => x.ProblemParameter); 158 dlo.LoadWith<DataAccess.ProblemParameterIntValue>(x => x.ProblemParameter); 159 dlo.LoadWith<DataAccess.ProblemParameterStringValue>(x => x.ProblemParameter); 160 //dlo.LoadWith<DataAccess.Algorithm>(x => x.AlgorithmParameters); 161 //dlo.LoadWith<DataAccess.Algorithm>(x => x.Results); 162 //dlo.LoadWith<DataAccess.Algorithm>(x => x.AlgorithmClass); 163 //dlo.LoadWith<DataAccess.Algorithm>(x => x.Platform); 164 //dlo.LoadWith<DataAccess.Problem>(x => x.ProblemParameters); 165 //dlo.LoadWith<DataAccess.Problem>(x => x.ProblemClass); 192 166 okb.LoadOptions = dlo; 193 167 194 IFilter convertedFilter = (IFilter)Activator.CreateInstance(Type.GetType(filter.FilterTypeName), filter); 195 var runs = okb.Runs.Where(convertedFilter.Expression).ToArray(); 196 var result = runs.Select(x => Convert.ToDto(x)).ToArray(); 197 return result; 198 } 168 return okb.Runs.Where(x => ids.Contains(x.Id)).Select(x => ConvertToQueryResult(x)).ToArray(); 169 } 170 } 171 172 private IQueryable<DataAccess.Run> FilterRuns(IQueryable<DataAccess.Run> runs, Filter filter) { 173 IFilter f = (IFilter)Activator.CreateInstance(Type.GetType(filter.FilterTypeName), filter); 174 return runs.Where(f.Expression); 175 } 176 177 private QueryResult ConvertToQueryResult(DataAccess.Run run) { 178 List<QueryValue> algorithmParameters = new List<QueryValue>(); 179 List<QueryValue> problemParameters = new List<QueryValue>(); 180 List<QueryValue> results = new List<QueryValue>(); 181 182 foreach (DataAccess.AlgorithmParameterBlobValue value in run.Experiment.AlgorithmParameterBlobValues) 183 algorithmParameters.Add(new QueryBlobValue { Name = value.AlgorithmParameter.Name, DataTypeName = value.DataType.Name + " (" + value.DataType.TypeName + ")", Value = value.Value.ToArray() }); 184 foreach (DataAccess.AlgorithmParameterBoolValue value in run.Experiment.AlgorithmParameterBoolValues) 185 algorithmParameters.Add(new QueryBoolValue { Name = value.AlgorithmParameter.Name, Value = value.Value }); 186 foreach (DataAccess.AlgorithmParameterFloatValue value in run.Experiment.AlgorithmParameterFloatValues) 187 algorithmParameters.Add(new QueryFloatValue { Name = value.AlgorithmParameter.Name, Value = value.Value }); 188 foreach (DataAccess.AlgorithmParameterIntValue value in run.Experiment.AlgorithmParameterIntValues) 189 algorithmParameters.Add(new QueryIntValue { Name = value.AlgorithmParameter.Name, Value = value.Value }); 190 foreach (DataAccess.AlgorithmParameterStringValue value in run.Experiment.AlgorithmParameterStringValues) 191 algorithmParameters.Add(new QueryStringValue { Name = value.AlgorithmParameter.Name, Value = value.Value }); 192 193 foreach (DataAccess.ProblemParameterBlobValue value in run.Experiment.ProblemParameterBlobValues) 194 problemParameters.Add(new QueryBlobValue { Name = value.ProblemParameter.Name, DataTypeName = value.DataType.Name + " (" + value.DataType.TypeName + ")", Value = value.Value.ToArray() }); 195 foreach (DataAccess.ProblemParameterBoolValue value in run.Experiment.ProblemParameterBoolValues) 196 problemParameters.Add(new QueryBoolValue { Name = value.ProblemParameter.Name, Value = value.Value }); 197 foreach (DataAccess.ProblemParameterFloatValue value in run.Experiment.ProblemParameterFloatValues) 198 problemParameters.Add(new QueryFloatValue { Name = value.ProblemParameter.Name, Value = value.Value }); 199 foreach (DataAccess.ProblemParameterIntValue value in run.Experiment.ProblemParameterIntValues) 200 problemParameters.Add(new QueryIntValue { Name = value.ProblemParameter.Name, Value = value.Value }); 201 foreach (DataAccess.ProblemParameterStringValue value in run.Experiment.ProblemParameterStringValues) 202 problemParameters.Add(new QueryStringValue { Name = value.ProblemParameter.Name, Value = value.Value }); 203 204 foreach (DataAccess.ResultBlobValue value in run.ResultBlobValues) 205 results.Add(new QueryBlobValue { Name = value.Result.Name, DataTypeName = value.DataType.Name + " (" + value.DataType.TypeName + ")", Value = value.Value.ToArray() }); 206 foreach (DataAccess.ResultBoolValue value in run.ResultBoolValues) 207 results.Add(new QueryBoolValue { Name = value.Result.Name, Value = value.Value }); 208 foreach (DataAccess.ResultFloatValue value in run.ResultFloatValues) 209 results.Add(new QueryFloatValue { Name = value.Result.Name, Value = value.Value }); 210 foreach (DataAccess.ResultIntValue value in run.ResultIntValues) 211 results.Add(new QueryIntValue { Name = value.Result.Name, Value = value.Value }); 212 foreach (DataAccess.ResultStringValue value in run.ResultStringValues) 213 results.Add(new QueryStringValue { Name = value.Result.Name, Value = value.Value }); 214 215 QueryResult result = new QueryResult(); 216 result.Id = run.Id; 217 result.AlgorithmParameters = algorithmParameters; 218 result.ProblemParameters = problemParameters; 219 result.Results = results; 220 return result; 199 221 } 200 222 }
Note: See TracChangeset
for help on using the changeset viewer.