public CreationResult <Project> Create(EditProject editModel) { if (string.IsNullOrEmpty(editModel.Name)) { return(CreationResult.Fail <Project>("Project name is required.")); } var currentModel = _masterModelRepository.GetCurrent(); if (IsProjectNameAlreadyUsed(editModel.Name, currentModel)) { return(CreationResult.Fail <Project>(NameCollisionMessage(editModel.Name))); } var project = currentModel.CreateProject(x => { x.Name = editModel.Name; x.CruiseProjectAssociations = editModel.SafeProjects.Select( cp => new CruiseProjectAssociation { ServerId = cp.Server, Name = cp.Project }) .ToArray(); }); _masterModelRepository.Save(currentModel); return(CreationResult.Success(project)); }
public CreationResult <CruiseServer> Create(string name, string url) { var masterModel = _repository.GetCurrent(); if (string.IsNullOrWhiteSpace(name)) { return(CreationResult.Fail <CruiseServer>("'Name' is a required property for cruise server")); } if (masterModel.CruiseServers.Any(x => name.Equals(x.Name))) { return(CreationResult.Fail <CruiseServer>("A cruise server with this name already exists")); } var cruiseServer = masterModel.CreateCruiseServer(x => { x.Name = name; x.Url = url; }); _repository.Save(masterModel); return(CreationResult.Success(cruiseServer)); }
public CreationResult <LightGroup> Create(Guid projectId, string name) { var masterModel = _masterModelRepository.GetCurrent(); if (masterModel.Projects.None(x => x.Id.Equals(projectId))) { return (CreationResult.Fail <LightGroup>( string.Format("Cannot create group for project '{0}' that doesn't exist", projectId))); } var project = masterModel.Projects.Single(x => x.Id.Equals(projectId)); if (project.Groups.Any(x => x.Name.Equals(name))) { return(CreationResult.Fail <LightGroup>("A group with this name already exists")); } var group = project.CreateGroup(x => x.Name = name); _masterModelRepository.Save(masterModel); return(CreationResult.Success(group)); }