Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/11/13 14:40:04 (11 years ago)
Author:
fschoepp
Message:

#1888:

  • Added an Update / GetExperiment... methods to the controller for updating and querying experiments.
  • The AlgorithmConverter class now properly converts from/to JSON format.
  • Integrated backbone js as MVC provider for JavaScript + jquery.
  • Added experiment.model.js + experiment.view.js + experiment.controller.js containing the MVC impl. for the Experiment pages.
  • Added new methods to the ExperimentController usable by the backbone js model implementation.
  • Added the experiment dialog from HL 3.3.7 (variate experiment parameters). It's capable of variating the algorithm parameters.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/HiveScenarioManager.cs

    r9227 r9305  
    9797        foreach (var child in entry.Children) {
    9898          // This is a template experiment;
    99           if (child.Name == null) {
    100             var parent = new HeuristicLab.Optimization.Experiment(child.Name);
     99          if (child.IsExperiment) {
     100            var parent = new HeuristicLab.Optimization.Experiment();
    101101            entry.Parent.Optimizers.Add(parent);
    102102            stack.Push(new StackEntry() { Parent = parent, Children = child.ChildAlgorithms });         
     
    104104          // This entity is mapable
    105105          else {           
    106             IScenarioMapper mapper = GetMapper(child.Name);
    107             if (mapper == null) { // TODO: We should really be able to difference Experiment/Algorithm types; this is a workaround
    108               var parent = new HeuristicLab.Optimization.Experiment(child.Name);
    109               entry.Parent.Optimizers.Add(parent);
    110               stack.Push(new StackEntry() { Parent = parent, Children = child.ChildAlgorithms });         
    111             }
    112             else {
    113               var optScen = new OptimizationScenario() { Id = child.Name };
    114               optScen.Algorithm.Add(child);
    115               IAlgorithm algo;
    116               mapper.MapScenario(optScen, out algo);
    117               entry.Parent.Optimizers.Add(algo);
    118             }
     106            IScenarioMapper mapper = GetMapper(child.Id);
     107            var optScen = new OptimizationScenario() { Id = child.Id };
     108            optScen.Algorithm.Add(child);
     109            IAlgorithm algo;
     110            mapper.MapScenario(optScen, out algo);
     111            entry.Parent.Optimizers.Add(algo);
    119112          } 
    120113        }
     
    166159    private IScenarioMapper GetMapper(string scenarioId) {
    167160      var id = scenarioId;
    168       if (!mappers.ContainsKey(id)) {
     161      IScenarioMapper mapper = null;     
     162      if (!mappers.TryGetValue(id, out mapper)) {
    169163        lock (lockable) {
    170164          if (mappers.ContainsKey(id))
     
    173167          var mapperString = GetMapperFromBlobStore(id);
    174168          if (mapperString == null) return null;
    175           var mapper = CompileMapper(mapperString);
     169          mapper = CompileMapper(mapperString);
    176170
    177171          mappers[id] = mapper;
     
    179173        } // lock       
    180174       } // if
    181       return null;
     175      return mapper;
    182176     } 
    183177
     
    471465    }
    472466
    473     public bool SaveExperiment(User user, Model.Experiment experiment) {
    474       return dal.ExperimentDao.Add(user.Username, experiment);
    475     }
    476 
    477     public IEnumerable<string> GetExperiments(User user) {
     467    public string SaveExperiment(User user, Model.Experiment experiment) {
     468      if (experiment.Id != null) {
     469        dal.ExperimentDao.Update(user.Username, experiment);
     470      }
     471      else {
     472        dal.ExperimentDao.Add(user.Username, experiment);
     473      }
     474      return experiment.Id;
     475    }
     476
     477    public IEnumerable<string> GetExperimentNames(User user) {
    478478      return (from exp in dal.ExperimentDao.GetExperiments(user.Username)
    479479              select exp.Name);
     
    564564    }
    565565
    566 
    567 
     566    public IEnumerable<Model.Experiment> GetExperiments(User user) {
     567      return dal.ExperimentDao.GetExperiments(user.Username);
     568    }
     569
     570    public Model.Experiment GetExperimentById(User user, string nodeId) {
     571      return dal.ExperimentDao.GetExperimentById(user, nodeId);
     572    }
    568573  }
    569574}
Note: See TracChangeset for help on using the changeset viewer.