public void AddStreamToCompleteProjectThrowsException()
 {
     var projectManager = new ProjectManager { Session = _embeddedDocStore.OpenSession() };
     var newProjectStream = new ProjectStream("Stream1", "Create a new stream that takes over the whole project.");
     const string exceptionMessage = "Cannot add stream to project with status of Complete.";
     Assert.That(() => projectManager.AddProjectStream(completedProject.Name, newProjectStream, activeUser.Username), Throws.ArgumentException.With.Message.EqualTo(exceptionMessage));
 }
 public void AddStreamToActiveProjectUserNotInProjectThrowsException()
 {
     var projectManager = new ProjectManager { Session = _embeddedDocStore.OpenSession() };
     var newProjectStream = new ProjectStream("Stream1", "Create a new stream that takes over the whole project.");
     var exceptionMessage = string.Format("User {0} is currently not active in Project {1}.", activeUserNotInProject.Username, activeProject.Name);
     Assert.That(() => projectManager.AddProjectStream(activeProject.Name, newProjectStream, activeUserNotInProject.Username), Throws.ArgumentException.With.Message.EqualTo(exceptionMessage));
 }
 public void AddProjectStream(string activeProjectName, ProjectStream newProjectStream, string username)
 {
     var project = Session.Query<Project>().Where(p => p.Name == activeProjectName).FirstOrDefault();
     if (project.Status != Status.Active)
         throw new ArgumentException(string.Format("Cannot add stream to project with status of {0}.", project.Status));
     if (!project.Users.Contains(username))
         throw new ArgumentException(string.Format("User {0} is currently not active in Project {1}.", username, project.Name));
     project.ProjectStreams.Add(new ProjectStream(newProjectStream.Name, newProjectStream.Description) { CreatedBy = username });
     Session.SaveChanges();
 }
 public void AddStreamToActiveProjectSuccess()
 {
     var projectManager = new ProjectManager { Session = _embeddedDocStore.OpenSession() };
     var newProjectStream = new ProjectStream("Stream1", "Create a new stream that takes over the whole project.");
     projectManager.AddProjectStream(activeProject.Name, newProjectStream, activeUser.Username);
     var session = _embeddedDocStore.OpenSession();
     var project = session.Query<Project>().Where(p => p.Name == activeProject.Name).First();
     Assert.That(project.ProjectStreams.Count, Is.EqualTo(1));
     Assert.That(project.ProjectStreams[0].CreatedBy, Is.EqualTo(activeUser.Username));
 }
        public void AddProjectStream(string activeProjectName, ProjectStream newProjectStream, string username)
        {
            var project = Session.Query <Project>().Where(p => p.Name == activeProjectName).FirstOrDefault();

            if (project.Status != Status.Active)
            {
                throw new ArgumentException(string.Format("Cannot add stream to project with status of {0}.", project.Status));
            }
            if (!project.Users.Contains(username))
            {
                throw new ArgumentException(string.Format("User {0} is currently not active in Project {1}.", username, project.Name));
            }
            project.ProjectStreams.Add(new ProjectStream(newProjectStream.Name, newProjectStream.Description)
            {
                CreatedBy = username
            });
            Session.SaveChanges();
        }