Changeset 5269 for branches/OKB/HeuristicLab.Services.OKB/3.3
- Timestamp:
- 01/11/11 05:13:55 (14 years ago)
- Location:
- branches/OKB/HeuristicLab.Services.OKB/3.3
- Files:
-
- 36 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/OKB/HeuristicLab.Services.OKB/3.3/HeuristicLab.Services.OKB-3.3.csproj
r4591 r5269 122 122 <Compile Include="Convert.cs" /> 123 123 <Compile Include="AuthenticationService.cs" /> 124 <Compile Include="Filters\AlgorithmParameterBlobValueDataTypeNameFilter.cs" /> 125 <Compile Include="Filters\AlgorithmParameterBlobValueValueFilter.cs" /> 126 <Compile Include="Filters\AlgorithmParameterBoolValueValueFilter.cs" /> 127 <Compile Include="Filters\AlgorithmParameterFloatValueValueFilter.cs" /> 128 <Compile Include="Filters\AlgorithmParameterIntValueValueFilter.cs" /> 129 <Compile Include="Filters\AlgorithmParameterStringValueValueFilter.cs" /> 130 <Compile Include="Filters\AlgorithmParameterNameFilter.cs" /> 131 <Compile Include="Filters\AlgorithmNameFilter.cs" /> 132 <Compile Include="Filters\AlgorithmClassNameFilter.cs" /> 133 <Compile Include="Filters\AlgorithmPlattformNameFilter.cs" /> 134 <Compile Include="Filters\AlgorithmDataDataTypeNameFilter.cs" /> 135 <Compile Include="Filters\ProblemDataDataTypeNameFilter.cs" /> 136 <Compile Include="Filters\ProblemPlattformNameFilter.cs" /> 137 <Compile Include="Filters\ProblemClassNameFilter.cs" /> 138 <Compile Include="Filters\ProblemNameFilter.cs" /> 139 <Compile Include="Filters\ProblemParameterNameFilter.cs" /> 140 <Compile Include="Filters\ResultNameFilter.cs" /> 141 <Compile Include="Filters\RunRandomSeedFilter.cs" /> 142 <Compile Include="Filters\RunFinishedDateFilter.cs" /> 143 <Compile Include="Filters\RunClientNameFilter.cs" /> 144 <Compile Include="Filters\RunUserNameFilter.cs" /> 145 <Compile Include="Filters\ProblemParameterBlobValueDataTypeNameFilter.cs" /> 146 <Compile Include="Filters\ProblemParameterBlobValueValueFilter.cs" /> 147 <Compile Include="Filters\ProblemParameterBoolValueValueFilter.cs" /> 148 <Compile Include="Filters\ProblemParameterFloatValueValueFilter.cs" /> 149 <Compile Include="Filters\ProblemParameterIntValueValueFilter.cs" /> 150 <Compile Include="Filters\ProblemParameterStringValueValueFilter.cs" /> 151 <Compile Include="Filters\ResultBoolValueValueFilter.cs" /> 152 <Compile Include="Filters\ResultBlobValueDataTypeNameFilter.cs" /> 153 <Compile Include="Filters\ResultBlobValueValueFilter.cs" /> 154 <Compile Include="Filters\ResultIntValueValueFilter.cs" /> 155 <Compile Include="Filters\ResultStringValueValueFilter.cs" /> 156 <Compile Include="Filters\ResultFloatValueValueFilter.cs" /> 157 <Compile Include="GenericEqualityComparer.cs" /> 124 158 <Compile Include="ExperimentEqualityComparer.cs" /> 159 <Compile Include="Filters\IFilter.cs" /> 125 160 <Compile Include="Interfaces\IAuthenticationService.cs" /> 126 161 <Compile Include="Interfaces\IOKBService.cs" /> -
branches/OKB/HeuristicLab.Services.OKB/3.3/Interfaces/IOKBService.cs
r5073 r5269 188 188 IEnumerable<Run> GetRuns(long experimentId); 189 189 [OperationContract] 190 IEnumerable<Run> QueryRuns(string query);191 [OperationContract]192 190 long AddRun(Run dto); 193 191 [OperationContract] 194 192 void DeleteRun(long id); 193 #endregion 194 195 #region Query Methods 196 [OperationContract] 197 IEnumerable<Filter> GetFilters(); 198 [OperationContract] 199 IEnumerable<Run> QueryRuns(IEnumerable<Filter> filters); 195 200 #endregion 196 201 } -
branches/OKB/HeuristicLab.Services.OKB/3.3/OKBService.cs
r5073 r5269 534 534 } 535 535 } 536 public IEnumerable<DataTransfer.Run> QueryRuns(string query) { 536 public long AddRun(DataTransfer.Run dto) { 537 using (OKBDataContext okb = new OKBDataContext()) { 538 DataAccess.Run entity = Convert.ToEntity(dto); entity.Id = 0; 539 okb.Runs.InsertOnSubmit(entity); 540 okb.SubmitChanges(); 541 return entity.Id; 542 } 543 } 544 public void DeleteRun(long id) { 545 using (OKBDataContext okb = new OKBDataContext()) { 546 IEnumerable<DataAccess.ResultBlobValue> resultBlobValues = okb.ResultBlobValues.Where(x => x.RunId == id); 547 okb.ResultBlobValues.DeleteAllOnSubmit(resultBlobValues); 548 IEnumerable<DataAccess.ResultBoolValue> resultBoolValues = okb.ResultBoolValues.Where(x => x.RunId == id); 549 okb.ResultBoolValues.DeleteAllOnSubmit(resultBoolValues); 550 IEnumerable<DataAccess.ResultFloatValue> resultFloatValues = okb.ResultFloatValues.Where(x => x.RunId == id); 551 okb.ResultFloatValues.DeleteAllOnSubmit(resultFloatValues); 552 IEnumerable<DataAccess.ResultIntValue> resultIntValues = okb.ResultIntValues.Where(x => x.RunId == id); 553 okb.ResultIntValues.DeleteAllOnSubmit(resultIntValues); 554 IEnumerable<DataAccess.ResultStringValue> resultStringValues = okb.ResultStringValues.Where(x => x.RunId == id); 555 okb.ResultStringValues.DeleteAllOnSubmit(resultStringValues); 556 557 DataAccess.Run entity = okb.Runs.FirstOrDefault(x => x.Id == id); 558 if (entity != null) okb.Runs.DeleteOnSubmit(entity); 559 okb.SubmitChanges(); 560 } 561 } 562 #endregion 563 564 #region Query Methods 565 public IEnumerable<DataTransfer.Filter> GetFilters() { 566 List<DataTransfer.Filter> filters = new List<DataTransfer.Filter>(); 567 using (OKBDataContext okb = new OKBDataContext()) { 568 DataLoadOptions dlo = new DataLoadOptions(); 569 dlo.LoadWith<AlgorithmParameter>(x => x.DataType); 570 dlo.LoadWith<ProblemParameter>(x => x.DataType); 571 dlo.LoadWith<Result>(x => x.DataType); 572 okb.LoadOptions = dlo; 573 574 // run filters 575 filters.Add(new DataTransfer.OrdinalComparisonIntFilter(typeof(RunRandomSeedFilter).AssemblyQualifiedName, "Run Random Seed")); 576 filters.Add(new DataTransfer.OrdinalComparisonDateTimeFilter(typeof(RunFinishedDateFilter).AssemblyQualifiedName, "Run Finished Date")); 577 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(RunUserNameFilter).AssemblyQualifiedName, "Run User Name")); 578 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(RunClientNameFilter).AssemblyQualifiedName, "Run Client Name")); 579 580 // result filters 581 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ResultNameFilter).AssemblyQualifiedName, "Result Name")); 582 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 583 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ResultBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value Data Type Name", entity.Name)); 584 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 585 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ResultBlobValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 586 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 587 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(ResultBoolValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 588 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 589 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(ResultFloatValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 590 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 591 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(ResultIntValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 592 foreach (Result entity in okb.Results.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<Result>(new GenericEqualityComparer<Result>((x, y) => x.Name == y.Name))) 593 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ResultStringValueValueFilter).AssemblyQualifiedName, "Result " + entity.Name + " Value", entity.Name)); 594 595 // algorithm parameter filters 596 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmParameterNameFilter).AssemblyQualifiedName, "Algorithm Parameter Name")); 597 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 598 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(AlgorithmParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value Data Type Name", entity.Name)); 599 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 600 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(AlgorithmParameterBlobValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 601 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 602 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(AlgorithmParameterBoolValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 603 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 604 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(AlgorithmParameterFloatValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 605 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 606 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(AlgorithmParameterIntValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 607 foreach (AlgorithmParameter entity in okb.AlgorithmParameters.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<AlgorithmParameter>(new GenericEqualityComparer<AlgorithmParameter>((x, y) => x.Name == y.Name))) 608 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(AlgorithmParameterStringValueValueFilter).AssemblyQualifiedName, "Algorithm Parameter " + entity.Name + " Value", entity.Name)); 609 610 // algorithm filters 611 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmNameFilter).AssemblyQualifiedName, "Algorithm Name")); 612 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmClassNameFilter).AssemblyQualifiedName, "Algorithm Class Name")); 613 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmPlattformNameFilter).AssemblyQualifiedName, "Algorithm Plattform Name")); 614 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(AlgorithmDataDataTypeNameFilter).AssemblyQualifiedName, "Algorithm Data Type Name")); 615 616 // problem parameter filters 617 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemParameterNameFilter).AssemblyQualifiedName, "Problem Parameter Name")); 618 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 619 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ProblemParameterBlobValueDataTypeNameFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value Data Type Name", entity.Name)); 620 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "varbinary").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 621 filters.Add(new DataTransfer.NameEqualityComparisonByteArrayFilter(typeof(ProblemParameterBlobValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 622 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bit").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 623 filters.Add(new DataTransfer.NameEqualityComparisonBoolFilter(typeof(ProblemParameterBoolValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 624 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "float").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 625 filters.Add(new DataTransfer.NameOrdinalComparisonDoubleFilter(typeof(ProblemParameterFloatValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 626 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "bigint").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 627 filters.Add(new DataTransfer.NameOrdinalComparisonLongFilter(typeof(ProblemParameterIntValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 628 foreach (ProblemParameter entity in okb.ProblemParameters.Where(x => x.DataType.SqlName == "nvarchar").AsEnumerable().Distinct<ProblemParameter>(new GenericEqualityComparer<ProblemParameter>((x, y) => x.Name == y.Name))) 629 filters.Add(new DataTransfer.NameSetComparisonStringFilter(typeof(ProblemParameterStringValueValueFilter).AssemblyQualifiedName, "Problem Parameter " + entity.Name + " Value", entity.Name)); 630 631 // problem filters 632 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemNameFilter).AssemblyQualifiedName, "Problem Name")); 633 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemClassNameFilter).AssemblyQualifiedName, "Problem Class Name")); 634 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemPlattformNameFilter).AssemblyQualifiedName, "Problem Plattform Name")); 635 filters.Add(new DataTransfer.SetComparisonStringFilter(typeof(ProblemDataDataTypeNameFilter).AssemblyQualifiedName, "Problem Data Type Name")); 636 } 637 return filters.OrderBy(x => x.Label); 638 } 639 public IEnumerable<DataTransfer.Run> QueryRuns(IEnumerable<DataTransfer.Filter> filters) { 537 640 using (OKBDataContext okb = new OKBDataContext()) { 538 641 DataLoadOptions dlo = new DataLoadOptions(); … … 596 699 dlo.LoadWith<Problem>(x => x.Platform); 597 700 okb.LoadOptions = dlo; 598 var runs = okb.Runs.Where(x => x.ResultFloatValues.Any(y => y.Result.Name == "BestQuality" && y.Value > double.Parse(query))); 701 702 var runs = okb.Runs.AsQueryable<Run>(); 703 foreach (DataTransfer.Filter filter in filters) { 704 IFilter f = (IFilter)Activator.CreateInstance(Type.GetType(filter.FilterTypeName), filter); 705 runs = f.Apply(runs); 706 } 599 707 return runs.Select(x => Convert.ToDto(x)).ToArray(); 600 }601 }602 public long AddRun(DataTransfer.Run dto) {603 using (OKBDataContext okb = new OKBDataContext()) {604 DataAccess.Run entity = Convert.ToEntity(dto); entity.Id = 0;605 okb.Runs.InsertOnSubmit(entity);606 okb.SubmitChanges();607 return entity.Id;608 }609 }610 public void DeleteRun(long id) {611 using (OKBDataContext okb = new OKBDataContext()) {612 IEnumerable<DataAccess.ResultBlobValue> resultBlobValues = okb.ResultBlobValues.Where(x => x.RunId == id);613 okb.ResultBlobValues.DeleteAllOnSubmit(resultBlobValues);614 IEnumerable<DataAccess.ResultBoolValue> resultBoolValues = okb.ResultBoolValues.Where(x => x.RunId == id);615 okb.ResultBoolValues.DeleteAllOnSubmit(resultBoolValues);616 IEnumerable<DataAccess.ResultFloatValue> resultFloatValues = okb.ResultFloatValues.Where(x => x.RunId == id);617 okb.ResultFloatValues.DeleteAllOnSubmit(resultFloatValues);618 IEnumerable<DataAccess.ResultIntValue> resultIntValues = okb.ResultIntValues.Where(x => x.RunId == id);619 okb.ResultIntValues.DeleteAllOnSubmit(resultIntValues);620 IEnumerable<DataAccess.ResultStringValue> resultStringValues = okb.ResultStringValues.Where(x => x.RunId == id);621 okb.ResultStringValues.DeleteAllOnSubmit(resultStringValues);622 623 DataAccess.Run entity = okb.Runs.FirstOrDefault(x => x.Id == id);624 if (entity != null) okb.Runs.DeleteOnSubmit(entity);625 okb.SubmitChanges();626 708 } 627 709 }
Note: See TracChangeset
for help on using the changeset viewer.