// PUT api/reviewsession/5/assignreviewer public HttpResponseMessage Put(int id, string patch, ReviewSession session) { HttpResponseMessage response; var username = GetAPIUser(); try { switch (patch) { case "archive": _manager.Archive(id, username); break; case "release-session": _manager.Release(id, username); break; default: _manager.Edit(session, username); break; } response = GetResponse(id.ToNullSafeString()); } catch (Exception e) { response = GetResponse(e); } return(response); }
private void timer_Elapsed(object sender, ElapsedEventArgs e) { ApplicationSession.Invoker.BeginInvoke(new Action(() => { if (ActiveThoughts.Count == 0) { return; } if (ReviewSession != null) { ReviewSession.RepostCurrent(); } Message message = ActiveThoughts[ActiveThoughts.Count - 1]; ActiveThoughts.Remove(message); RaiseUpdate("ActiveThoughts"); StaleThoughts.Add(message); RaiseUpdate("StaleThoughts"); ReviewSession = new MessageReviewSession(message, result => { if (result.Status == Status.Active) { ActiveThoughts.Insert(0, result); RaiseUpdate("ActiveThoughts"); } ReviewSession = null; RaiseUpdate("ReviewSession"); }); RaiseUpdate("ReviewSession"); }), null); }
public void Process(ReviewSession session) { _repository.SaveReviewSession(session); MailMessage message = _generator.CreateContentAddedNotification(); _sender.SendNotification(message); }
public static PatchRequest[] GetSaveQuestionnairePatch(ReviewSession session) { return(new[] { new PatchRequest { Type = PatchCommandType.Set, Name = "Questions", Value = RavenJObject.FromObject(session) } }); }
/// <summary> /// Creates a new review session within the system. /// </summary> /// <param name="session"></param> /// <param name="current"></param> /// <exception cref="InvalidOperationException"></exception> public void Create(ReviewSession session, string current) { if (session.Id != 0) { throw new InvalidOperationException("Cannot create a new session with the 'Id' field already populated."); } session.Creator = current; session.LastModified = DateTime.UtcNow; session.SessionStatus = SessionStatusType.Created; _sessionRepository.Save(session); }
public void CompleteQuestionnaire_Fails_Not_Found() { var mockSession = new Mock <IDocumentSession>(); var sessionRepo = new Mock <AbstractRepository <ReviewSession> >(mockSession.Object); var eventRepo = new Mock <AbstractRepository <Event> >(mockSession.Object); // Create a new session to work with ReviewSession session = null; sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session); var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <SessionNotFoundException>(() => manager.CompleteQuestionnaire(1, new List <Question>(), "test")); }
/// <summary> /// Updates an existing session. /// </summary> /// <remarks>Saving after session has been released will be disallowed as only feedback and answers will be provided /// until the session is archived. There are seperate manager operations to handle these operations.</remarks> /// <param name="session"></param> /// <param name="current">The username of the API user</param> /// <exception cref="InvalidOperationException"></exception> /// <exception cref="AuthorizationException"></exception> public void Edit(ReviewSession session, string current) { if (session.SessionStatus != SessionStatusType.Created) { throw new InvalidOperationException("Session can't be edited after it has been released."); } if (session.Creator.ToLower() != current.ToLower()) { throw new AuthorizationException(); } session.LastModified = DateTime.UtcNow; _sessionRepository.Save(session); }
public void AssignReviewer_Fails_NotFound() { var mockSession = new Mock <IDocumentSession>(); var sessionRepo = new Mock <AbstractRepository <ReviewSession> >(mockSession.Object); var eventRepo = new Mock <AbstractRepository <Event> >(mockSession.Object); // Create a new session to work with ReviewSession session = null; sessionRepo.Setup(r => r.Get(It.IsAny <int>())).Returns(session); var manager = new ReviewSessionManager(sessionRepo.Object, eventRepo.Object); Assert.Throws <SessionNotFoundException>(() => manager.AssignReviewer(-1, "*****@*****.**", "*****@*****.**")); }
// POST api/reviewsession public HttpResponseMessage Post(ReviewSession session) { HttpResponseMessage response; var username = GetAPIUser(); try { _manager.Create(session, username); response = GetResponse(session.Id.ToNullSafeString()); } catch (Exception e) { response = GetResponse(session.Id.ToNullSafeString()); } return(response); }
public ReviewSession NewReviewSession() { var session = new ReviewSession(); session.Title = "Session 1"; session.Creator = "*****@*****.**"; var requirements1 = new Requirement(); requirements1.Content = "This is requirement 1"; var requirements2 = new Requirement(); requirements2.Content = "This is requirement 2"; var requirements3 = new Requirement(); requirements3.Content = "This is requirement 3"; session.Requirements = new List <Requirement> { requirements1, requirements2, requirements3 }; var question1 = new Question { Content = "This is question 1" }; var question2 = new Question { Content = "This is question 2" }; session.Questions = new List <Question> { question1, question2 }; return(session); }
public void SaveReviewSession(ReviewSession reviewSession) { // Flush those changes _session.Store(reviewSession); _session.SaveChanges(); }
// POST api/reviewsession public HttpResponseMessage Post(ReviewSession data) { _manager.Process(data); return(new HttpResponseMessage(HttpStatusCode.OK)); }