public static async Task <ExperimentPropertiesViewModel> CreateAsync(ExperimentManager manager, int id, IDomainResolver domainResolver, IUIService ui) { if (manager == null) { throw new ArgumentNullException("manager"); } Experiment exp = await manager.TryFindExperiment(id); if (exp == null) { throw new KeyNotFoundException(string.Format("There is no experiment with id {0}.", id)); } return(new ExperimentPropertiesViewModel(exp.Definition, exp.Status, domainResolver.GetDomain(exp.Definition.DomainName ?? "Z3"), manager, ui)); }