Free cookie consent management tool by TermsFeed Policy Generator

Changeset 5533


Ignore:
Timestamp:
02/22/11 00:22:52 (13 years ago)
Author:
swagner
Message:

Worked on OKB (#1174)

Location:
branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3
Files:
2 added
2 edited
2 copied
31 moved

Legend:

Unmodified
Added
Removed
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/AdministrationClient.cs

    r5532 r5533  
    2222using System;
    2323using System.Collections.Generic;
    24 using System.IO;
    2524using System.Linq;
    2625using HeuristicLab.Clients.Common;
     
    2827using HeuristicLab.Common;
    2928using HeuristicLab.Core;
    30 using HeuristicLab.Data;
    31 using HeuristicLab.Optimization;
    32 using HeuristicLab.Persistence.Default.Xml;
    3329using HeuristicLab.PluginInfrastructure;
    3430
    35 namespace HeuristicLab.Clients.OKB {
    36   [Item("OKBClient", "Client for accessing the OKB.")]
    37   public sealed class OKBClient : IContent {
    38     private static OKBClient instance;
    39     public static OKBClient Instance {
     31namespace HeuristicLab.Clients.OKB.Administration {
     32  [Item("AdministrationClient", "OKB administration client.")]
     33  public sealed class AdministrationClient : IContent {
     34    private static AdministrationClient instance;
     35    public static AdministrationClient Instance {
    4036      get {
    41         if (instance == null) instance = new OKBClient();
     37        if (instance == null) instance = new AdministrationClient();
    4238        return instance;
    4339      }
     
    4945      get { return platforms; }
    5046    }
    51     private ItemCollection<DataType> dataTypes;
    52     public ItemCollection<DataType> DataTypes {
    53       get { return dataTypes; }
    54     }
    55     private IEnumerable<User> users;
    56     public IEnumerable<User> Users {
    57       get { return users; }
    58     }
    5947    private ItemCollection<AlgorithmClass> algorithmClasses;
    6048    public ItemCollection<AlgorithmClass> AlgorithmClasses {
     
    7563    #endregion
    7664
    77     private OKBClient() {
     65    private AdministrationClient() {
    7866      platforms = new ItemCollection<Platform>();
    7967      platforms.ItemsRemoved += new CollectionItemsChangedEventHandler<Platform>(platforms_ItemsRemoved);
    80       dataTypes = new ItemCollection<DataType>();
    81       dataTypes.ItemsRemoved += new CollectionItemsChangedEventHandler<DataType>(dataTypes_ItemsRemoved);
    8268      algorithmClasses = new ItemCollection<AlgorithmClass>();
    8369      algorithmClasses.ItemsRemoved += new CollectionItemsChangedEventHandler<AlgorithmClass>(algorithmClasses_ItemsRemoved);
     
    9581
    9682      platforms.Clear();
    97       dataTypes.Clear();
    9883      algorithmClasses.Clear();
    9984      algorithms.Clear();
     
    10489        try {
    10590          platforms.AddRange(CallAdministrationService<List<Platform>>(s => s.GetPlatforms()).OrderBy(x => x.Name));
    106           dataTypes.AddRange(CallAdministrationService<List<DataType>>(s => s.GetDataTypes()).OrderBy(x => x.Name));
    107           users = CallAuthenticationService<List<User>>(s => s.GetUsers()).OrderBy(x => x.Name);
    10891          algorithmClasses.AddRange(CallAdministrationService<List<AlgorithmClass>>(s => s.GetAlgorithmClasses()).OrderBy(x => x.Name));
    10992          algorithms.AddRange(CallAdministrationService<List<Algorithm>>(s => s.GetAlgorithms()).OrderBy(x => x.Name));
     
    130113          if (item is Platform)
    131114            item.Id = CallAdministrationService<long>(s => s.AddPlatform((Platform)item));
    132           else if (item is DataType)
    133             item.Id = CallAdministrationService<long>(s => s.AddDataType((DataType)item));
    134115          else if (item is AlgorithmClass)
    135116            item.Id = CallAdministrationService<long>(s => s.AddAlgorithmClass((AlgorithmClass)item));
    136117          else if (item is Algorithm)
    137118            item.Id = CallAdministrationService<long>(s => s.AddAlgorithm((Algorithm)item));
    138           else if (item is AlgorithmParameter)
    139             item.Id = CallAdministrationService<long>(s => s.AddAlgorithmParameter((AlgorithmParameter)item));
    140119          else if (item is ProblemClass)
    141120            item.Id = CallAdministrationService<long>(s => s.AddProblemClass((ProblemClass)item));
    142121          else if (item is Problem)
    143122            item.Id = CallAdministrationService<long>(s => s.AddProblem((Problem)item));
    144           else if (item is ProblemParameter)
    145             item.Id = CallAdministrationService<long>(s => s.AddProblemParameter((ProblemParameter)item));
    146           else if (item is Result)
    147             item.Id = CallAdministrationService<long>(s => s.AddResult((Result)item));
    148           else if (item is Experiment)
    149             item.Id = CallAdministrationService<long>(s => s.AddExperiment((Experiment)item));
    150           else if (item is Run)
    151             item.Id = CallAdministrationService<long>(s => s.AddRun((Run)item));
    152123        } else {
    153124          if (item is Platform)
    154125            CallAdministrationService(s => s.UpdatePlatform((Platform)item));
    155           else if (item is DataType)
    156             CallAdministrationService(s => s.UpdateDataType((DataType)item));
    157126          else if (item is AlgorithmClass)
    158127            CallAdministrationService(s => s.UpdateAlgorithmClass((AlgorithmClass)item));
    159128          else if (item is Algorithm)
    160129            CallAdministrationService(s => s.UpdateAlgorithm((Algorithm)item));
    161           else if (item is AlgorithmParameter)
    162             CallAdministrationService(s => s.UpdateAlgorithmParameter((AlgorithmParameter)item));
    163130          else if (item is ProblemClass)
    164131            CallAdministrationService(s => s.UpdateProblemClass((ProblemClass)item));
    165132          else if (item is Problem)
    166133            CallAdministrationService(s => s.UpdateProblem((Problem)item));
    167           else if (item is ProblemParameter)
    168             CallAdministrationService(s => s.UpdateProblemParameter((ProblemParameter)item));
    169           else if (item is Result)
    170             CallAdministrationService(s => s.UpdateResult((Result)item));
    171           else if (item is Experiment)
    172             item.Id = CallAdministrationService<long>(s => s.AddExperiment((Experiment)item));
    173           else if (item is Run)
    174             item.Id = CallAdministrationService<long>(s => s.AddRun((Run)item));
    175134        }
    176135        return true;
     
    180139        return false;
    181140      }
    182     }
    183     #endregion
    184 
    185     #region DataType Methods
    186     public DataType ConvertToDataType(Type type) {
    187       DataType dataType = DataTypes.FirstOrDefault(x => x.TypeName == type.AssemblyQualifiedName);
    188       if (dataType == null) {
    189         dataType = new DataType();
    190         dataType.Name = type.Name;
    191         dataType.TypeName = type.AssemblyQualifiedName;
    192         dataType.PlatformId = Platforms.FirstOrDefault(x => x.Name == "HeuristicLab 3.3").Id;
    193 
    194         if (typeof(BoolValue).IsAssignableFrom(type))
    195           dataType.SqlName = "bit";
    196         else if (typeof(IntValue).IsAssignableFrom(type))
    197           dataType.SqlName = "bigint";
    198         else if (typeof(DoubleValue).IsAssignableFrom(type))
    199           dataType.SqlName = "float";
    200         else if (typeof(StringValue).IsAssignableFrom(type) || typeof(IStringConvertibleValue).IsAssignableFrom(type))
    201           dataType.SqlName = "nvarchar";
    202         else
    203           dataType.SqlName = "varbinary";
    204 
    205         dataType.Store();
    206         DataTypes.Add(dataType);
    207       }
    208       return dataType;
    209141    }
    210142    #endregion
     
    230162      }
    231163    }
    232     public AlgorithmData GetAlgorithmData(long algorithmId) {
    233       try {
    234         return CallAdministrationService<AlgorithmData>(s => s.GetAlgorithmData(algorithmId));
     164    public byte[] GetAlgorithmData(long algorithmId) {
     165      try {
     166        return CallAdministrationService<byte[]>(s => s.GetAlgorithmData(algorithmId));
    235167      }
    236168      catch (Exception ex) {
     
    239171      }
    240172    }
    241     public bool UpdateAlgorithmData(AlgorithmData algorithmData) {
    242       try {
    243         CallAdministrationService(s => s.UpdateAlgorithmData(algorithmData));
     173    public bool UpdateAlgorithmData(long algorithmId, byte[] algorithmData) {
     174      try {
     175        CallAdministrationService(s => s.UpdateAlgorithmData(algorithmId, algorithmData));
    244176        return true;
    245177      }
     
    271203      }
    272204    }
    273     public ProblemData GetProblemData(long problemId) {
    274       try {
    275         return CallAdministrationService<ProblemData>(s => s.GetProblemData(problemId));
     205    public byte[] GetProblemData(long problemId) {
     206      try {
     207        return CallAdministrationService<byte[]>(s => s.GetProblemData(problemId));
    276208      }
    277209      catch (Exception ex) {
     
    280212      }
    281213    }
    282     public bool UpdateProblemData(ProblemData problemData) {
    283       try {
    284         CallAdministrationService(s => s.UpdateProblemData(problemData));
     214    public bool UpdateProblemData(long problemId, byte[] problemData) {
     215      try {
     216        CallAdministrationService(s => s.UpdateProblemData(problemId, problemData));
    285217        return true;
    286218      }
     
    288220        ErrorHandling.ShowErrorDialog("Update problem data failed.", ex);
    289221        return false;
    290       }
    291     }
    292     #endregion
    293 
    294     #region AlgorithmParameter Methods
    295     public AlgorithmParameter GetAlgorithmParameter(long id) {
    296       try {
    297         return CallAdministrationService<AlgorithmParameter>(s => s.GetAlgorithmParameter(id));
    298       }
    299       catch (Exception ex) {
    300         ErrorHandling.ShowErrorDialog("Refresh algorithm parameter failed.", ex);
    301         return null;
    302       }
    303     }
    304     public ItemCollection<AlgorithmParameter> GetAlgorithmParameters(long algorithmId) {
    305       try {
    306         ItemCollection<AlgorithmParameter> parameters = new ItemCollection<AlgorithmParameter>();
    307         parameters.AddRange(CallAdministrationService<List<AlgorithmParameter>>(s => s.GetAlgorithmParameters(algorithmId)).OrderBy(x => x.Name));
    308         return parameters;
    309       }
    310       catch (Exception ex) {
    311         ErrorHandling.ShowErrorDialog("Refresh algorithm parameters failed.", ex);
    312         return null;
    313       }
    314     }
    315     #endregion
    316 
    317     #region ProblemParameter Methods
    318     public ProblemParameter GetProblemParameter(long id) {
    319       try {
    320         return CallAdministrationService<ProblemParameter>(s => s.GetProblemParameter(id));
    321       }
    322       catch (Exception ex) {
    323         ErrorHandling.ShowErrorDialog("Refresh problem parameter failed.", ex);
    324         return null;
    325       }
    326     }
    327     public ItemCollection<ProblemParameter> GetProblemParameters(long problemId) {
    328       try {
    329         ItemCollection<ProblemParameter> parameters = new ItemCollection<ProblemParameter>();
    330         parameters.AddRange(CallAdministrationService<List<ProblemParameter>>(s => s.GetProblemParameters(problemId)).OrderBy(x => x.Name));
    331         return parameters;
    332       }
    333       catch (Exception ex) {
    334         ErrorHandling.ShowErrorDialog("Refresh problem parameters failed.", ex);
    335         return null;
    336       }
    337     }
    338     #endregion
    339 
    340     #region Result Methods
    341     public Result GetResult(long id) {
    342       try {
    343         return CallAdministrationService<Result>(s => s.GetResult(id));
    344       }
    345       catch (Exception ex) {
    346         ErrorHandling.ShowErrorDialog("Refresh result failed.", ex);
    347         return null;
    348       }
    349     }
    350     public ItemCollection<Result> GetResults(long algorithmId) {
    351       try {
    352         ItemCollection<Result> results = new ItemCollection<Result>();
    353         results.AddRange(CallAdministrationService<List<Result>>(s => s.GetResults(algorithmId)).OrderBy(x => x.Name));
    354         return results;
    355       }
    356       catch (Exception ex) {
    357         ErrorHandling.ShowErrorDialog("Refresh results failed.", ex);
    358         return null;
    359       }
    360     }
    361     #endregion
    362 
    363     #region Experiment Methods
    364     public Experiment GetExperiment(long id) {
    365       try {
    366         return CallAdministrationService<Experiment>(s => s.GetExperiment(id));
    367       }
    368       catch (Exception ex) {
    369         ErrorHandling.ShowErrorDialog("Refresh experiment failed.", ex);
    370         return null;
    371       }
    372     }
    373     public ItemCollection<Experiment> GetExperiments(long algorithmId, long problemId) {
    374       try {
    375         ItemCollection<Experiment> experiments = new ItemCollection<Experiment>();
    376         experiments.AddRange(CallAdministrationService<List<Experiment>>(s => s.GetExperiments(algorithmId, problemId)));
    377         experiments.ItemsRemoved += new CollectionItemsChangedEventHandler<Experiment>(experiments_ItemsRemoved);
    378         return experiments;
    379       }
    380       catch (Exception ex) {
    381         ErrorHandling.ShowErrorDialog("Refresh experiments failed.", ex);
    382         return null;
    383       }
    384     }
    385     #endregion
    386 
    387     #region Run Methods
    388     public ItemCollection<Run> GetRuns(long experimentId) {
    389       try {
    390         ItemCollection<Run> runs = new ItemCollection<Run>();
    391         runs.AddRange(CallAdministrationService<List<Run>>(s => s.GetRuns(experimentId)).OrderByDescending(x => x.CreatedDate));
    392         runs.ItemsRemoved += new CollectionItemsChangedEventHandler<Run>(runs_ItemsRemoved);
    393         return runs;
    394       }
    395       catch (Exception ex) {
    396         ErrorHandling.ShowErrorDialog("Refresh runs failed.", ex);
    397         return null;
    398       }
    399     }
    400     public bool AddRun(long algorithmId, long problemId, IAlgorithm algorithm) {
    401       try {
    402         IProblem problem = algorithm.Problem;
    403 
    404         ItemCollection<AlgorithmParameter> algorithmParameters = GetAlgorithmParameters(algorithmId);
    405         List<AlgorithmParameterValue> algorithmParameterValues = CollectAlgorithmParameterValues(algorithmId, algorithmParameters, algorithm, "");
    406         ItemCollection<ProblemParameter> problemParameters = GetProblemParameters(problemId);
    407         List<ProblemParameterValue> problemParameterValues = CollectProblemParamterValues(problemId, problemParameters, problem, "");
    408         ItemCollection<Result> results = GetResults(algorithmId);
    409         List<ResultValue> resultValues = CollectResultValues(algorithmId, results, algorithm);
    410 
    411         Experiment exp = new Experiment();
    412         exp.AlgorithmId = algorithmId;
    413         exp.ProblemId = problemId;
    414         exp.AlgorithmParameterValues = algorithmParameterValues;
    415         exp.ProblemParameterValues = problemParameterValues;
    416         exp.Store();
    417 
    418         Run r = new Run();
    419         r.ExperimentId = exp.Id;
    420         r.ClientId = Guid.NewGuid();
    421         r.CreatedDate = DateTime.Now;
    422         r.RandomSeed = ((IntValue)((IValueParameter)algorithm.Parameters["Seed"]).Value).Value;
    423         r.ResultValues = resultValues;
    424         r.Store();
    425 
    426         return true;
    427       }
    428       catch (Exception ex) {
    429         ErrorHandling.ShowErrorDialog("Store run failed.", ex);
    430         return false;
    431       }
    432     }
    433 
    434     private List<AlgorithmParameterValue> CollectAlgorithmParameterValues(long algorithmId, ItemCollection<AlgorithmParameter> parameters, IParameterizedItem item, string prefix) {
    435       List<AlgorithmParameterValue> values = new List<AlgorithmParameterValue>();
    436       foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
    437         if (param.GetsCollected && (param.Value != null) && (param.Name != "Seed")) {
    438           AlgorithmParameter p = parameters.FirstOrDefault(x => x.Name == prefix + param.Name);
    439           if (p == null) {
    440             p = new AlgorithmParameter();
    441             p.Name = prefix + param.Name;
    442             p.Alias = prefix + param.Name;
    443             p.Description = param.Description;
    444             p.AlgorithmId = algorithmId;
    445             p.DataTypeId = ConvertToDataType(param.DataType).Id;
    446             p.Store();
    447             parameters.Add(p);
    448           }
    449           AlgorithmParameterValue value = CreateAlgorithmParameterValue(param.Value);
    450           value.AlgorithmParameterId = p.Id;
    451           value.DataTypeId = ConvertToDataType(param.Value.GetType()).Id;
    452           values.Add(value);
    453         }
    454 
    455         if (param.Value is IParameterizedItem)
    456           values.AddRange(CollectAlgorithmParameterValues(algorithmId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + "."));
    457       }
    458       return values;
    459     }
    460     private AlgorithmParameterValue CreateAlgorithmParameterValue(IItem item) {
    461       if (item is BoolValue) {
    462         AlgorithmParameterBoolValue value = new AlgorithmParameterBoolValue();
    463         value.Value = ((BoolValue)item).Value;
    464         return value;
    465       } else if (item is DoubleValue) {
    466         AlgorithmParameterFloatValue value = new AlgorithmParameterFloatValue();
    467         value.Value = ((DoubleValue)item).Value;
    468         return value;
    469       } else if (item is IntValue) {
    470         AlgorithmParameterIntValue value = new AlgorithmParameterIntValue();
    471         value.Value = ((IntValue)item).Value;
    472         return value;
    473       } else if (item is StringValue) {
    474         AlgorithmParameterStringValue value = new AlgorithmParameterStringValue();
    475         value.Value = ((StringValue)item).Value;
    476         return value;
    477       } else {
    478         AlgorithmParameterBlobValue value = new AlgorithmParameterBlobValue();
    479         try {
    480           using (MemoryStream stream = new MemoryStream()) {
    481             XmlGenerator.Serialize(item, stream);
    482             stream.Close();
    483             value.Value = stream.ToArray();
    484           }
    485         }
    486         catch (Exception ex) {
    487           ErrorHandling.ShowErrorDialog(ex);
    488         }
    489         return value;
    490       }
    491     }
    492     private List<ProblemParameterValue> CollectProblemParamterValues(long problemId, ItemCollection<ProblemParameter> parameters, IParameterizedItem item, string prefix) {
    493       List<ProblemParameterValue> values = new List<ProblemParameterValue>();
    494       foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
    495         if (param.GetsCollected && (param.Value != null)) {
    496           ProblemParameter p = parameters.FirstOrDefault(x => x.Name == prefix + param.Name);
    497           if (p == null) {
    498             p = new ProblemParameter();
    499             p.Name = prefix + param.Name;
    500             p.Alias = prefix + param.Name;
    501             p.Description = param.Description;
    502             p.ProblemId = problemId;
    503             p.DataTypeId = ConvertToDataType(param.DataType).Id;
    504             p.Store();
    505             parameters.Add(p);
    506           }
    507           ProblemParameterValue value = CreateProblemParameterValue(param.Value);
    508           value.ProblemParameterId = p.Id;
    509           value.DataTypeId = ConvertToDataType(param.Value.GetType()).Id;
    510           values.Add(value);
    511         }
    512 
    513         if (param.Value is IParameterizedItem)
    514           values.AddRange(CollectProblemParamterValues(problemId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + "."));
    515       }
    516       return values;
    517     }
    518     private ProblemParameterValue CreateProblemParameterValue(IItem item) {
    519       if (item is BoolValue) {
    520         ProblemParameterBoolValue value = new ProblemParameterBoolValue();
    521         value.Value = ((BoolValue)item).Value;
    522         return value;
    523       } else if (item is DoubleValue) {
    524         ProblemParameterFloatValue value = new ProblemParameterFloatValue();
    525         value.Value = ((DoubleValue)item).Value;
    526         return value;
    527       } else if (item is IntValue) {
    528         ProblemParameterIntValue value = new ProblemParameterIntValue();
    529         value.Value = ((IntValue)item).Value;
    530         return value;
    531       } else if (item is StringValue) {
    532         ProblemParameterStringValue value = new ProblemParameterStringValue();
    533         value.Value = ((StringValue)item).Value;
    534         return value;
    535       } else {
    536         ProblemParameterBlobValue value = new ProblemParameterBlobValue();
    537         try {
    538           using (MemoryStream stream = new MemoryStream()) {
    539             XmlGenerator.Serialize(item, stream);
    540             stream.Close();
    541             value.Value = stream.ToArray();
    542           }
    543         }
    544         catch (Exception ex) {
    545           ErrorHandling.ShowErrorDialog(ex);
    546         }
    547         return value;
    548       }
    549     }
    550     private List<ResultValue> CollectResultValues(long algorithmId, ItemCollection<Result> results, IAlgorithm algorithm) {
    551       List<ResultValue> values = new List<ResultValue>();
    552       foreach (IResult result in algorithm.Results) {
    553         if (result.Value != null) {
    554           Result r = results.FirstOrDefault(x => x.Name == result.Name);
    555           if (r == null) {
    556             r = new Result();
    557             r.Name = result.Name;
    558             r.Alias = result.Name;
    559             r.Description = result.Description;
    560             r.AlgorithmId = algorithmId;
    561             r.DataTypeId = ConvertToDataType(result.DataType).Id;
    562             r.Store();
    563             results.Add(r);
    564           }
    565           ResultValue value = CreateResultValue(result.Value);
    566           value.ResultId = r.Id;
    567           value.DataTypeId = ConvertToDataType(result.Value.GetType()).Id;
    568           values.Add(value);
    569         }
    570       }
    571       return values;
    572     }
    573     private ResultValue CreateResultValue(IItem item) {
    574       if (item is BoolValue) {
    575         ResultBoolValue value = new ResultBoolValue();
    576         value.Value = ((BoolValue)item).Value;
    577         return value;
    578       } else if (item is DoubleValue) {
    579         ResultFloatValue value = new ResultFloatValue();
    580         value.Value = ((DoubleValue)item).Value;
    581         return value;
    582       } else if (item is IntValue) {
    583         ResultIntValue value = new ResultIntValue();
    584         value.Value = ((IntValue)item).Value;
    585         return value;
    586       } else if (item is StringValue) {
    587         ResultStringValue value = new ResultStringValue();
    588         value.Value = ((StringValue)item).Value;
    589         return value;
    590       } else {
    591         ResultBlobValue value = new ResultBlobValue();
    592         try {
    593           using (MemoryStream stream = new MemoryStream()) {
    594             XmlGenerator.Serialize(item, stream);
    595             stream.Close();
    596             value.Value = stream.ToArray();
    597           }
    598         }
    599         catch (Exception ex) {
    600           ErrorHandling.ShowErrorDialog(ex);
    601         }
    602         return value;
    603       }
    604     }
    605     #endregion
    606 
    607     #region Query Methods
    608     private IEnumerable<Filter> filters;
    609     public IEnumerable<Filter> GetFilters(bool refresh) {
    610       if (refresh || (filters == null)) {
    611         try {
    612           filters = CallQueryService<List<Filter>>(s => s.GetFilters());
    613         }
    614         catch (Exception ex) {
    615           ErrorHandling.ShowErrorDialog("Get filters failed.", ex);
    616           return Enumerable.Empty<Filter>();
    617         }
    618       }
    619       return filters;
    620     }
    621     public IEnumerable<Filter> GetFilters() {
    622       return GetFilters(false);
    623     }
    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);
    630         return -1;
    631       }
    632     }
    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);
    648         return null;
    649222      }
    650223    }
     
    672245      }
    673246    }
    674     private void dataTypes_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<DataType> e) {
    675       try {
    676         foreach (DataType d in e.Items)
    677           CallAdministrationService(s => s.DeleteDataType(d.Id));
    678       }
    679       catch (Exception ex) {
    680         ErrorHandling.ShowErrorDialog("Delete failed.", ex);
    681       }
    682     }
    683247    private void algorithmClasses_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<AlgorithmClass> e) {
    684248      try {
     
    712276        foreach (Problem p in e.Items)
    713277          CallAdministrationService(s => s.DeleteProblem(p.Id));
    714       }
    715       catch (Exception ex) {
    716         ErrorHandling.ShowErrorDialog("Delete failed.", ex);
    717       }
    718     }
    719     private void experiments_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<Experiment> e) {
    720       try {
    721         foreach (Experiment exp in e.Items)
    722           CallAdministrationService(s => s.DeleteExperiment(exp.Id));
    723       }
    724       catch (Exception ex) {
    725         ErrorHandling.ShowErrorDialog("Delete failed.", ex);
    726       }
    727     }
    728     private void runs_ItemsRemoved(object sender, CollectionItemsChangedEventArgs<Run> e) {
    729       try {
    730         foreach (Run r in e.Items)
    731           CallAdministrationService(s => s.DeleteRun(r.Id));
    732278      }
    733279      catch (Exception ex) {
     
    766312      }
    767313    }
    768     private void CallQueryService(Action<IQueryService> call) {
    769       QueryServiceClient client = ClientFactory.CreateClient<QueryServiceClient, IQueryService>();
    770       try {
    771         call(client);
    772       }
    773       finally {
    774         try {
    775           client.Close();
    776         }
    777         catch (Exception) {
    778           client.Abort();
    779         }
    780       }
    781     }
    782     private T CallQueryService<T>(Func<IQueryService, T> call) {
    783       QueryServiceClient client = ClientFactory.CreateClient<QueryServiceClient, IQueryService>();
    784       try {
    785         return call(client);
    786       }
    787       finally {
    788         try {
    789           client.Close();
    790         }
    791         catch (Exception) {
    792           client.Abort();
    793         }
    794       }
    795     }
    796     private T CallAuthenticationService<T>(Func<IAuthenticationService, T> call) {
    797       AuthenticationServiceClient client = ClientFactory.CreateClient<AuthenticationServiceClient, IAuthenticationService>();
    798       try {
    799         return call(client);
    800       }
    801       finally {
    802         try {
    803           client.Close();
    804         }
    805         catch (Exception) {
    806           client.Abort();
    807         }
    808       }
    809     }
    810314    #endregion
    811315  }
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/AdministratorMenuItem.cs

    r5532 r5533  
    2424using HeuristicLab.Optimizer;
    2525
    26 namespace HeuristicLab.Clients.OKB {
     26namespace HeuristicLab.Clients.OKB.Administration {
    2727  internal class AdministratorMenuItem : HeuristicLab.MainForm.WindowsForms.MenuItem, IOptimizerUserInterfaceItemProvider {
    2828    public override string Name {
     
    3737
    3838    public override void Execute() {
    39       MainFormManager.MainForm.ShowContent(OKBClient.Instance);
     39      MainFormManager.MainForm.ShowContent(AdministrationClient.Instance);
    4040    }
    4141  }
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/AdministrationServiceClient.cs

    r5504 r5533  
    99//------------------------------------------------------------------------------
    1010
    11 namespace HeuristicLab.Clients.OKB.Administration
    12 {
    13     using System.Runtime.Serialization;
    14    
    15    
    16     [System.Diagnostics.DebuggerStepThroughAttribute()]
    17     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    18     [System.Runtime.Serialization.DataContractAttribute(Name="Platform", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    19         "DataTransfer")]
    20     public partial class Platform : HeuristicLab.Clients.OKB.Administration.NamedOKBItem
    21     {
    22     }
    23    
    24     [System.Diagnostics.DebuggerStepThroughAttribute()]
    25     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    26     [System.Runtime.Serialization.DataContractAttribute(Name="OKBItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    27         "DataTransfer")]
    28     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.NamedOKBItem))]
    29     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.AlgorithmClass))]
    30     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Algorithm))]
    31     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.ProblemClass))]
    32     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Problem))]
    33     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Platform))]
    34     public partial class OKBItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
    35     {
    36        
    37         private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
    38        
    39         private long IdField;
    40        
    41         public System.Runtime.Serialization.ExtensionDataObject ExtensionData
    42         {
    43             get
    44             {
    45                 return this.extensionDataField;
    46             }
    47             set
    48             {
    49                 this.extensionDataField = value;
    50             }
    51         }
    52        
    53         [System.Runtime.Serialization.DataMemberAttribute()]
    54         public long Id
    55         {
    56             get
    57             {
    58                 return this.IdField;
    59             }
    60             set
    61             {
    62                 if ((this.IdField.Equals(value) != true))
    63                 {
    64                     this.IdField = value;
    65                     this.RaisePropertyChanged("Id");
    66                 }
    67             }
    68         }
    69        
    70         public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
    71        
    72         protected void RaisePropertyChanged(string propertyName)
    73         {
    74             System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
    75             if ((propertyChanged != null))
    76             {
    77                 propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
    78             }
    79         }
    80     }
    81    
    82     [System.Diagnostics.DebuggerStepThroughAttribute()]
    83     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    84     [System.Runtime.Serialization.DataContractAttribute(Name="NamedOKBItem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    85         "DataTransfer")]
    86     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.AlgorithmClass))]
    87     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Algorithm))]
    88     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.ProblemClass))]
    89     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Problem))]
    90     [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Platform))]
    91     public partial class NamedOKBItem : HeuristicLab.Clients.OKB.Administration.OKBItem
    92     {
    93        
    94         private string DescriptionField;
    95        
    96         private string NameField;
    97        
    98         [System.Runtime.Serialization.DataMemberAttribute()]
    99         public string Description
    100         {
    101             get
    102             {
    103                 return this.DescriptionField;
    104             }
    105             set
    106             {
    107                 if ((object.ReferenceEquals(this.DescriptionField, value) != true))
    108                 {
    109                     this.DescriptionField = value;
    110                     this.RaisePropertyChanged("Description");
    111                 }
    112             }
    113         }
    114        
    115         [System.Runtime.Serialization.DataMemberAttribute()]
    116         public string Name
    117         {
    118             get
    119             {
    120                 return this.NameField;
    121             }
    122             set
    123             {
    124                 if ((object.ReferenceEquals(this.NameField, value) != true))
    125                 {
    126                     this.NameField = value;
    127                     this.RaisePropertyChanged("Name");
    128                 }
    129             }
    130         }
    131     }
    132    
    133     [System.Diagnostics.DebuggerStepThroughAttribute()]
    134     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    135     [System.Runtime.Serialization.DataContractAttribute(Name="AlgorithmClass", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    136         "DataTransfer")]
    137     public partial class AlgorithmClass : HeuristicLab.Clients.OKB.Administration.NamedOKBItem
    138     {
    139     }
    140    
    141     [System.Diagnostics.DebuggerStepThroughAttribute()]
    142     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    143     [System.Runtime.Serialization.DataContractAttribute(Name="Algorithm", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    144         "DataTransfer")]
    145     public partial class Algorithm : HeuristicLab.Clients.OKB.Administration.NamedOKBItem
    146     {
    147        
    148         private long AlgorithmClassIdField;
    149        
    150         private HeuristicLab.Clients.OKB.Administration.DataType DataTypeField;
    151        
    152         private long PlatformIdField;
    153        
    154         [System.Runtime.Serialization.DataMemberAttribute()]
    155         public long AlgorithmClassId
    156         {
    157             get
    158             {
    159                 return this.AlgorithmClassIdField;
    160             }
    161             set
    162             {
    163                 if ((this.AlgorithmClassIdField.Equals(value) != true))
    164                 {
    165                     this.AlgorithmClassIdField = value;
    166                     this.RaisePropertyChanged("AlgorithmClassId");
    167                 }
    168             }
    169         }
    170        
    171         [System.Runtime.Serialization.DataMemberAttribute()]
    172         public HeuristicLab.Clients.OKB.Administration.DataType DataType
    173         {
    174             get
    175             {
    176                 return this.DataTypeField;
    177             }
    178             set
    179             {
    180                 if ((object.ReferenceEquals(this.DataTypeField, value) != true))
    181                 {
    182                     this.DataTypeField = value;
    183                     this.RaisePropertyChanged("DataType");
    184                 }
    185             }
    186         }
    187        
    188         [System.Runtime.Serialization.DataMemberAttribute()]
    189         public long PlatformId
    190         {
    191             get
    192             {
    193                 return this.PlatformIdField;
    194             }
    195             set
    196             {
    197                 if ((this.PlatformIdField.Equals(value) != true))
    198                 {
    199                     this.PlatformIdField = value;
    200                     this.RaisePropertyChanged("PlatformId");
    201                 }
    202             }
    203         }
    204     }
    205    
    206     [System.Diagnostics.DebuggerStepThroughAttribute()]
    207     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    208     [System.Runtime.Serialization.DataContractAttribute(Name="ProblemClass", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    209         "DataTransfer")]
    210     public partial class ProblemClass : HeuristicLab.Clients.OKB.Administration.NamedOKBItem
    211     {
    212     }
    213    
    214     [System.Diagnostics.DebuggerStepThroughAttribute()]
    215     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    216     [System.Runtime.Serialization.DataContractAttribute(Name="Problem", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    217         "DataTransfer")]
    218     public partial class Problem : HeuristicLab.Clients.OKB.Administration.NamedOKBItem
    219     {
    220        
    221         private HeuristicLab.Clients.OKB.Administration.DataType DataTypeField;
    222        
    223         private long PlatformIdField;
    224        
    225         private long ProblemClassIdField;
    226        
    227         [System.Runtime.Serialization.DataMemberAttribute()]
    228         public HeuristicLab.Clients.OKB.Administration.DataType DataType
    229         {
    230             get
    231             {
    232                 return this.DataTypeField;
    233             }
    234             set
    235             {
    236                 if ((object.ReferenceEquals(this.DataTypeField, value) != true))
    237                 {
    238                     this.DataTypeField = value;
    239                     this.RaisePropertyChanged("DataType");
    240                 }
    241             }
    242         }
    243        
    244         [System.Runtime.Serialization.DataMemberAttribute()]
    245         public long PlatformId
    246         {
    247             get
    248             {
    249                 return this.PlatformIdField;
    250             }
    251             set
    252             {
    253                 if ((this.PlatformIdField.Equals(value) != true))
    254                 {
    255                     this.PlatformIdField = value;
    256                     this.RaisePropertyChanged("PlatformId");
    257                 }
    258             }
    259         }
    260        
    261         [System.Runtime.Serialization.DataMemberAttribute()]
    262         public long ProblemClassId
    263         {
    264             get
    265             {
    266                 return this.ProblemClassIdField;
    267             }
    268             set
    269             {
    270                 if ((this.ProblemClassIdField.Equals(value) != true))
    271                 {
    272                     this.ProblemClassIdField = value;
    273                     this.RaisePropertyChanged("ProblemClassId");
    274                 }
    275             }
    276         }
    277     }
    278    
    279     [System.Diagnostics.DebuggerStepThroughAttribute()]
    280     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    281     [System.Runtime.Serialization.DataContractAttribute(Name="DataType", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
    282         "DataTransfer")]
    283     public partial class DataType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
    284     {
    285        
    286         private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
    287        
    288         private string NameField;
    289        
    290         private string TypeNameField;
    291        
    292         public System.Runtime.Serialization.ExtensionDataObject ExtensionData
    293         {
    294             get
    295             {
    296                 return this.extensionDataField;
    297             }
    298             set
    299             {
    300                 this.extensionDataField = value;
    301             }
    302         }
    303        
    304         [System.Runtime.Serialization.DataMemberAttribute()]
    305         public string Name
    306         {
    307             get
    308             {
    309                 return this.NameField;
    310             }
    311             set
    312             {
    313                 if ((object.ReferenceEquals(this.NameField, value) != true))
    314                 {
    315                     this.NameField = value;
    316                     this.RaisePropertyChanged("Name");
    317                 }
    318             }
    319         }
    320        
    321         [System.Runtime.Serialization.DataMemberAttribute()]
    322         public string TypeName
    323         {
    324             get
    325             {
    326                 return this.TypeNameField;
    327             }
    328             set
    329             {
    330                 if ((object.ReferenceEquals(this.TypeNameField, value) != true))
    331                 {
    332                     this.TypeNameField = value;
    333                     this.RaisePropertyChanged("TypeName");
    334                 }
    335             }
    336         }
    337        
    338         public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
    339        
    340         protected void RaisePropertyChanged(string propertyName)
    341         {
    342             System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
    343             if ((propertyChanged != null))
    344             {
    345                 propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
    346             }
    347         }
    348     }
    349    
    350     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    351     [System.ServiceModel.ServiceContractAttribute(ConfigurationName="HeuristicLab.Clients.OKB.Administration.IAdministrationService")]
    352     public interface IAdministrationService
    353     {
    354        
    355         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblemUsers", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemUsersResponse")]
    356         void UpdateProblemUsers(long problemId, System.Collections.Generic.List<System.Guid> users);
    357        
    358         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblemData", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemDataResponse")]
    359         byte[] GetProblemData(long problemId);
    360        
    361         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblemData", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemDataResponse")]
    362         void UpdateProblemData(long problemId, byte[] data);
    363        
    364         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetPlatforms", ReplyAction="http://tempuri.org/IAdministrationService/GetPlatformsResponse")]
    365         System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Platform> GetPlatforms();
    366        
    367         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddPlatform", ReplyAction="http://tempuri.org/IAdministrationService/AddPlatformResponse")]
    368         long AddPlatform(HeuristicLab.Clients.OKB.Administration.Platform dto);
    369        
    370         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdatePlatform", ReplyAction="http://tempuri.org/IAdministrationService/UpdatePlatformResponse")]
    371         void UpdatePlatform(HeuristicLab.Clients.OKB.Administration.Platform dto);
    372        
    373         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeletePlatform", ReplyAction="http://tempuri.org/IAdministrationService/DeletePlatformResponse")]
    374         void DeletePlatform(long id);
    375        
    376         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithmClasses", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmClassesResponse")]
    377         System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.AlgorithmClass> GetAlgorithmClasses();
    378        
    379         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddAlgorithmClass", ReplyAction="http://tempuri.org/IAdministrationService/AddAlgorithmClassResponse")]
    380         long AddAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto);
    381        
    382         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithmClass", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmClassResponse")]
    383         void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto);
    384        
    385         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteAlgorithmClass", ReplyAction="http://tempuri.org/IAdministrationService/DeleteAlgorithmClassResponse")]
    386         void DeleteAlgorithmClass(long id);
    387        
    388         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithms", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmsResponse")]
    389         System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Algorithm> GetAlgorithms();
    390        
    391         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddAlgorithm", ReplyAction="http://tempuri.org/IAdministrationService/AddAlgorithmResponse")]
    392         long AddAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto);
    393        
    394         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithm", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmResponse")]
    395         void UpdateAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto);
    396        
    397         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteAlgorithm", ReplyAction="http://tempuri.org/IAdministrationService/DeleteAlgorithmResponse")]
    398         void DeleteAlgorithm(long id);
    399        
    400         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithmUsers", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmUsersResponse")]
    401         System.Collections.Generic.List<System.Guid> GetAlgorithmUsers(long algorithmId);
    402        
    403         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithmUsers", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmUsersResponse")]
    404         void UpdateAlgorithmUsers(long algorithmId, System.Collections.Generic.List<System.Guid> users);
    405        
    406         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetAlgorithmData", ReplyAction="http://tempuri.org/IAdministrationService/GetAlgorithmDataResponse")]
    407         byte[] GetAlgorithmData(long algorithmId);
    408        
    409         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateAlgorithmData", ReplyAction="http://tempuri.org/IAdministrationService/UpdateAlgorithmDataResponse")]
    410         void UpdateAlgorithmData(long algorithmId, byte[] data);
    411        
    412         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblemClasses", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemClassesResponse")]
    413         System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.ProblemClass> GetProblemClasses();
    414        
    415         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddProblemClass", ReplyAction="http://tempuri.org/IAdministrationService/AddProblemClassResponse")]
    416         long AddProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto);
    417        
    418         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblemClass", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemClassResponse")]
    419         void UpdateProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto);
    420        
    421         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteProblemClass", ReplyAction="http://tempuri.org/IAdministrationService/DeleteProblemClassResponse")]
    422         void DeleteProblemClass(long id);
    423        
    424         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblems", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemsResponse")]
    425         System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Problem> GetProblems();
    426        
    427         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/AddProblem", ReplyAction="http://tempuri.org/IAdministrationService/AddProblemResponse")]
    428         long AddProblem(HeuristicLab.Clients.OKB.Administration.Problem dto);
    429        
    430         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/UpdateProblem", ReplyAction="http://tempuri.org/IAdministrationService/UpdateProblemResponse")]
    431         void UpdateProblem(HeuristicLab.Clients.OKB.Administration.Problem dto);
    432        
    433         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/DeleteProblem", ReplyAction="http://tempuri.org/IAdministrationService/DeleteProblemResponse")]
    434         void DeleteProblem(long id);
    435        
    436         [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IAdministrationService/GetProblemUsers", ReplyAction="http://tempuri.org/IAdministrationService/GetProblemUsersResponse")]
    437         System.Collections.Generic.List<System.Guid> GetProblemUsers(long problemId);
    438     }
    439    
    440     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    441     public interface IAdministrationServiceChannel : HeuristicLab.Clients.OKB.Administration.IAdministrationService, System.ServiceModel.IClientChannel
    442     {
    443     }
    444    
    445     [System.Diagnostics.DebuggerStepThroughAttribute()]
    446     [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
    447     public partial class AdministrationServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.Administration.IAdministrationService>, HeuristicLab.Clients.OKB.Administration.IAdministrationService
    448     {
    449        
    450         public AdministrationServiceClient()
    451         {
    452         }
    453        
    454         public AdministrationServiceClient(string endpointConfigurationName) :
    455                 base(endpointConfigurationName)
    456         {
    457         }
    458        
    459         public AdministrationServiceClient(string endpointConfigurationName, string remoteAddress) :
    460                 base(endpointConfigurationName, remoteAddress)
    461         {
    462         }
    463        
    464         public AdministrationServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
    465                 base(endpointConfigurationName, remoteAddress)
    466         {
    467         }
    468        
    469         public AdministrationServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
    470                 base(binding, remoteAddress)
    471         {
    472         }
    473        
    474         public void UpdateProblemUsers(long problemId, System.Collections.Generic.List<System.Guid> users)
    475         {
    476             base.Channel.UpdateProblemUsers(problemId, users);
    477         }
    478        
    479         public byte[] GetProblemData(long problemId)
    480         {
    481             return base.Channel.GetProblemData(problemId);
    482         }
    483        
    484         public void UpdateProblemData(long problemId, byte[] data)
    485         {
    486             base.Channel.UpdateProblemData(problemId, data);
    487         }
    488        
    489         public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Platform> GetPlatforms()
    490         {
    491             return base.Channel.GetPlatforms();
    492         }
    493        
    494         public long AddPlatform(HeuristicLab.Clients.OKB.Administration.Platform dto)
    495         {
    496             return base.Channel.AddPlatform(dto);
    497         }
    498        
    499         public void UpdatePlatform(HeuristicLab.Clients.OKB.Administration.Platform dto)
    500         {
    501             base.Channel.UpdatePlatform(dto);
    502         }
    503        
    504         public void DeletePlatform(long id)
    505         {
    506             base.Channel.DeletePlatform(id);
    507         }
    508        
    509         public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.AlgorithmClass> GetAlgorithmClasses()
    510         {
    511             return base.Channel.GetAlgorithmClasses();
    512         }
    513        
    514         public long AddAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto)
    515         {
    516             return base.Channel.AddAlgorithmClass(dto);
    517         }
    518        
    519         public void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto)
    520         {
    521             base.Channel.UpdateAlgorithmClass(dto);
    522         }
    523        
    524         public void DeleteAlgorithmClass(long id)
    525         {
    526             base.Channel.DeleteAlgorithmClass(id);
    527         }
    528        
    529         public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Algorithm> GetAlgorithms()
    530         {
    531             return base.Channel.GetAlgorithms();
    532         }
    533        
    534         public long AddAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto)
    535         {
    536             return base.Channel.AddAlgorithm(dto);
    537         }
    538        
    539         public void UpdateAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto)
    540         {
    541             base.Channel.UpdateAlgorithm(dto);
    542         }
    543        
    544         public void DeleteAlgorithm(long id)
    545         {
    546             base.Channel.DeleteAlgorithm(id);
    547         }
    548        
    549         public System.Collections.Generic.List<System.Guid> GetAlgorithmUsers(long algorithmId)
    550         {
    551             return base.Channel.GetAlgorithmUsers(algorithmId);
    552         }
    553        
    554         public void UpdateAlgorithmUsers(long algorithmId, System.Collections.Generic.List<System.Guid> users)
    555         {
    556             base.Channel.UpdateAlgorithmUsers(algorithmId, users);
    557         }
    558        
    559         public byte[] GetAlgorithmData(long algorithmId)
    560         {
    561             return base.Channel.GetAlgorithmData(algorithmId);
    562         }
    563        
    564         public void UpdateAlgorithmData(long algorithmId, byte[] data)
    565         {
    566             base.Channel.UpdateAlgorithmData(algorithmId, data);
    567         }
    568        
    569         public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.ProblemClass> GetProblemClasses()
    570         {
    571             return base.Channel.GetProblemClasses();
    572         }
    573        
    574         public long AddProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto)
    575         {
    576             return base.Channel.AddProblemClass(dto);
    577         }
    578        
    579         public void UpdateProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto)
    580         {
    581             base.Channel.UpdateProblemClass(dto);
    582         }
    583        
    584         public void DeleteProblemClass(long id)
    585         {
    586             base.Channel.DeleteProblemClass(id);
    587         }
    588        
    589         public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Problem> GetProblems()
    590         {
    591             return base.Channel.GetProblems();
    592         }
    593        
    594         public long AddProblem(HeuristicLab.Clients.OKB.Administration.Problem dto)
    595         {
    596             return base.Channel.AddProblem(dto);
    597         }
    598        
    599         public void UpdateProblem(HeuristicLab.Clients.OKB.Administration.Problem dto)
    600         {
    601             base.Channel.UpdateProblem(dto);
    602         }
    603        
    604         public void DeleteProblem(long id)
    605         {
    606             base.Channel.DeleteProblem(id);
    607         }
    608        
    609         public System.Collections.Generic.List<System.Guid> GetProblemUsers(long problemId)
    610         {
    611             return base.Channel.GetProblemUsers(problemId);
    612         }
    613     }
     11namespace HeuristicLab.Clients.OKB.Administration {
     12  using System.Runtime.Serialization;
     13
     14
     15  [System.Diagnostics.DebuggerStepThroughAttribute()]
     16  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     17  [System.Runtime.Serialization.DataContractAttribute(Name = "Platform", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     18      "DataTransfer")]
     19  public partial class Platform : HeuristicLab.Clients.OKB.Administration.NamedOKBItem {
     20  }
     21
     22  [System.Diagnostics.DebuggerStepThroughAttribute()]
     23  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     24  [System.Runtime.Serialization.DataContractAttribute(Name = "OKBItem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     25      "DataTransfer")]
     26  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.NamedOKBItem))]
     27  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.AlgorithmClass))]
     28  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Algorithm))]
     29  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.ProblemClass))]
     30  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Problem))]
     31  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Platform))]
     32  public partial class OKBItem : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
     33
     34    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
     35
     36    private long IdField;
     37
     38    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
     39      get {
     40        return this.extensionDataField;
     41      }
     42      set {
     43        this.extensionDataField = value;
     44      }
     45    }
     46
     47    [System.Runtime.Serialization.DataMemberAttribute()]
     48    public long Id {
     49      get {
     50        return this.IdField;
     51      }
     52      set {
     53        if ((this.IdField.Equals(value) != true)) {
     54          this.IdField = value;
     55          this.RaisePropertyChanged("Id");
     56        }
     57      }
     58    }
     59
     60    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
     61  }
     62
     63  [System.Diagnostics.DebuggerStepThroughAttribute()]
     64  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     65  [System.Runtime.Serialization.DataContractAttribute(Name = "NamedOKBItem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     66      "DataTransfer")]
     67  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.AlgorithmClass))]
     68  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Algorithm))]
     69  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.ProblemClass))]
     70  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Problem))]
     71  [System.Runtime.Serialization.KnownTypeAttribute(typeof(HeuristicLab.Clients.OKB.Administration.Platform))]
     72  public partial class NamedOKBItem : HeuristicLab.Clients.OKB.Administration.OKBItem {
     73
     74    private string DescriptionField;
     75
     76    private string NameField;
     77
     78    [System.Runtime.Serialization.DataMemberAttribute()]
     79    public string Description {
     80      get {
     81        return this.DescriptionField;
     82      }
     83      set {
     84        if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
     85          this.DescriptionField = value;
     86          this.RaisePropertyChanged("Description");
     87        }
     88      }
     89    }
     90
     91    [System.Runtime.Serialization.DataMemberAttribute()]
     92    public string Name {
     93      get {
     94        return this.NameField;
     95      }
     96      set {
     97        if ((object.ReferenceEquals(this.NameField, value) != true)) {
     98          this.NameField = value;
     99          this.RaisePropertyChanged("Name");
     100        }
     101      }
     102    }
     103  }
     104
     105  [System.Diagnostics.DebuggerStepThroughAttribute()]
     106  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     107  [System.Runtime.Serialization.DataContractAttribute(Name = "AlgorithmClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     108      "DataTransfer")]
     109  public partial class AlgorithmClass : HeuristicLab.Clients.OKB.Administration.NamedOKBItem {
     110  }
     111
     112  [System.Diagnostics.DebuggerStepThroughAttribute()]
     113  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     114  [System.Runtime.Serialization.DataContractAttribute(Name = "Algorithm", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     115      "DataTransfer")]
     116  public partial class Algorithm : HeuristicLab.Clients.OKB.Administration.NamedOKBItem {
     117
     118    private long AlgorithmClassIdField;
     119
     120    private HeuristicLab.Clients.OKB.Administration.DataType DataTypeField;
     121
     122    private long PlatformIdField;
     123
     124    [System.Runtime.Serialization.DataMemberAttribute()]
     125    public long AlgorithmClassId {
     126      get {
     127        return this.AlgorithmClassIdField;
     128      }
     129      set {
     130        if ((this.AlgorithmClassIdField.Equals(value) != true)) {
     131          this.AlgorithmClassIdField = value;
     132          this.RaisePropertyChanged("AlgorithmClassId");
     133        }
     134      }
     135    }
     136
     137    [System.Runtime.Serialization.DataMemberAttribute()]
     138    public HeuristicLab.Clients.OKB.Administration.DataType DataType {
     139      get {
     140        return this.DataTypeField;
     141      }
     142      set {
     143        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
     144          this.DataTypeField = value;
     145          this.RaisePropertyChanged("DataType");
     146        }
     147      }
     148    }
     149
     150    [System.Runtime.Serialization.DataMemberAttribute()]
     151    public long PlatformId {
     152      get {
     153        return this.PlatformIdField;
     154      }
     155      set {
     156        if ((this.PlatformIdField.Equals(value) != true)) {
     157          this.PlatformIdField = value;
     158          this.RaisePropertyChanged("PlatformId");
     159        }
     160      }
     161    }
     162  }
     163
     164  [System.Diagnostics.DebuggerStepThroughAttribute()]
     165  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     166  [System.Runtime.Serialization.DataContractAttribute(Name = "ProblemClass", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     167      "DataTransfer")]
     168  public partial class ProblemClass : HeuristicLab.Clients.OKB.Administration.NamedOKBItem {
     169  }
     170
     171  [System.Diagnostics.DebuggerStepThroughAttribute()]
     172  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     173  [System.Runtime.Serialization.DataContractAttribute(Name = "Problem", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     174      "DataTransfer")]
     175  public partial class Problem : HeuristicLab.Clients.OKB.Administration.NamedOKBItem {
     176
     177    private HeuristicLab.Clients.OKB.Administration.DataType DataTypeField;
     178
     179    private long PlatformIdField;
     180
     181    private long ProblemClassIdField;
     182
     183    [System.Runtime.Serialization.DataMemberAttribute()]
     184    public HeuristicLab.Clients.OKB.Administration.DataType DataType {
     185      get {
     186        return this.DataTypeField;
     187      }
     188      set {
     189        if ((object.ReferenceEquals(this.DataTypeField, value) != true)) {
     190          this.DataTypeField = value;
     191          this.RaisePropertyChanged("DataType");
     192        }
     193      }
     194    }
     195
     196    [System.Runtime.Serialization.DataMemberAttribute()]
     197    public long PlatformId {
     198      get {
     199        return this.PlatformIdField;
     200      }
     201      set {
     202        if ((this.PlatformIdField.Equals(value) != true)) {
     203          this.PlatformIdField = value;
     204          this.RaisePropertyChanged("PlatformId");
     205        }
     206      }
     207    }
     208
     209    [System.Runtime.Serialization.DataMemberAttribute()]
     210    public long ProblemClassId {
     211      get {
     212        return this.ProblemClassIdField;
     213      }
     214      set {
     215        if ((this.ProblemClassIdField.Equals(value) != true)) {
     216          this.ProblemClassIdField = value;
     217          this.RaisePropertyChanged("ProblemClassId");
     218        }
     219      }
     220    }
     221  }
     222
     223  [System.Diagnostics.DebuggerStepThroughAttribute()]
     224  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
     225  [System.Runtime.Serialization.DataContractAttribute(Name = "DataType", Namespace = "http://schemas.datacontract.org/2004/07/HeuristicLab.Services.OKB.Administration." +
     226      "DataTransfer")]
     227  public partial class DataType : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
     228
     229    private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
     230
     231    private string NameField;
     232
     233    private string TypeNameField;
     234
     235    public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
     236      get {
     237        return this.extensionDataField;
     238      }
     239      set {
     240        this.extensionDataField = value;
     241      }
     242    }
     243
     244    [System.Runtime.Serialization.DataMemberAttribute()]
     245    public string Name {
     246      get {
     247        return this.NameField;
     248      }
     249      set {
     250        if ((object.ReferenceEquals(this.NameField, value) != true)) {
     251          this.NameField = value;
     252          this.RaisePropertyChanged("Name");
     253        }
     254      }
     255    }
     256
     257    [System.Runtime.Serialization.DataMemberAttribute()]
     258    public string TypeName {
     259      get {
     260        return this.TypeNameField;
     261      }
     262      set {
     263        if ((object.ReferenceEquals(this.TypeNameField, value) != true)) {
     264          this.TypeNameField = value;
     265          this.RaisePropertyChanged("TypeName");
     266        }
     267      }
     268    }
     269
     270    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
     271
     272    protected void RaisePropertyChanged(string propertyName) {
     273      System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
     274      if ((propertyChanged != null)) {
     275        propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
     276      }
     277    }
     278  }
     279
     280  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
     281  [System.ServiceModel.ServiceContractAttribute(ConfigurationName = "HeuristicLab.Clients.OKB.Administration.IAdministrationService")]
     282  public interface IAdministrationService {
     283
     284    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateProblemUsers", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateProblemUsersResponse")]
     285    void UpdateProblemUsers(long problemId, System.Collections.Generic.List<System.Guid> users);
     286
     287    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetProblemData", ReplyAction = "http://tempuri.org/IAdministrationService/GetProblemDataResponse")]
     288    byte[] GetProblemData(long problemId);
     289
     290    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateProblemData", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateProblemDataResponse")]
     291    void UpdateProblemData(long problemId, byte[] data);
     292
     293    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetPlatforms", ReplyAction = "http://tempuri.org/IAdministrationService/GetPlatformsResponse")]
     294    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Platform> GetPlatforms();
     295
     296    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/AddPlatform", ReplyAction = "http://tempuri.org/IAdministrationService/AddPlatformResponse")]
     297    long AddPlatform(HeuristicLab.Clients.OKB.Administration.Platform dto);
     298
     299    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdatePlatform", ReplyAction = "http://tempuri.org/IAdministrationService/UpdatePlatformResponse")]
     300    void UpdatePlatform(HeuristicLab.Clients.OKB.Administration.Platform dto);
     301
     302    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/DeletePlatform", ReplyAction = "http://tempuri.org/IAdministrationService/DeletePlatformResponse")]
     303    void DeletePlatform(long id);
     304
     305    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetAlgorithmClasses", ReplyAction = "http://tempuri.org/IAdministrationService/GetAlgorithmClassesResponse")]
     306    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.AlgorithmClass> GetAlgorithmClasses();
     307
     308    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/AddAlgorithmClass", ReplyAction = "http://tempuri.org/IAdministrationService/AddAlgorithmClassResponse")]
     309    long AddAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto);
     310
     311    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateAlgorithmClass", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateAlgorithmClassResponse")]
     312    void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto);
     313
     314    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/DeleteAlgorithmClass", ReplyAction = "http://tempuri.org/IAdministrationService/DeleteAlgorithmClassResponse")]
     315    void DeleteAlgorithmClass(long id);
     316
     317    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetAlgorithms", ReplyAction = "http://tempuri.org/IAdministrationService/GetAlgorithmsResponse")]
     318    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Algorithm> GetAlgorithms();
     319
     320    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/AddAlgorithm", ReplyAction = "http://tempuri.org/IAdministrationService/AddAlgorithmResponse")]
     321    long AddAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto);
     322
     323    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateAlgorithm", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateAlgorithmResponse")]
     324    void UpdateAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto);
     325
     326    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/DeleteAlgorithm", ReplyAction = "http://tempuri.org/IAdministrationService/DeleteAlgorithmResponse")]
     327    void DeleteAlgorithm(long id);
     328
     329    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetAlgorithmUsers", ReplyAction = "http://tempuri.org/IAdministrationService/GetAlgorithmUsersResponse")]
     330    System.Collections.Generic.List<System.Guid> GetAlgorithmUsers(long algorithmId);
     331
     332    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateAlgorithmUsers", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateAlgorithmUsersResponse")]
     333    void UpdateAlgorithmUsers(long algorithmId, System.Collections.Generic.List<System.Guid> users);
     334
     335    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetAlgorithmData", ReplyAction = "http://tempuri.org/IAdministrationService/GetAlgorithmDataResponse")]
     336    byte[] GetAlgorithmData(long algorithmId);
     337
     338    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateAlgorithmData", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateAlgorithmDataResponse")]
     339    void UpdateAlgorithmData(long algorithmId, byte[] data);
     340
     341    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetProblemClasses", ReplyAction = "http://tempuri.org/IAdministrationService/GetProblemClassesResponse")]
     342    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.ProblemClass> GetProblemClasses();
     343
     344    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/AddProblemClass", ReplyAction = "http://tempuri.org/IAdministrationService/AddProblemClassResponse")]
     345    long AddProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto);
     346
     347    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateProblemClass", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateProblemClassResponse")]
     348    void UpdateProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto);
     349
     350    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/DeleteProblemClass", ReplyAction = "http://tempuri.org/IAdministrationService/DeleteProblemClassResponse")]
     351    void DeleteProblemClass(long id);
     352
     353    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetProblems", ReplyAction = "http://tempuri.org/IAdministrationService/GetProblemsResponse")]
     354    System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Problem> GetProblems();
     355
     356    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/AddProblem", ReplyAction = "http://tempuri.org/IAdministrationService/AddProblemResponse")]
     357    long AddProblem(HeuristicLab.Clients.OKB.Administration.Problem dto);
     358
     359    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/UpdateProblem", ReplyAction = "http://tempuri.org/IAdministrationService/UpdateProblemResponse")]
     360    void UpdateProblem(HeuristicLab.Clients.OKB.Administration.Problem dto);
     361
     362    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/DeleteProblem", ReplyAction = "http://tempuri.org/IAdministrationService/DeleteProblemResponse")]
     363    void DeleteProblem(long id);
     364
     365    [System.ServiceModel.OperationContractAttribute(Action = "http://tempuri.org/IAdministrationService/GetProblemUsers", ReplyAction = "http://tempuri.org/IAdministrationService/GetProblemUsersResponse")]
     366    System.Collections.Generic.List<System.Guid> GetProblemUsers(long problemId);
     367  }
     368
     369  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
     370  public interface IAdministrationServiceChannel : HeuristicLab.Clients.OKB.Administration.IAdministrationService, System.ServiceModel.IClientChannel {
     371  }
     372
     373  [System.Diagnostics.DebuggerStepThroughAttribute()]
     374  [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
     375  public partial class AdministrationServiceClient : System.ServiceModel.ClientBase<HeuristicLab.Clients.OKB.Administration.IAdministrationService>, HeuristicLab.Clients.OKB.Administration.IAdministrationService {
     376
     377    public AdministrationServiceClient() {
     378    }
     379
     380    public AdministrationServiceClient(string endpointConfigurationName) :
     381      base(endpointConfigurationName) {
     382    }
     383
     384    public AdministrationServiceClient(string endpointConfigurationName, string remoteAddress) :
     385      base(endpointConfigurationName, remoteAddress) {
     386    }
     387
     388    public AdministrationServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
     389      base(endpointConfigurationName, remoteAddress) {
     390    }
     391
     392    public AdministrationServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
     393      base(binding, remoteAddress) {
     394    }
     395
     396    public void UpdateProblemUsers(long problemId, System.Collections.Generic.List<System.Guid> users) {
     397      base.Channel.UpdateProblemUsers(problemId, users);
     398    }
     399
     400    public byte[] GetProblemData(long problemId) {
     401      return base.Channel.GetProblemData(problemId);
     402    }
     403
     404    public void UpdateProblemData(long problemId, byte[] data) {
     405      base.Channel.UpdateProblemData(problemId, data);
     406    }
     407
     408    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Platform> GetPlatforms() {
     409      return base.Channel.GetPlatforms();
     410    }
     411
     412    public long AddPlatform(HeuristicLab.Clients.OKB.Administration.Platform dto) {
     413      return base.Channel.AddPlatform(dto);
     414    }
     415
     416    public void UpdatePlatform(HeuristicLab.Clients.OKB.Administration.Platform dto) {
     417      base.Channel.UpdatePlatform(dto);
     418    }
     419
     420    public void DeletePlatform(long id) {
     421      base.Channel.DeletePlatform(id);
     422    }
     423
     424    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.AlgorithmClass> GetAlgorithmClasses() {
     425      return base.Channel.GetAlgorithmClasses();
     426    }
     427
     428    public long AddAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto) {
     429      return base.Channel.AddAlgorithmClass(dto);
     430    }
     431
     432    public void UpdateAlgorithmClass(HeuristicLab.Clients.OKB.Administration.AlgorithmClass dto) {
     433      base.Channel.UpdateAlgorithmClass(dto);
     434    }
     435
     436    public void DeleteAlgorithmClass(long id) {
     437      base.Channel.DeleteAlgorithmClass(id);
     438    }
     439
     440    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Algorithm> GetAlgorithms() {
     441      return base.Channel.GetAlgorithms();
     442    }
     443
     444    public long AddAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto) {
     445      return base.Channel.AddAlgorithm(dto);
     446    }
     447
     448    public void UpdateAlgorithm(HeuristicLab.Clients.OKB.Administration.Algorithm dto) {
     449      base.Channel.UpdateAlgorithm(dto);
     450    }
     451
     452    public void DeleteAlgorithm(long id) {
     453      base.Channel.DeleteAlgorithm(id);
     454    }
     455
     456    public System.Collections.Generic.List<System.Guid> GetAlgorithmUsers(long algorithmId) {
     457      return base.Channel.GetAlgorithmUsers(algorithmId);
     458    }
     459
     460    public void UpdateAlgorithmUsers(long algorithmId, System.Collections.Generic.List<System.Guid> users) {
     461      base.Channel.UpdateAlgorithmUsers(algorithmId, users);
     462    }
     463
     464    public byte[] GetAlgorithmData(long algorithmId) {
     465      return base.Channel.GetAlgorithmData(algorithmId);
     466    }
     467
     468    public void UpdateAlgorithmData(long algorithmId, byte[] data) {
     469      base.Channel.UpdateAlgorithmData(algorithmId, data);
     470    }
     471
     472    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.ProblemClass> GetProblemClasses() {
     473      return base.Channel.GetProblemClasses();
     474    }
     475
     476    public long AddProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto) {
     477      return base.Channel.AddProblemClass(dto);
     478    }
     479
     480    public void UpdateProblemClass(HeuristicLab.Clients.OKB.Administration.ProblemClass dto) {
     481      base.Channel.UpdateProblemClass(dto);
     482    }
     483
     484    public void DeleteProblemClass(long id) {
     485      base.Channel.DeleteProblemClass(id);
     486    }
     487
     488    public System.Collections.Generic.List<HeuristicLab.Clients.OKB.Administration.Problem> GetProblems() {
     489      return base.Channel.GetProblems();
     490    }
     491
     492    public long AddProblem(HeuristicLab.Clients.OKB.Administration.Problem dto) {
     493      return base.Channel.AddProblem(dto);
     494    }
     495
     496    public void UpdateProblem(HeuristicLab.Clients.OKB.Administration.Problem dto) {
     497      base.Channel.UpdateProblem(dto);
     498    }
     499
     500    public void DeleteProblem(long id) {
     501      base.Channel.DeleteProblem(id);
     502    }
     503
     504    public System.Collections.Generic.List<System.Guid> GetProblemUsers(long problemId) {
     505      return base.Channel.GetProblemUsers(problemId);
     506    }
     507  }
    614508}
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/Algorithm.cs

    r5532 r5533  
    2323using HeuristicLab.Core;
    2424
    25 namespace HeuristicLab.Clients.OKB {
     25namespace HeuristicLab.Clients.OKB.Administration {
    2626  [Item("Algorithm", "An OKB algorithm.")]
    2727  public partial class Algorithm {
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/AlgorithmClass.cs

    r5532 r5533  
    2323using HeuristicLab.Core;
    2424
    25 namespace HeuristicLab.Clients.OKB {
     25namespace HeuristicLab.Clients.OKB.Administration {
    2626  [Item("AlgorithmClass", "An OKB algorithm class.")]
    2727  public partial class AlgorithmClass {
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/INamedOKBItem.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  public interface INamedOKBItem : IOKBItem {
    2424    string Name { get; set; }
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/IOKBItem.cs

    r5532 r5533  
    2424using HeuristicLab.Core;
    2525
    26 namespace HeuristicLab.Clients.OKB {
     26namespace HeuristicLab.Clients.OKB.Administration {
    2727  public interface IOKBItem : IItem, INotifyPropertyChanged {
    2828    long Id { get; set; }
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/NamedOKBItem.cs

    r5532 r5533  
    2424using HeuristicLab.Core;
    2525
    26 namespace HeuristicLab.Clients.OKB {
     26namespace HeuristicLab.Clients.OKB.Administration {
    2727  [Item("NamedOKBItem", "Base class for all named OKB items.")]
    2828  public partial class NamedOKBItem : INamedOKBItem {
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/OKBItem.cs

    r5532 r5533  
    2727using HeuristicLab.Core;
    2828
    29 namespace HeuristicLab.Clients.OKB {
     29namespace HeuristicLab.Clients.OKB.Administration {
    3030  [Item("OKBItem", "Base class for all OKB items.")]
    3131  public partial class OKBItem : IOKBItem {
     
    8787
    8888    public void Store() {
    89       if (OKBClient.Instance.Store(this))
     89      if (AdministrationClient.Instance.Store(this))
    9090        Modified = false;
    9191    }
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/Platform.cs

    r5532 r5533  
    2323using HeuristicLab.Core;
    2424
    25 namespace HeuristicLab.Clients.OKB {
     25namespace HeuristicLab.Clients.OKB.Administration {
    2626  [Item("Platform", "An OKB platform.")]
    2727  public partial class Platform {
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/Problem.cs

    r5532 r5533  
    2323using HeuristicLab.Core;
    2424
    25 namespace HeuristicLab.Clients.OKB {
     25namespace HeuristicLab.Clients.OKB.Administration {
    2626  [Item("Problem", "An OKB problem.")]
    2727  public partial class Problem {
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/ServiceClient/ProblemClass.cs

    r5532 r5533  
    2323using HeuristicLab.Core;
    2424
    25 namespace HeuristicLab.Clients.OKB {
     25namespace HeuristicLab.Clients.OKB.Administration {
    2626  [Item("ProblemClass", "An OKB problem class.")]
    2727  public partial class ProblemClass {
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AdministratorView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class AdministratorView {
    2424    /// <summary>
     
    4848      this.tabControl = new System.Windows.Forms.TabControl();
    4949      this.platformsTabPage = new System.Windows.Forms.TabPage();
    50       this.platformCollectionView = new HeuristicLab.Clients.OKB.PlatformCollectionView();
     50      this.platformCollectionView = new HeuristicLab.Clients.OKB.Administration.PlatformCollectionView();
    5151      this.dataTypesTabPage = new System.Windows.Forms.TabPage();
    52       this.dataTypeCollectionView = new HeuristicLab.Clients.OKB.DataTypeCollectionView();
    5352      this.algorithmClassesTabPage = new System.Windows.Forms.TabPage();
    54       this.algorithmClassCollectionView = new HeuristicLab.Clients.OKB.AlgorithmClassCollectionView();
     53      this.algorithmClassCollectionView = new HeuristicLab.Clients.OKB.Administration.AlgorithmClassCollectionView();
    5554      this.algorithmsTabPage = new System.Windows.Forms.TabPage();
    56       this.algorithmCollectionView = new HeuristicLab.Clients.OKB.AlgorithmCollectionView();
     55      this.algorithmCollectionView = new HeuristicLab.Clients.OKB.Administration.AlgorithmCollectionView();
    5756      this.problemClassesTabPage = new System.Windows.Forms.TabPage();
    5857      this.problemsTabPage = new System.Windows.Forms.TabPage();
    5958      this.refreshButton = new System.Windows.Forms.Button();
    6059      this.toolTip = new System.Windows.Forms.ToolTip(this.components);
    61       this.problemClassCollectionView = new HeuristicLab.Clients.OKB.ProblemClassCollectionView();
    62       this.problemCollectionView = new HeuristicLab.Clients.OKB.ProblemCollectionView();
     60      this.problemClassCollectionView = new HeuristicLab.Clients.OKB.Administration.ProblemClassCollectionView();
     61      this.problemCollectionView = new HeuristicLab.Clients.OKB.Administration.ProblemCollectionView();
    6362      this.tabControl.SuspendLayout();
    6463      this.platformsTabPage.SuspendLayout();
     
    113112      // dataTypesTabPage
    114113      //
    115       this.dataTypesTabPage.Controls.Add(this.dataTypeCollectionView);
    116114      this.dataTypesTabPage.Location = new System.Drawing.Point(4, 22);
    117115      this.dataTypesTabPage.Name = "dataTypesTabPage";
     
    121119      this.dataTypesTabPage.Text = "Data Types";
    122120      this.dataTypesTabPage.UseVisualStyleBackColor = true;
    123       //
    124       // dataTypeCollectionView
    125       //
    126       this.dataTypeCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    127                   | System.Windows.Forms.AnchorStyles.Left)
    128                   | System.Windows.Forms.AnchorStyles.Right)));
    129       this.dataTypeCollectionView.Caption = "DataTypeCollection View";
    130       this.dataTypeCollectionView.Content = null;
    131       this.dataTypeCollectionView.Location = new System.Drawing.Point(3, 3);
    132       this.dataTypeCollectionView.Name = "dataTypeCollectionView";
    133       this.dataTypeCollectionView.ReadOnly = false;
    134       this.dataTypeCollectionView.Size = new System.Drawing.Size(713, 374);
    135       this.dataTypeCollectionView.TabIndex = 0;
    136121      //
    137122      // algorithmClassesTabPage
     
    271256    private PlatformCollectionView platformCollectionView;
    272257    private System.Windows.Forms.TabPage dataTypesTabPage;
    273     private DataTypeCollectionView dataTypeCollectionView;
    274258    private System.Windows.Forms.TabPage problemClassesTabPage;
    275259    private System.Windows.Forms.TabPage problemsTabPage;
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AdministratorView.cs

    r5532 r5533  
    2525using HeuristicLab.MainForm.WindowsForms;
    2626
    27 namespace HeuristicLab.Clients.OKB {
     27namespace HeuristicLab.Clients.OKB.Administration {
    2828  [View("OKB Administrator")]
    29   [Content(typeof(OKBClient), true)]
     29  [Content(typeof(AdministrationClient), true)]
    3030  public sealed partial class AdministratorView : AsynchronousContentView {
    31     public new OKBClient Content {
    32       get { return (OKBClient)base.Content; }
     31    public new AdministrationClient Content {
     32      get { return (AdministrationClient)base.Content; }
    3333      set { base.Content = value; }
    3434    }
     
    5454      if (Content == null) {
    5555        platformCollectionView.Content = null;
    56         dataTypeCollectionView.Content = null;
    5756        algorithmClassCollectionView.Content = null;
    5857        algorithmCollectionView.Content = null;
     
    6160      } else {
    6261        platformCollectionView.Content = Content.Platforms;
    63         dataTypeCollectionView.Content = Content.DataTypes;
    6462        algorithmClassCollectionView.Content = Content.AlgorithmClasses;
    6563        algorithmCollectionView.Content = Content.Algorithms;
     
    7371      refreshButton.Enabled = Content != null;
    7472      platformCollectionView.Enabled = Content != null;
    75       dataTypeCollectionView.Enabled = Content != null;
    7673      algorithmClassCollectionView.Enabled = Content != null;
    7774      algorithmCollectionView.Enabled = Content != null;
     
    9491      } else {
    9592        platformCollectionView.Content = Content.Platforms;
    96         dataTypeCollectionView.Content = Content.DataTypes;
    9793        algorithmClassCollectionView.Content = Content.AlgorithmClasses;
    9894        algorithmCollectionView.Content = Content.Algorithms;
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AlgorithmClassCollectionView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class AlgorithmClassCollectionView {
    2424    /// <summary>
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AlgorithmClassCollectionView.cs

    r5532 r5533  
    2525using HeuristicLab.MainForm;
    2626
    27 namespace HeuristicLab.Clients.OKB {
     27namespace HeuristicLab.Clients.OKB.Administration {
    2828  [View("AlgorithmClassCollection View")]
    2929  [Content(typeof(IItemCollection<AlgorithmClass>), true)]
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AlgorithmCollectionView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class AlgorithmCollectionView {
    2424    /// <summary>
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AlgorithmCollectionView.cs

    r5532 r5533  
    2525using HeuristicLab.MainForm;
    2626
    27 namespace HeuristicLab.Clients.OKB {
     27namespace HeuristicLab.Clients.OKB.Administration {
    2828  [View("AlgorithmCollection View")]
    2929  [Content(typeof(IItemCollection<Algorithm>), true)]
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AlgorithmView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class AlgorithmView {
    2424    /// <summary>
     
    5555      this.refreshUsersButton = new System.Windows.Forms.Button();
    5656      this.dataTabPage = new System.Windows.Forms.TabPage();
    57       this.algorithmDataView = new HeuristicLab.Clients.OKB.AlgorithmDataView();
    5857      this.parametersTabPage = new System.Windows.Forms.TabPage();
    59       this.algorithmParameterCollectionView = new HeuristicLab.Clients.OKB.AlgorithmParameterCollectionView();
    6058      this.refreshParametersButton = new System.Windows.Forms.Button();
    6159      this.resultsTabPage = new System.Windows.Forms.TabPage();
    62       this.resultCollectionView = new HeuristicLab.Clients.OKB.ResultCollectionView();
    6360      this.refreshResultsButton = new System.Windows.Forms.Button();
    6461      this.experimentsTabPage = new System.Windows.Forms.TabPage();
    6562      this.refreshExperimentsButton = new System.Windows.Forms.Button();
    66       this.experimentCollectionView = new HeuristicLab.Clients.OKB.ExperimentCollectionView();
    6763      this.tabControl.SuspendLayout();
    6864      this.usersTabPage.SuspendLayout();
     
    196192      // dataTabPage
    197193      //
    198       this.dataTabPage.Controls.Add(this.algorithmDataView);
    199194      this.dataTabPage.Location = new System.Drawing.Point(4, 22);
    200195      this.dataTabPage.Name = "dataTabPage";
     
    205200      this.dataTabPage.UseVisualStyleBackColor = true;
    206201      //
    207       // algorithmDataView
    208       //
    209       this.algorithmDataView.AlgorithmId = ((long)(0));
    210       this.algorithmDataView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    211                   | System.Windows.Forms.AnchorStyles.Left)
    212                   | System.Windows.Forms.AnchorStyles.Right)));
    213       this.algorithmDataView.Caption = "AlgorithmData View";
    214       this.algorithmDataView.Content = null;
    215       this.algorithmDataView.Location = new System.Drawing.Point(6, 6);
    216       this.algorithmDataView.Name = "algorithmDataView";
    217       this.algorithmDataView.ReadOnly = false;
    218       this.algorithmDataView.Size = new System.Drawing.Size(613, 254);
    219       this.algorithmDataView.TabIndex = 0;
    220       //
    221       // parametersTabPage
    222       //
    223       this.parametersTabPage.Controls.Add(this.algorithmParameterCollectionView);
    224       this.parametersTabPage.Controls.Add(this.refreshParametersButton);
    225       this.parametersTabPage.Location = new System.Drawing.Point(4, 22);
    226       this.parametersTabPage.Name = "parametersTabPage";
    227       this.parametersTabPage.Padding = new System.Windows.Forms.Padding(3);
    228       this.parametersTabPage.Size = new System.Drawing.Size(625, 266);
    229       this.parametersTabPage.TabIndex = 2;
    230       this.parametersTabPage.Text = "Parameters";
    231       this.parametersTabPage.UseVisualStyleBackColor = true;
    232       //
    233       // algorithmParameterCollectionView
    234       //
    235       this.algorithmParameterCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    236                   | System.Windows.Forms.AnchorStyles.Left)
    237                   | System.Windows.Forms.AnchorStyles.Right)));
    238       this.algorithmParameterCollectionView.Caption = "AlgorithmParameterCollection View";
    239       this.algorithmParameterCollectionView.Content = null;
    240       this.algorithmParameterCollectionView.Location = new System.Drawing.Point(6, 36);
    241       this.algorithmParameterCollectionView.Name = "algorithmParameterCollectionView";
    242       this.algorithmParameterCollectionView.ReadOnly = false;
    243       this.algorithmParameterCollectionView.Size = new System.Drawing.Size(613, 224);
    244       this.algorithmParameterCollectionView.TabIndex = 1;
    245       //
    246202      // refreshParametersButton
    247203      //
     
    252208      this.refreshParametersButton.TabIndex = 0;
    253209      this.refreshParametersButton.UseVisualStyleBackColor = true;
    254       this.refreshParametersButton.Click += new System.EventHandler(this.refreshParametersButton_Click);
    255       //
    256       // resultsTabPage
    257       //
    258       this.resultsTabPage.Controls.Add(this.resultCollectionView);
    259       this.resultsTabPage.Controls.Add(this.refreshResultsButton);
    260       this.resultsTabPage.Location = new System.Drawing.Point(4, 22);
    261       this.resultsTabPage.Name = "resultsTabPage";
    262       this.resultsTabPage.Padding = new System.Windows.Forms.Padding(3);
    263       this.resultsTabPage.Size = new System.Drawing.Size(625, 266);
    264       this.resultsTabPage.TabIndex = 3;
    265       this.resultsTabPage.Text = "Results";
    266       this.resultsTabPage.UseVisualStyleBackColor = true;
    267       //
    268       // resultCollectionView
    269       //
    270       this.resultCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    271                   | System.Windows.Forms.AnchorStyles.Left)
    272                   | System.Windows.Forms.AnchorStyles.Right)));
    273       this.resultCollectionView.Caption = "ResultCollection View";
    274       this.resultCollectionView.Content = null;
    275       this.resultCollectionView.Location = new System.Drawing.Point(6, 36);
    276       this.resultCollectionView.Name = "resultCollectionView";
    277       this.resultCollectionView.ReadOnly = false;
    278       this.resultCollectionView.Size = new System.Drawing.Size(613, 224);
    279       this.resultCollectionView.TabIndex = 1;
    280210      //
    281211      // refreshResultsButton
     
    287217      this.refreshResultsButton.TabIndex = 0;
    288218      this.refreshResultsButton.UseVisualStyleBackColor = true;
    289       this.refreshResultsButton.Click += new System.EventHandler(this.refreshResultsButton_Click);
    290       //
    291       // experimentsTabPage
    292       //
    293       this.experimentsTabPage.Controls.Add(this.experimentCollectionView);
    294       this.experimentsTabPage.Controls.Add(this.refreshExperimentsButton);
    295       this.experimentsTabPage.Location = new System.Drawing.Point(4, 22);
    296       this.experimentsTabPage.Name = "experimentsTabPage";
    297       this.experimentsTabPage.Padding = new System.Windows.Forms.Padding(3);
    298       this.experimentsTabPage.Size = new System.Drawing.Size(625, 266);
    299       this.experimentsTabPage.TabIndex = 4;
    300       this.experimentsTabPage.Text = "Experiments";
    301       this.experimentsTabPage.UseVisualStyleBackColor = true;
    302219      //
    303220      // refreshExperimentsButton
     
    309226      this.refreshExperimentsButton.TabIndex = 0;
    310227      this.refreshExperimentsButton.UseVisualStyleBackColor = true;
    311       this.refreshExperimentsButton.Click += new System.EventHandler(this.refreshExperimentsButton_Click);
    312       //
    313       // experimentCollectionView
    314       //
    315       this.experimentCollectionView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    316                   | System.Windows.Forms.AnchorStyles.Left)
    317                   | System.Windows.Forms.AnchorStyles.Right)));
    318       this.experimentCollectionView.Caption = "ExperimentCollection View";
    319       this.experimentCollectionView.Content = null;
    320       this.experimentCollectionView.Location = new System.Drawing.Point(6, 36);
    321       this.experimentCollectionView.Name = "experimentCollectionView";
    322       this.experimentCollectionView.ReadOnly = false;
    323       this.experimentCollectionView.Size = new System.Drawing.Size(613, 224);
    324       this.experimentCollectionView.TabIndex = 1;
    325228      //
    326229      // AlgorithmView
     
    367270    private System.Windows.Forms.Button refreshUsersButton;
    368271    private System.Windows.Forms.TabPage dataTabPage;
    369     private AlgorithmDataView algorithmDataView;
    370272    private System.Windows.Forms.TabPage parametersTabPage;
    371273    private System.Windows.Forms.TabPage resultsTabPage;
    372     private AlgorithmParameterCollectionView algorithmParameterCollectionView;
    373274    private System.Windows.Forms.Button refreshParametersButton;
    374275    private System.Windows.Forms.Button refreshResultsButton;
    375276    private System.Windows.Forms.TabPage experimentsTabPage;
    376     private ResultCollectionView resultCollectionView;
    377     private ExperimentCollectionView experimentCollectionView;
    378277    private System.Windows.Forms.Button refreshExperimentsButton;
    379278
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/AlgorithmView.cs

    r5532 r5533  
    2424using System.Linq;
    2525using System.Windows.Forms;
     26using HeuristicLab.Clients.OKB.Authentication;
    2627using HeuristicLab.MainForm;
    2728using HeuristicLab.MainForm.WindowsForms;
    2829
    29 namespace HeuristicLab.Clients.OKB {
     30namespace HeuristicLab.Clients.OKB.Administration {
    3031  [View("Algorithm View")]
    3132  [Content(typeof(Algorithm), true)]
     
    4546    protected override void OnInitialized(System.EventArgs e) {
    4647      base.OnInitialized(e);
    47       platformComboBoxValues = OKBClient.Instance.Platforms.ToList();
     48      platformComboBoxValues = AdministrationClient.Instance.Platforms.ToList();
    4849      platformComboBox.DataSource = platformComboBoxValues;
    49       algorithmClassComboBoxValues = OKBClient.Instance.AlgorithmClasses.ToList();
     50      algorithmClassComboBoxValues = AdministrationClient.Instance.AlgorithmClasses.ToList();
    5051      algorithmClassComboBox.DataSource = algorithmClassComboBoxValues;
    5152    }
     
    5657        platformComboBox.SelectedIndex = -1;
    5758        algorithmClassComboBox.SelectedIndex = -1;
    58         algorithmDataView.AlgorithmId = 0;
    5959      } else {
    6060        platformComboBox.SelectedItem = platformComboBoxValues.FirstOrDefault(p => p.Id == Content.PlatformId);
    6161        algorithmClassComboBox.SelectedItem = algorithmClassComboBoxValues.FirstOrDefault(a => a.Id == Content.AlgorithmClassId);
    62         algorithmDataView.AlgorithmId = Content.Id;
    6362      }
    6463      usersListBox.DataSource = null;
    65       algorithmDataView.Content = null;
    6664    }
    6765
     
    7371      storeUsersButton.Enabled = (usersListBox.DataSource != null) && !ReadOnly;
    7472      usersListBox.Enabled = (usersListBox.DataSource != null) && !ReadOnly;
    75       algorithmDataView.Enabled = Content != null;
    7673    }
    7774
    7875    protected override void OnContentPropertyChanged(string propertyName) {
    7976      switch (propertyName) {
    80         case "Id":
    81           algorithmDataView.AlgorithmId = Content.Id;
    82           break;
    8377        case "PlatformId":
    8478          platformComboBox.SelectedItem = platformComboBoxValues.FirstOrDefault(p => p.Id == Content.PlatformId);
     
    10498
    10599    private void refreshUsersButton_Click(object sender, System.EventArgs e) {
    106       List<Guid> ids = OKBClient.Instance.GetAlgorithmUsers(Content.Id);
     100      List<Guid> ids = AdministrationClient.Instance.GetAlgorithmUsers(Content.Id);
    107101      if (ids != null) {
    108         List<User> users = OKBClient.Instance.Users.ToList();
     102        List<User> users = AuthenticationClient.Instance.Users.ToList();
    109103        usersListBox.DataSource = users;
    110104        usersListBox.DisplayMember = "Name";
     
    117111    }
    118112    private void storeUsersButton_Click(object sender, System.EventArgs e) {
    119       if (OKBClient.Instance.UpdateAlgorithmUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToList()))
     113      if (AdministrationClient.Instance.UpdateAlgorithmUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToList()))
    120114        storeUsersButton.Enabled = false;
    121115    }
     
    123117      storeUsersButton.Enabled = !ReadOnly;
    124118    }
    125 
    126     private void refreshParametersButton_Click(object sender, EventArgs e) {
    127       algorithmParameterCollectionView.Content = OKBClient.Instance.GetAlgorithmParameters(Content.Id);
    128     }
    129 
    130     private void refreshResultsButton_Click(object sender, EventArgs e) {
    131       resultCollectionView.Content = OKBClient.Instance.GetResults(Content.Id);
    132     }
    133 
    134     private void refreshExperimentsButton_Click(object sender, EventArgs e) {
    135       experimentCollectionView.Content = OKBClient.Instance.GetExperiments(Content.Id, 0);
    136     }
    137119  }
    138120}
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/NamedOKBItemView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class NamedOKBItemView {
    2424    /// <summary>
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/NamedOKBItemView.cs

    r5532 r5533  
    2626using HeuristicLab.MainForm.WindowsForms;
    2727
    28 namespace HeuristicLab.Clients.OKB {
     28namespace HeuristicLab.Clients.OKB.Administration {
    2929  [View("NamedOKBItem View")]
    3030  [Content(typeof(NamedOKBItem), true)]
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/OKBItemView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class OKBItemView {
    2424    /// <summary>
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/OKBItemView.cs

    r5532 r5533  
    2727using HeuristicLab.MainForm.WindowsForms;
    2828
    29 namespace HeuristicLab.Clients.OKB {
     29namespace HeuristicLab.Clients.OKB.Administration {
    3030  [View("OKBItem View")]
    3131  [Content(typeof(OKBItem), true)]
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/PlatformCollectionView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class PlatformCollectionView {
    2424    /// <summary>
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/PlatformCollectionView.cs

    r5532 r5533  
    2525using HeuristicLab.MainForm;
    2626
    27 namespace HeuristicLab.Clients.OKB {
     27namespace HeuristicLab.Clients.OKB.Administration {
    2828  [View("PlatformCollection View")]
    2929  [Content(typeof(IItemCollection<Platform>), true)]
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/ProblemClassCollectionView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class ProblemClassCollectionView {
    2424    /// <summary>
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/ProblemClassCollectionView.cs

    r5532 r5533  
    2525using HeuristicLab.MainForm;
    2626
    27 namespace HeuristicLab.Clients.OKB {
     27namespace HeuristicLab.Clients.OKB.Administration {
    2828  [View("ProblemClassCollection View")]
    2929  [Content(typeof(IItemCollection<ProblemClass>), true)]
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/ProblemCollectionView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class ProblemCollectionView {
    2424    /// <summary>
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/ProblemCollectionView.cs

    r5532 r5533  
    2525using HeuristicLab.MainForm;
    2626
    27 namespace HeuristicLab.Clients.OKB {
     27namespace HeuristicLab.Clients.OKB.Administration {
    2828  [View("ProblemCollection View")]
    2929  [Content(typeof(IItemCollection<Problem>), true)]
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/ProblemView.Designer.cs

    r5532 r5533  
    2020#endregion
    2121
    22 namespace HeuristicLab.Clients.OKB {
     22namespace HeuristicLab.Clients.OKB.Administration {
    2323  partial class ProblemView {
    2424    /// <summary>
     
    5555      this.refreshUsersButton = new System.Windows.Forms.Button();
    5656      this.dataTabPage = new System.Windows.Forms.TabPage();
    57       this.problemDataView = new HeuristicLab.Clients.OKB.ProblemDataView();
    5857      this.tabControl.SuspendLayout();
    5958      this.usersTabPage.SuspendLayout();
     
    181180      // dataTabPage
    182181      //
    183       this.dataTabPage.Controls.Add(this.problemDataView);
    184182      this.dataTabPage.Location = new System.Drawing.Point(4, 22);
    185183      this.dataTabPage.Name = "dataTabPage";
     
    189187      this.dataTabPage.Text = "Platform-Specific Problem Data";
    190188      this.dataTabPage.UseVisualStyleBackColor = true;
    191       //
    192       // problemDataView
    193       //
    194       this.problemDataView.ProblemId = ((long)(0));
    195       this.problemDataView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
    196                   | System.Windows.Forms.AnchorStyles.Left)
    197                   | System.Windows.Forms.AnchorStyles.Right)));
    198       this.problemDataView.Caption = "ProblemData View";
    199       this.problemDataView.Content = null;
    200       this.problemDataView.Location = new System.Drawing.Point(6, 6);
    201       this.problemDataView.Name = "problemDataView";
    202       this.problemDataView.ReadOnly = false;
    203       this.problemDataView.Size = new System.Drawing.Size(613, 254);
    204       this.problemDataView.TabIndex = 0;
    205189      //
    206190      // ProblemView
     
    244228    private System.Windows.Forms.Button refreshUsersButton;
    245229    private System.Windows.Forms.TabPage dataTabPage;
    246     private ProblemDataView problemDataView;
    247230
    248231  }
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/Administration/Views/ProblemView.cs

    r5532 r5533  
    2424using System.Linq;
    2525using System.Windows.Forms;
     26using HeuristicLab.Clients.OKB.Authentication;
    2627using HeuristicLab.MainForm;
    2728using HeuristicLab.MainForm.WindowsForms;
    2829
    29 namespace HeuristicLab.Clients.OKB {
     30namespace HeuristicLab.Clients.OKB.Administration {
    3031  [View("Problem View")]
    3132  [Content(typeof(Problem), true)]
     
    4546    protected override void OnInitialized(System.EventArgs e) {
    4647      base.OnInitialized(e);
    47       platformComboBoxValues = OKBClient.Instance.Platforms.ToList();
     48      platformComboBoxValues = AdministrationClient.Instance.Platforms.ToList();
    4849      platformComboBox.DataSource = platformComboBoxValues;
    49       problemClassComboBoxValues = OKBClient.Instance.ProblemClasses.ToList();
     50      problemClassComboBoxValues = AdministrationClient.Instance.ProblemClasses.ToList();
    5051      problemClassComboBox.DataSource = problemClassComboBoxValues;
    5152    }
     
    5657        platformComboBox.SelectedIndex = -1;
    5758        problemClassComboBox.SelectedIndex = -1;
    58         problemDataView.ProblemId = 0;
    5959      } else {
    6060        platformComboBox.SelectedItem = platformComboBoxValues.FirstOrDefault(p => p.Id == Content.PlatformId);
    6161        problemClassComboBox.SelectedItem = problemClassComboBoxValues.FirstOrDefault(a => a.Id == Content.ProblemClassId);
    62         problemDataView.ProblemId = Content.Id;
    6362      }
    6463      usersListBox.DataSource = null;
    65       problemDataView.Content = null;
    6664    }
    6765
     
    7371      storeUsersButton.Enabled = (usersListBox.DataSource != null) && !ReadOnly;
    7472      usersListBox.Enabled = (usersListBox.DataSource != null) && !ReadOnly;
    75       problemDataView.Enabled = Content != null;
    7673    }
    7774
    7875    protected override void OnContentPropertyChanged(string propertyName) {
    7976      switch (propertyName) {
    80         case "Id":
    81           problemDataView.ProblemId = Content.Id;
    82           break;
    8377        case "PlatformId":
    8478          platformComboBox.SelectedItem = platformComboBoxValues.FirstOrDefault(p => p.Id == Content.PlatformId);
     
    10498
    10599    private void refreshUsersButton_Click(object sender, System.EventArgs e) {
    106       List<Guid> ids = OKBClient.Instance.GetProblemUsers(Content.Id);
     100      List<Guid> ids = AdministrationClient.Instance.GetProblemUsers(Content.Id);
    107101      if (ids != null) {
    108         List<User> users = OKBClient.Instance.Users.ToList();
     102        List<User> users = AuthenticationClient.Instance.Users.ToList();
    109103        usersListBox.DataSource = users;
    110104        usersListBox.DisplayMember = "Name";
     
    117111    }
    118112    private void storeUsersButton_Click(object sender, System.EventArgs e) {
    119       if (OKBClient.Instance.UpdateProblemUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToList()))
     113      if (AdministrationClient.Instance.UpdateProblemUsers(Content.Id, usersListBox.SelectedItems.Cast<User>().Select(u => u.Id).ToList()))
    120114        storeUsersButton.Enabled = false;
    121115    }
  • branches/OKB (trunk integration)/HeuristicLab.Clients.OKB/3.3/HeuristicLab.Clients.OKB-3.3.csproj

    r5504 r5533  
    9999  </ItemGroup>
    100100  <ItemGroup>
     101    <Compile Include="Administration\AdministrationClient.cs" />
     102    <Compile Include="Administration\AdministratorMenuItem.cs" />
    101103    <Compile Include="Administration\ServiceClient\AdministrationServiceClient.cs" />
    102     <Compile Include="AdministratorMenuItem.cs" />
     104    <Compile Include="Administration\ServiceClient\Algorithm.cs" />
     105    <Compile Include="Administration\ServiceClient\AlgorithmClass.cs" />
     106    <Compile Include="Administration\ServiceClient\INamedOKBItem.cs" />
     107    <Compile Include="Administration\ServiceClient\IOKBItem.cs" />
     108    <Compile Include="Administration\ServiceClient\NamedOKBItem.cs" />
     109    <Compile Include="Administration\ServiceClient\OKBItem.cs" />
     110    <Compile Include="Administration\ServiceClient\Platform.cs" />
     111    <Compile Include="Administration\ServiceClient\Problem.cs" />
     112    <Compile Include="Administration\ServiceClient\ProblemClass.cs" />
     113    <Compile Include="Administration\Views\AdministratorView.cs">
     114      <SubType>UserControl</SubType>
     115    </Compile>
     116    <Compile Include="Administration\Views\AdministratorView.Designer.cs">
     117      <DependentUpon>AdministratorView.cs</DependentUpon>
     118    </Compile>
     119    <Compile Include="Administration\Views\AlgorithmClassCollectionView.cs">
     120      <SubType>UserControl</SubType>
     121    </Compile>
     122    <Compile Include="Administration\Views\AlgorithmClassCollectionView.Designer.cs">
     123      <DependentUpon>AlgorithmClassCollectionView.cs</DependentUpon>
     124    </Compile>
     125    <Compile Include="Administration\Views\AlgorithmCollectionView.cs">
     126      <SubType>UserControl</SubType>
     127    </Compile>
     128    <Compile Include="Administration\Views\AlgorithmCollectionView.Designer.cs">
     129      <DependentUpon>AlgorithmCollectionView.cs</DependentUpon>
     130    </Compile>
     131    <Compile Include="Administration\Views\AlgorithmView.cs">
     132      <SubType>UserControl</SubType>
     133    </Compile>
     134    <Compile Include="Administration\Views\AlgorithmView.Designer.cs">
     135      <DependentUpon>AlgorithmView.cs</DependentUpon>
     136    </Compile>
     137    <Compile Include="Administration\Views\NamedOKBItemView.cs">
     138      <SubType>UserControl</SubType>
     139    </Compile>
     140    <Compile Include="Administration\Views\NamedOKBItemView.Designer.cs">
     141      <DependentUpon>NamedOKBItemView.cs</DependentUpon>
     142    </Compile>
     143    <Compile Include="Administration\Views\OKBItemView.cs">
     144      <SubType>UserControl</SubType>
     145    </Compile>
     146    <Compile Include="Administration\Views\OKBItemView.Designer.cs">
     147      <DependentUpon>OKBItemView.cs</DependentUpon>
     148    </Compile>
     149    <Compile Include="Administration\Views\PlatformCollectionView.cs">
     150      <SubType>UserControl</SubType>
     151    </Compile>
     152    <Compile Include="Administration\Views\PlatformCollectionView.Designer.cs">
     153      <DependentUpon>PlatformCollectionView.cs</DependentUpon>
     154    </Compile>
     155    <Compile Include="Administration\Views\ProblemClassCollectionView.cs">
     156      <SubType>UserControl</SubType>
     157    </Compile>
     158    <Compile Include="Administration\Views\ProblemClassCollectionView.Designer.cs">
     159      <DependentUpon>ProblemClassCollectionView.cs</DependentUpon>
     160    </Compile>
     161    <Compile Include="Administration\Views\ProblemCollectionView.cs">
     162      <SubType>UserControl</SubType>
     163    </Compile>
     164    <Compile Include="Administration\Views\ProblemCollectionView.Designer.cs">
     165      <DependentUpon>ProblemCollectionView.cs</DependentUpon>
     166    </Compile>
     167    <Compile Include="Administration\Views\ProblemView.cs">
     168      <SubType>UserControl</SubType>
     169    </Compile>
     170    <Compile Include="Administration\Views\ProblemView.Designer.cs">
     171      <DependentUpon>ProblemView.cs</DependentUpon>
     172    </Compile>
     173    <Compile Include="Authentication\AuthenticationClient.cs" />
    103174    <Compile Include="Authentication\ServiceClient\AuthenticationServiceClient.cs" />
    104     <Compile Include="ItemWrapper.cs" />
    105     <Compile Include="NamedItemWrapper.cs" />
    106     <Compile Include="OKBRun.cs" />
    107     <Compile Include="EmptyAlgorithm.cs" />
    108     <Compile Include="OKBAlgorithm.cs" />
    109     <Compile Include="MultiObjectiveOKBProblem.cs" />
    110     <Compile Include="EmptyMultiObjectiveProblem.cs" />
    111     <Compile Include="EmptyEvaluator.cs" />
    112     <Compile Include="EmptyProblem.cs" />
    113     <Compile Include="EmptyMultiObjectiveEvaluator.cs" />
    114     <Compile Include="EmptySolutionCreator.cs" />
    115     <Compile Include="EmptySingleObjectiveEvaluator.cs" />
    116     <Compile Include="EmptySingleObjectiveProblem.cs" />
    117175    <Compile Include="Query\ServiceClient\QueryServiceClient.cs" />
    118176    <Compile Include="RunCreation\ServiceClient\RunCreationServiceClient.cs" />
    119     <Compile Include="SingleObjectiveOKBProblem.cs" />
    120     <Compile Include="OKBProblem.cs" />
    121     <Compile Include="QueryMenuItem.cs" />
    122     <Compile Include="OKBClient.cs" />
    123     <Compile Include="OKBExperiment.cs" />
    124177    <Compile Include="HeuristicLabClientsOKBPlugin.cs" />
    125178    <Compile Include="Properties\AssemblyInfo.cs" />
    126     <Compile Include="ServiceClients\Algorithm.cs">
    127       <SubType>Code</SubType>
    128     </Compile>
    129     <Compile Include="ServiceClients\AlgorithmClass.cs">
    130       <SubType>Code</SubType>
    131     </Compile>
    132     <Compile Include="ServiceClients\AuthenticationServiceClient.cs" />
    133     <Compile Include="ServiceClients\AlgorithmData.cs" />
    134     <Compile Include="ServiceClients\AlgorithmParameter.cs" />
    135     <Compile Include="ServiceClients\CombinedFilter.cs" />
    136     <Compile Include="ServiceClients\OKBServiceClients.cs" />
    137     <Compile Include="ServiceClients\SetComparisonStringAvailableValuesFilter.cs" />
    138     <Compile Include="ServiceClients\NameSetComparisonStringAvailableValuesFilter.cs" />
    139     <Compile Include="ServiceClients\OrdinalComparisonDateTimeFilter.cs" />
    140     <Compile Include="ServiceClients\OrdinalComparisonLongFilter.cs" />
    141     <Compile Include="ServiceClients\SetComparisonStringFilter.cs" />
    142     <Compile Include="ServiceClients\NameSetComparisonStringFilter.cs" />
    143     <Compile Include="ServiceClients\NameOrdinalComparisonLongFilter.cs" />
    144     <Compile Include="ServiceClients\NameOrdinalComparisonDoubleFilter.cs" />
    145     <Compile Include="ServiceClients\NameEqualityComparisonByteArrayFilter.cs" />
    146     <Compile Include="ServiceClients\NameEqualityComparisonBoolFilter.cs" />
    147     <Compile Include="ServiceClients\Filter.cs" />
    148     <Compile Include="ServiceClients\Run.cs" />
    149     <Compile Include="ServiceClients\Experiment.cs" />
    150     <Compile Include="ServiceClients\Result.cs" />
    151     <Compile Include="ServiceClients\ProblemParameter.cs" />
    152     <Compile Include="ServiceClients\ProblemData.cs" />
    153     <Compile Include="ServiceClients\Problem.cs" />
    154     <Compile Include="ServiceClients\ProblemClass.cs" />
    155     <Compile Include="ServiceClients\DataType.cs" />
    156     <Compile Include="ServiceClients\NamedOKBItem.cs" />
    157     <Compile Include="ServiceClients\Platform.cs" />
    158     <Compile Include="ServiceClients\INamedOKBItem.cs">
    159       <SubType>Code</SubType>
    160     </Compile>
    161     <Compile Include="ServiceClients\IOKBItem.cs">
    162       <SubType>Code</SubType>
    163     </Compile>
    164     <Compile Include="ServiceClients\OKBItem.cs">
    165       <SubType>Code</SubType>
    166     </Compile>
    167     <Compile Include="Views\AdministratorView.cs">
    168       <SubType>UserControl</SubType>
    169     </Compile>
    170     <Compile Include="Views\AdministratorView.Designer.cs">
    171       <DependentUpon>AdministratorView.cs</DependentUpon>
    172     </Compile>
    173     <Compile Include="Views\AlgorithmClassCollectionView.cs">
    174       <SubType>UserControl</SubType>
    175     </Compile>
    176     <Compile Include="Views\AlgorithmClassCollectionView.Designer.cs">
    177       <DependentUpon>AlgorithmClassCollectionView.cs</DependentUpon>
    178     </Compile>
    179     <Compile Include="Views\AlgorithmCollectionView.cs">
    180       <SubType>UserControl</SubType>
    181     </Compile>
    182     <Compile Include="Views\AlgorithmCollectionView.Designer.cs">
    183       <DependentUpon>AlgorithmCollectionView.cs</DependentUpon>
    184     </Compile>
    185     <Compile Include="Views\AlgorithmView.cs">
    186       <SubType>UserControl</SubType>
    187     </Compile>
    188     <Compile Include="Views\AlgorithmView.Designer.cs">
    189       <DependentUpon>AlgorithmView.cs</DependentUpon>
    190     </Compile>
    191     <Compile Include="Views\AlgorithmDataView.cs">
    192       <SubType>UserControl</SubType>
    193     </Compile>
    194     <Compile Include="Views\AlgorithmDataView.Designer.cs">
    195       <DependentUpon>AlgorithmDataView.cs</DependentUpon>
    196     </Compile>
    197     <Compile Include="Views\AlgorithmParameterCollectionView.cs">
    198       <SubType>UserControl</SubType>
    199     </Compile>
    200     <Compile Include="Views\AlgorithmParameterCollectionView.Designer.cs">
    201       <DependentUpon>AlgorithmParameterCollectionView.cs</DependentUpon>
    202     </Compile>
    203     <Compile Include="Views\AlgorithmParameterView.cs">
    204       <SubType>UserControl</SubType>
    205     </Compile>
    206     <Compile Include="Views\AlgorithmParameterView.Designer.cs">
    207       <DependentUpon>AlgorithmParameterView.cs</DependentUpon>
    208     </Compile>
    209     <Compile Include="Views\OKBAlgorithmView.cs">
    210       <SubType>UserControl</SubType>
    211     </Compile>
    212     <Compile Include="Views\OKBAlgorithmView.Designer.cs">
    213       <DependentUpon>OKBAlgorithmView.cs</DependentUpon>
    214     </Compile>
    215     <Compile Include="Views\OKBProblemView.cs">
    216       <SubType>UserControl</SubType>
    217     </Compile>
    218     <Compile Include="Views\OKBProblemView.Designer.cs">
    219       <DependentUpon>OKBProblemView.cs</DependentUpon>
    220     </Compile>
    221     <Compile Include="Views\SetComparisonStringAvailableValuesFilterView.cs">
    222       <SubType>UserControl</SubType>
    223     </Compile>
    224     <Compile Include="Views\SetComparisonStringAvailableValuesFilterView.Designer.cs">
    225       <DependentUpon>SetComparisonStringAvailableValuesFilterView.cs</DependentUpon>
    226     </Compile>
    227     <Compile Include="Views\NameSetComparisonStringAvailableValuesFilterView.cs">
    228       <SubType>UserControl</SubType>
    229     </Compile>
    230     <Compile Include="Views\NameSetComparisonStringAvailableValuesFilterView.Designer.cs">
    231       <DependentUpon>NameSetComparisonStringAvailableValuesFilterView.cs</DependentUpon>
    232     </Compile>
    233     <Compile Include="Views\CombinedFilterView.cs">
    234       <SubType>UserControl</SubType>
    235     </Compile>
    236     <Compile Include="Views\CombinedFilterView.Designer.cs">
    237       <DependentUpon>CombinedFilterView.cs</DependentUpon>
    238     </Compile>
    239     <Compile Include="Views\NameSetComparisonStringFilterView.cs">
    240       <SubType>UserControl</SubType>
    241     </Compile>
    242     <Compile Include="Views\NameSetComparisonStringFilterView.Designer.cs">
    243       <DependentUpon>NameSetComparisonStringFilterView.cs</DependentUpon>
    244     </Compile>
    245     <Compile Include="Views\NameOrdinalComparisonLongFilterView.cs">
    246       <SubType>UserControl</SubType>
    247     </Compile>
    248     <Compile Include="Views\NameOrdinalComparisonLongFilterView.Designer.cs">
    249       <DependentUpon>NameOrdinalComparisonLongFilterView.cs</DependentUpon>
    250     </Compile>
    251     <Compile Include="Views\NameEqualityComparisonBoolFilterView.cs">
    252       <SubType>UserControl</SubType>
    253     </Compile>
    254     <Compile Include="Views\NameEqualityComparisonBoolFilterView.Designer.cs">
    255       <DependentUpon>NameEqualityComparisonBoolFilterView.cs</DependentUpon>
    256     </Compile>
    257     <Compile Include="Views\SetComparisonStringFilterView.cs">
    258       <SubType>UserControl</SubType>
    259     </Compile>
    260     <Compile Include="Views\SetComparisonStringFilterView.Designer.cs">
    261       <DependentUpon>SetComparisonStringFilterView.cs</DependentUpon>
    262     </Compile>
    263     <Compile Include="Views\SetComparisonFilterView.cs">
    264       <SubType>UserControl</SubType>
    265     </Compile>
    266     <Compile Include="Views\SetComparisonFilterView.Designer.cs">
    267       <DependentUpon>SetComparisonFilterView.cs</DependentUpon>
    268     </Compile>
    269     <Compile Include="Views\OrdinalComparisonLongFilterView.cs">
    270       <SubType>UserControl</SubType>
    271     </Compile>
    272     <Compile Include="Views\OrdinalComparisonLongFilterView.Designer.cs">
    273       <DependentUpon>OrdinalComparisonLongFilterView.cs</DependentUpon>
    274     </Compile>
    275     <Compile Include="Views\NameOrdinalComparisonDoubleFilterView.cs">
    276       <SubType>UserControl</SubType>
    277     </Compile>
    278     <Compile Include="Views\NameOrdinalComparisonDoubleFilterView.Designer.cs">
    279       <DependentUpon>NameOrdinalComparisonDoubleFilterView.cs</DependentUpon>
    280     </Compile>
    281     <Compile Include="Views\OrdinalComparisonFilterView.cs">
    282       <SubType>UserControl</SubType>
    283     </Compile>
    284     <Compile Include="Views\OrdinalComparisonFilterView.Designer.cs">
    285       <DependentUpon>OrdinalComparisonFilterView.cs</DependentUpon>
    286     </Compile>
    287     <Compile Include="Views\EqualityComparisonFilterView.cs">
    288       <SubType>UserControl</SubType>
    289     </Compile>
    290     <Compile Include="Views\EqualityComparisonFilterView.Designer.cs">
    291       <DependentUpon>EqualityComparisonFilterView.cs</DependentUpon>
    292     </Compile>
    293     <Compile Include="Views\FilterView.cs">
    294       <SubType>UserControl</SubType>
    295     </Compile>
    296     <Compile Include="Views\FilterView.Designer.cs">
    297       <DependentUpon>FilterView.cs</DependentUpon>
    298     </Compile>
    299     <Compile Include="Views\QueryView.cs">
    300       <SubType>UserControl</SubType>
    301     </Compile>
    302     <Compile Include="Views\QueryView.Designer.cs">
    303       <DependentUpon>QueryView.cs</DependentUpon>
    304     </Compile>
    305     <Compile Include="Views\RunView.cs">
    306       <SubType>UserControl</SubType>
    307     </Compile>
    308     <Compile Include="Views\RunView.Designer.cs">
    309       <DependentUpon>RunView.cs</DependentUpon>
    310     </Compile>
    311     <Compile Include="Views\ExperimentView.cs">
    312       <SubType>UserControl</SubType>
    313     </Compile>
    314     <Compile Include="Views\ExperimentView.Designer.cs">
    315       <DependentUpon>ExperimentView.cs</DependentUpon>
    316     </Compile>
    317     <Compile Include="Views\RunCollectionView.cs">
    318       <SubType>UserControl</SubType>
    319     </Compile>
    320     <Compile Include="Views\RunCollectionView.Designer.cs">
    321       <DependentUpon>RunCollectionView.cs</DependentUpon>
    322     </Compile>
    323     <Compile Include="Views\ExperimentCollectionView.cs">
    324       <SubType>UserControl</SubType>
    325     </Compile>
    326     <Compile Include="Views\ExperimentCollectionView.Designer.cs">
    327       <DependentUpon>ExperimentCollectionView.cs</DependentUpon>
    328     </Compile>
    329     <Compile Include="Views\ProblemParameterView.cs">
    330       <SubType>UserControl</SubType>
    331     </Compile>
    332     <Compile Include="Views\ProblemParameterView.Designer.cs">
    333       <DependentUpon>ProblemParameterView.cs</DependentUpon>
    334     </Compile>
    335     <Compile Include="Views\ResultView.cs">
    336       <SubType>UserControl</SubType>
    337     </Compile>
    338     <Compile Include="Views\ResultView.Designer.cs">
    339       <DependentUpon>ResultView.cs</DependentUpon>
    340     </Compile>
    341     <Compile Include="Views\ResultCollectionView.cs">
    342       <SubType>UserControl</SubType>
    343     </Compile>
    344     <Compile Include="Views\ResultCollectionView.Designer.cs">
    345       <DependentUpon>ResultCollectionView.cs</DependentUpon>
    346     </Compile>
    347     <Compile Include="Views\ProblemParameterCollectionView.cs">
    348       <SubType>UserControl</SubType>
    349     </Compile>
    350     <Compile Include="Views\ProblemParameterCollectionView.Designer.cs">
    351       <DependentUpon>ProblemParameterCollectionView.cs</DependentUpon>
    352     </Compile>
    353     <Compile Include="Views\OKBExperimentView.cs">
    354       <SubType>UserControl</SubType>
    355     </Compile>
    356     <Compile Include="Views\OKBExperimentView.Designer.cs">
    357       <DependentUpon>OKBExperimentView.cs</DependentUpon>
    358     </Compile>
    359     <Compile Include="Views\ProblemDataView.cs">
    360       <SubType>UserControl</SubType>
    361     </Compile>
    362     <Compile Include="Views\ProblemDataView.Designer.cs">
    363       <DependentUpon>ProblemDataView.cs</DependentUpon>
    364     </Compile>
    365     <Compile Include="Views\ProblemView.cs">
    366       <SubType>UserControl</SubType>
    367     </Compile>
    368     <Compile Include="Views\ProblemView.Designer.cs">
    369       <DependentUpon>ProblemView.cs</DependentUpon>
    370     </Compile>
    371     <Compile Include="Views\ProblemCollectionView.cs">
    372       <SubType>UserControl</SubType>
    373     </Compile>
    374     <Compile Include="Views\ProblemCollectionView.Designer.cs">
    375       <DependentUpon>ProblemCollectionView.cs</DependentUpon>
    376     </Compile>
    377     <Compile Include="Views\ProblemClassCollectionView.cs">
    378       <SubType>UserControl</SubType>
    379     </Compile>
    380     <Compile Include="Views\ProblemClassCollectionView.Designer.cs">
    381       <DependentUpon>ProblemClassCollectionView.cs</DependentUpon>
    382     </Compile>
    383     <Compile Include="Views\DataTypeView.cs">
    384       <SubType>UserControl</SubType>
    385     </Compile>
    386     <Compile Include="Views\DataTypeView.Designer.cs">
    387       <DependentUpon>DataTypeView.cs</DependentUpon>
    388     </Compile>
    389     <Compile Include="Views\DataTypeCollectionView.cs">
    390       <SubType>UserControl</SubType>
    391     </Compile>
    392     <Compile Include="Views\DataTypeCollectionView.Designer.cs">
    393       <DependentUpon>DataTypeCollectionView.cs</DependentUpon>
    394     </Compile>
    395     <Compile Include="Views\PlatformCollectionView.cs">
    396       <SubType>UserControl</SubType>
    397     </Compile>
    398     <Compile Include="Views\PlatformCollectionView.Designer.cs">
    399       <DependentUpon>PlatformCollectionView.cs</DependentUpon>
    400     </Compile>
    401     <Compile Include="Views\OKBItemView.cs">
    402       <SubType>UserControl</SubType>
    403     </Compile>
    404     <Compile Include="Views\OKBItemView.Designer.cs">
    405       <DependentUpon>OKBItemView.cs</DependentUpon>
    406     </Compile>
    407     <Compile Include="Views\NamedOKBItemView.cs">
    408       <SubType>UserControl</SubType>
    409     </Compile>
    410     <Compile Include="Views\NamedOKBItemView.Designer.cs">
    411       <DependentUpon>NamedOKBItemView.cs</DependentUpon>
    412     </Compile>
    413179    <None Include="app.config" />
    414180    <None Include="Authentication\ServiceClient\GenerateServiceClient.cmd" />
     
    417183    <None Include="Query\ServiceClient\GenerateServiceClient.cmd" />
    418184    <None Include="RunCreation\ServiceClient\GenerateServiceClient.cmd" />
    419     <None Include="ServiceClients\GenerateServiceClients.cmd" />
    420185    <None Include="UpdateLocalInstallation.cmd" />
    421186  </ItemGroup>
Note: See TracChangeset for help on using the changeset viewer.