コード例 #1
0
ファイル: ProjectManager.cs プロジェクト: mhinze/ZBuildLights
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }