Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/09/10 13:27:57 (14 years ago)
Author:
swagner
Message:

Worked on OKB (#1174)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/OKB/HeuristicLab.Clients.OKB-3.3/OKBClient.cs

    r4566 r4587  
    171171      }
    172172    }
    173     public bool Store(long algorithmId, long problemId, Run run) {
    174       try {
    175         IAlgorithm algorithm = run.Algorithm;
    176         IProblem problem = algorithm.Problem;
    177 
    178         ItemCollection<AlgorithmParameter> algorithmParameters = GetAlgorithmParameters(algorithmId);
    179         AddAlgorithmParamters(algorithmId, algorithmParameters, algorithm, "");
    180         ItemCollection<ProblemParameter> problemParameters = GetProblemParameters(problemId);
    181         AddProblemParamters(problemId, problemParameters, problem, "");
    182 
    183         return true;
    184       }
    185       catch (Exception ex) {
    186         ErrorHandling.ShowErrorDialog("Store run failed.", ex);
    187         return false;
    188       }
    189     }
    190 
    191     private void AddAlgorithmParamters(long algorithmId, ItemCollection<AlgorithmParameter> parameters, IParameterizedItem item, string prefix) {
    192       foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
    193         if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == param.Name) == null)) {
    194           AlgorithmParameter p = new AlgorithmParameter();
    195           p.Name = prefix + param.Name;
    196           p.Alias = prefix + param.Name;
    197           p.Description = param.Description;
    198           p.AlgorithmId = algorithmId;
    199           p.DataTypeId = GetDataType(param.DataType).Id;
    200           p.Store();
    201           parameters.Add(p);
    202         }
    203         if (param.Value is IParameterizedItem)
    204           AddAlgorithmParamters(algorithmId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
    205       }
    206     }
    207     private void AddProblemParamters(long problemId, ItemCollection<ProblemParameter> parameters, IParameterizedItem item, string prefix) {
    208       foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
    209         if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == param.Name) == null)) {
    210           ProblemParameter p = new ProblemParameter();
    211           p.Name = prefix + param.Name;
    212           p.Alias = prefix + param.Name;
    213           p.Description = param.Description;
    214           p.ProblemId = problemId;
    215           p.DataTypeId = GetDataType(param.DataType).Id;
    216           p.Store();
    217           parameters.Add(p);
    218         }
    219         if (param.Value is IParameterizedItem)
    220           AddProblemParamters(problemId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
    221       }
    222     }
    223 
    224     public DataType GetDataType(Type type) {
     173    #endregion
     174
     175    #region DataType Methods
     176    public DataType ConvertToDataType(Type type) {
    225177      DataType dataType = DataTypes.FirstOrDefault(x => x.Name == type.AssemblyQualifiedName);
    226178      if (dataType == null) {
     
    245197      return dataType;
    246198    }
    247 
    248199    #endregion
    249200
     
    359310        ErrorHandling.ShowErrorDialog("Refresh problem parameters failed.", ex);
    360311        return null;
     312      }
     313    }
     314    #endregion
     315
     316    #region Run Methods
     317    public bool AddRun(long algorithmId, long problemId, Run run) {
     318      try {
     319        IAlgorithm algorithm = run.Algorithm;
     320        IProblem problem = algorithm.Problem;
     321
     322        ItemCollection<AlgorithmParameter> algorithmParameters = GetAlgorithmParameters(algorithmId);
     323        AddAlgorithmParamters(algorithmId, algorithmParameters, algorithm, "");
     324        ItemCollection<ProblemParameter> problemParameters = GetProblemParameters(problemId);
     325        AddProblemParamters(problemId, problemParameters, problem, "");
     326
     327        return true;
     328      }
     329      catch (Exception ex) {
     330        ErrorHandling.ShowErrorDialog("Store run failed.", ex);
     331        return false;
     332      }
     333    }
     334
     335    private void AddAlgorithmParamters(long algorithmId, ItemCollection<AlgorithmParameter> parameters, IParameterizedItem item, string prefix) {
     336      foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
     337        if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == prefix + param.Name) == null)) {
     338          AlgorithmParameter p = new AlgorithmParameter();
     339          p.Name = prefix + param.Name;
     340          p.Alias = prefix + param.Name;
     341          p.Description = param.Description;
     342          p.AlgorithmId = algorithmId;
     343          p.DataTypeId = ConvertToDataType(param.DataType).Id;
     344          p.Store();
     345          parameters.Add(p);
     346        }
     347        if (param.Value is IParameterizedItem)
     348          AddAlgorithmParamters(algorithmId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
     349      }
     350    }
     351    private void AddProblemParamters(long problemId, ItemCollection<ProblemParameter> parameters, IParameterizedItem item, string prefix) {
     352      foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
     353        if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == prefix + param.Name) == null)) {
     354          ProblemParameter p = new ProblemParameter();
     355          p.Name = prefix + param.Name;
     356          p.Alias = prefix + param.Name;
     357          p.Description = param.Description;
     358          p.ProblemId = problemId;
     359          p.DataTypeId = ConvertToDataType(param.DataType).Id;
     360          p.Store();
     361          parameters.Add(p);
     362        }
     363        if (param.Value is IParameterizedItem)
     364          AddProblemParamters(problemId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + ".");
    361365      }
    362366    }
Note: See TracChangeset for help on using the changeset viewer.