Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/24/10 02:54:35 (13 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

    r4591 r4918  
    373373            parameters.Add(p);
    374374          }
    375           AlgorithmParameterValue value = null;
    376           // TODO
     375          AlgorithmParameterValue value = CreateAlgorithmParameterValue(param.Value);
    377376          value.AlgorithmParameterId = p.Id;
    378377          value.DataTypeId = ConvertToDataType(param.Value.GetType()).Id;
     
    383382      }
    384383      return values;
     384    }
     385    private AlgorithmParameterValue CreateAlgorithmParameterValue(IItem item) {
     386      if (item is BoolValue) {
     387        AlgorithmParameterBoolValue value = new AlgorithmParameterBoolValue();
     388        value.Value = ((BoolValue)item).Value;
     389        return value;
     390      } else if (item is DoubleValue) {
     391        AlgorithmParameterFloatValue value = new AlgorithmParameterFloatValue();
     392        value.Value = ((DoubleValue)item).Value;
     393        return value;
     394      } else if (item is IntValue) {
     395        AlgorithmParameterIntValue value = new AlgorithmParameterIntValue();
     396        value.Value = ((IntValue)item).Value;
     397        return value;
     398      } else if (item is StringValue) {
     399        AlgorithmParameterStringValue value = new AlgorithmParameterStringValue();
     400        value.Value = ((StringValue)item).Value;
     401        return value;
     402      } else {
     403        AlgorithmParameterBlobValue value = new AlgorithmParameterBlobValue();
     404        value.Value = null;
     405        return value;
     406      }
    385407    }
    386408    private List<ProblemParameterValue> CollectProblemParamterValues(long problemId, ItemCollection<ProblemParameter> parameters, IParameterizedItem item, string prefix) {
    387409      List<ProblemParameterValue> values = new List<ProblemParameterValue>();
    388410      foreach (IValueParameter param in item.Parameters.OfType<IValueParameter>()) {
    389         if (param.GetsCollected && (param.Value != null) && (parameters.FirstOrDefault(x => x.Name == prefix + param.Name) == null)) {
    390           ProblemParameter p = new ProblemParameter();
    391           p.Name = prefix + param.Name;
    392           p.Alias = prefix + param.Name;
    393           p.Description = param.Description;
    394           p.ProblemId = problemId;
    395           p.DataTypeId = ConvertToDataType(param.DataType).Id;
    396           p.Store();
    397           parameters.Add(p);
    398         }
     411        if (param.GetsCollected && (param.Value != null)) {
     412          ProblemParameter p = parameters.FirstOrDefault(x => x.Name == prefix + param.Name);
     413          if (p == null) {
     414            p = new ProblemParameter();
     415            p.Name = prefix + param.Name;
     416            p.Alias = prefix + param.Name;
     417            p.Description = param.Description;
     418            p.ProblemId = problemId;
     419            p.DataTypeId = ConvertToDataType(param.DataType).Id;
     420            p.Store();
     421            parameters.Add(p);
     422          }
     423          ProblemParameterValue value = CreateProblemParameterValue(param.Value);
     424          value.ProblemParameterId = p.Id;
     425          value.DataTypeId = ConvertToDataType(param.Value.GetType()).Id;
     426        }
     427
    399428        if (param.Value is IParameterizedItem)
    400429          values.AddRange(CollectProblemParamterValues(problemId, parameters, (IParameterizedItem)param.Value, (string.IsNullOrEmpty(prefix) ? param.Name : prefix + param.Name) + "."));
    401430      }
    402431      return values;
     432    }
     433    private ProblemParameterValue CreateProblemParameterValue(IItem item) {
     434      if (item is BoolValue) {
     435        ProblemParameterBoolValue value = new ProblemParameterBoolValue();
     436        value.Value = ((BoolValue)item).Value;
     437        return value;
     438      } else if (item is DoubleValue) {
     439        ProblemParameterFloatValue value = new ProblemParameterFloatValue();
     440        value.Value = ((DoubleValue)item).Value;
     441        return value;
     442      } else if (item is IntValue) {
     443        ProblemParameterIntValue value = new ProblemParameterIntValue();
     444        value.Value = ((IntValue)item).Value;
     445        return value;
     446      } else if (item is StringValue) {
     447        ProblemParameterStringValue value = new ProblemParameterStringValue();
     448        value.Value = ((StringValue)item).Value;
     449        return value;
     450      } else {
     451        ProblemParameterBlobValue value = new ProblemParameterBlobValue();
     452        value.Value = null;
     453        return value;
     454      }
    403455    }
    404456    private List<ResultValue> CollectResultValues(long algorithmId, ItemCollection<Result> results, IAlgorithm algorithm) {
     
    418470      return values;
    419471    }
     472    private ResultValue CreateResiötValue(IItem item) {
     473      if (item is BoolValue) {
     474        ResultBoolValue value = new ResultBoolValue();
     475        value.Value = ((BoolValue)item).Value;
     476        return value;
     477      } else if (item is DoubleValue) {
     478        ResultFloatValue value = new ResultFloatValue();
     479        value.Value = ((DoubleValue)item).Value;
     480        return value;
     481      } else if (item is IntValue) {
     482        ResultIntValue value = new ResultIntValue();
     483        value.Value = ((IntValue)item).Value;
     484        return value;
     485      } else if (item is StringValue) {
     486        ResultStringValue value = new ResultStringValue();
     487        value.Value = ((StringValue)item).Value;
     488        return value;
     489      } else {
     490        ResultBlobValue value = new ResultBlobValue();
     491        value.Value = null;
     492        return value;
     493      }
     494    }
    420495    #endregion
    421496
Note: See TracChangeset for help on using the changeset viewer.