public GetUserDialogsResponse CurrentUserDialogs() { var dialogRepo = new DialogRepositoryDocumentDb(); var userRepo = new UserRepositoryDocumentDB(); var userA = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); var dialogs = dialogRepo.GetUserReceivedDialogs((Guid)HttpContext.Current.Items["UserId"]).ToList(); dialogs = dialogs.OrderByDescending(d => d.Entries.OrderByDescending(e => e.TimeStamp).Last().TimeStamp).ToList(); var orderedDialogEntries = dialogs.Where(d => d.ReceiverId == userA.Id).SelectMany(d => d.Entries) .OrderBy(e => e.TimeStamp); var unread = orderedDialogEntries.Where(e => !e.IsRead).ToList(); var lastUnread = unread.Any() ? unread.Last() : orderedDialogEntries.Any() ? orderedDialogEntries.Last() : null; var lastUnreadDialog = lastUnread != null?dialogs.Single(d => d.Entries.Contains(lastUnread)) : null; var ret = new GetUserDialogsResponse { UserDialogs = dialogs.Select( d => { var userB = userRepo.GetUserById(d.OwnerId); return(UserDialogDTOConverter.ConvertToDTO(d, userA, userB)); }), LatestUnread = lastUnreadDialog != null?UserDialogDTOConverter.ConvertToDTO( lastUnread, userA, userRepo.GetUserById(lastUnreadDialog.OwnerId), lastUnreadDialog) : null }; return(ret); }
public UserDialogDto InitiateDialog(InitiateDialogRequest request) { var userRepo = new UserRepositoryDocumentDB(); var dialogRepo = new DialogRepositoryDocumentDb(); var dialogService = new DialogService(dialogRepo); var dialogA = dialogService.InitiateDialog(request.UserA, request.UserB, request.UserADescription, request.UserBDescription); var userA = userRepo.GetUserById(request.UserA); var userB = userRepo.GetUserById(request.UserB); return(UserDialogDTOConverter.ConvertToDTO(dialogA, userA, userB)); }
public void UpdateVideolResults(Guid exerciseId, VideoExerciseScoreCardDto scoreCard) { if (exerciseId != scoreCard.ExerciseId) { throw new Exception("Scorecard ids does not match"); } var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.SingleOrDefault(r => r.ExerciseId == exerciseId) as VideoExerciseScoreCard; if (excistingScoreCard != null) { //Update the score card excistingScoreCard.IsCompleted = scoreCard.IsCompleted; excistingScoreCard.MesageToReviewer = scoreCard.MesageToReviewer; excistingScoreCard.Phase = scoreCard.Phase; excistingScoreCard.ReviewerEmail = scoreCard.ReviewerEmail; excistingScoreCard.ReviewerFirstName = scoreCard.ReviewerFirstName; excistingScoreCard.ReviewerLastName = scoreCard.ReviewerLastName; } } //Save user userRepo.SaveUser(usr); }
public UserDto Get(Guid id) { var userRepo = new UserRepositoryDocumentDB(); var usr = userRepo.GetUserById(id); return(UserDtoConverter.ConvertToDTO(usr)); }
public void UpdateSortAndEvalResults(Guid exerciseId, SortAndEvaluateScoreCardDto scoreCard) { if (exerciseId != scoreCard.ExerciseId) { throw new Exception("Scorecard ids does not match"); } var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.SingleOrDefault(r => r.ExerciseId == exerciseId) as SortAndEvaluateScoreCard; if (excistingScoreCard != null) { //Update the score card excistingScoreCard.Evaluations = scoreCard.Evaluations.Select(e => new EvaluationResult() { Description = e.Description, Effect = e.Effect, Meaning = e.Meaning, Title = e.Title }).ToList(); excistingScoreCard.IsCompleted = scoreCard.IsCompleted; } } //Save user userRepo.SaveUser(usr); }
public GetModuleResultsResponse UserModuleResults(Guid moduleId) { var userRepo = new UserRepositoryDocumentDB(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); var coachingModuleRepository = new CoachingModuleRepositoryDocumentDB(); var module = coachingModuleRepository.GetModuleById(moduleId); var moduleResults = usr.CourseAdmissions.Single().Results.Where(r => r.Module.ModuleReferenceId == module.Id ).ToList(); var moduleResult = new GetModuleResultsResponse() { ModuleResults = moduleResults.Select(mr => UserDtoConverter.ConvertScoreCardDto(mr)).ToList(), IsCompleted = moduleResults.All(mr => mr.IsCompleted) }; var activeModule = moduleResults.FirstOrDefault(mr => !mr.IsCompleted); if (activeModule != null) { moduleResult.IsActive = true; moduleResult.ActiveScoreCard = moduleResult.ModuleResults.First(mr => !mr.IsCompleted); } else { moduleResult.IsActive = false; } return(moduleResult); }
public void UpdateKPExplorerResults(Guid exerciseId, KPExplorerQuestionnaireScoreCardDto scoreCard) { if (exerciseId != scoreCard.ExerciseId) { throw new Exception("Scorecard ids does not match"); } var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.SingleOrDefault(r => r.ExerciseId == exerciseId) as KPExplorerQuestionnaireScoreCard; if (excistingScoreCard != null) { //Update the score card excistingScoreCard.Responses = scoreCard.Responses.Select(e => new QuestionResponse() { Score = e.Score, Question = e.Question }).ToList(); excistingScoreCard.IsCompleted = scoreCard.IsCompleted; excistingScoreCard.ElapsedTimeSeconds = scoreCard.ElapsedTimeSeconds; } } //Save user userRepo.SaveUser(usr); }
public void UpdateQuestionAnswerRsult(Guid exerciseId, QuestionAnswerScoreCardDto scoreCard) { if (exerciseId != scoreCard.ExerciseId) { throw new Exception("Scorecard ids does not match"); } var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.SingleOrDefault(r => r.ExerciseId == exerciseId) as QuestionAnswerScoreCard; if (excistingScoreCard != null) { //Update the score card excistingScoreCard.IsCompleted = scoreCard.IsCompleted; excistingScoreCard.Answer = scoreCard.Answer; } } //Save user userRepo.SaveUser(usr); }
public DialogEntryDTO Post(PostDialogRequest request) { //Check that sender is logged in var currentUserId = (Guid)HttpContext.Current.Items["UserId"]; if (request.SenderUserId != currentUserId) { throw new Exception("Cannot send message on behalf of other user"); } //Get user and dialogs var userRepo = new UserRepositoryDocumentDB(); var dialogRepo = new DialogRepositoryDocumentDb(); var dialogService = new DialogService(dialogRepo); var entry = dialogService.Post(request.SenderUserId, request.ReceiverUserId, request.Message); var sender = userRepo.GetUserById(request.SenderUserId); return(new DialogEntryDTO { SenderName = sender.FirstName + " " + sender.LastName, TimeStamp = entry.TimeStamp, Text = entry.Text, SenderImageUrl = sender.ImageUrl }); }
public void CreateCoachUser() { var usr = new Bounded_Contexts.CoachingCourses.Core.Models.User.User() { UserId = "coach1", FirstName = "Tine", LastName = "Meisner", Password = "******", Roles = new List <string>() { "Coach" } }; var userRepo = new UserRepositoryDocumentDB(); userRepo.CreateUser(usr); var foundUsr = userRepo.GetUserById(usr.Id); Assert.IsNotNull(foundUsr); Assert.AreEqual(foundUsr.FirstName, usr.FirstName); Assert.AreEqual(foundUsr.LastName, usr.LastName); Assert.AreEqual(foundUsr.Password, usr.Password); }
public bool Post(ShareVideoRequest request) { var userRepo = new UserRepositoryDocumentDB(); //Load user var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); var exercise = usr.CourseAdmissions.SelectMany(ca => ca.Results).Single(r => r.ExerciseId == request.ExerciseId) as VideoExerciseScoreCard; if (exercise.Phase != 2) { throw new Exception("Unexpected phase"); } var redirrectUrl = ConfigurationManager.AppSettings["videoReviewRedirrectUrl"]; var apiKey = "live_d54b425a127f44b8e0f60904867d9b57aeaa9775"; var emailSender = new EmailSenderSendWithUs(apiKey); var data = new { Username = usr.FirstName + " " + usr.LastName, Userimageurl = usr.ImageUrl, VideoUrl = redirrectUrl + "/#/videoreview?uuid=" + request.Uuid + "&userid=" + usr.Id, MessageToReviewer = exercise.MesageToReviewer }; emailSender.SendEmail(exercise.ReviewerEmail, data); exercise.Phase = 3; exercise.VideoUuid = request.Uuid; userRepo.SaveUser(usr); return(true); }
public GetUserResultsResponse UserResults() { var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); return(UserResults(usr)); }
public UserDto CurrentUser() { var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); return(UserDtoConverter.ConvertToDTO(usr)); }
public ScoreCardDto GetExerciseResults(Guid userId, Guid exerciseId) { var userRepo = new UserRepositoryDocumentDB(); var usr = userRepo.GetUserById(userId); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.SingleOrDefault(r => r.ExerciseId == exerciseId); return(UserDtoConverter.ConvertScoreCardDto(excistingScoreCard)); } throw new Exception("Scorecard not found"); }
public void ResetCourseAdmission(int moduleIndex) { var coachingCourseService = new CoachingCourseService( new CoachingCourseRepositoryDocumentDB(), new ModuleResourceRepositoryDocumentDb(), new CoachingModuleRepositoryDocumentDB(), new CoachnigModuleExerciseResourceRepositoryDocumentDB(), new UserRepositoryDocumentDB()); var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); coachingCourseService.ResetCourse(usr, usr.CourseAdmissions.Single(), moduleIndex); }
public void PostUserVideoReply(Guid userId, string uuid, PostVideoReplyRequest request) { var userRepo = new UserRepositoryDocumentDB(); var dialogRepo = new DialogRepositoryDocumentDb(); var usr = userRepo.GetUserById(userId); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.OfType <VideoExerciseScoreCard>().Single(r => r.VideoUuid == uuid); if (excistingScoreCard.Phase > 3) { throw new UnauthorizedAccessException("Review already has reply"); } excistingScoreCard.VideoReply = request.Reply; excistingScoreCard.Phase = 4; excistingScoreCard.IsCompleted = true; userRepo.SaveUser(usr); //Create reviewer as user var userService = new UserService( userRepo, new DialogRepositoryDocumentDb()); var reviewerUser = userService.CreateUser( Guid.NewGuid().ToString(), excistingScoreCard.ReviewerFirstName, excistingScoreCard.ReviewerLastName, Guid.NewGuid().ToString(), excistingScoreCard.ReviewerEmail, new List <String> { "Friend" }, null); //Create dialog var dialogService = new DialogService(dialogRepo); dialogService.InitiateDialog(usr.Id, reviewerUser.Id, "Din ven", "Din ven"); var entry1 = dialogService.Post(usr.Id, reviewerUser.Id, excistingScoreCard.MesageToReviewer); var entry2 = dialogService.Post(reviewerUser.Id, usr.Id, request.Reply); return; } throw new Exception("Scorecard not found"); }
public void UpdateModulePromiseResult(Guid exerciseId, PromiseScoreCardDto scoreCard) { if (exerciseId != scoreCard.ExerciseId) { throw new Exception("Scorecard ids does not match"); } var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById((Guid)HttpContext.Current.Items["UserId"]); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.SingleOrDefault(r => r.ExerciseId == exerciseId) as PromiseScoreCard; if (excistingScoreCard != null) { //Update the score card excistingScoreCard.IsCompleted = scoreCard.IsCompleted; excistingScoreCard.PromiseText = scoreCard.PromiseText; excistingScoreCard.Responses = scoreCard.Responses != null?scoreCard.Responses.Select(e => new QuestionResponse() { Score = e.Score, Question = e.Question }).ToList() : null; //find next nodule var course = new CoachingCourseRepositoryDocumentDB().GetItems(c => c.Id == admission.CourseId).Single(); var nextModuleIndex = course.Modules.IndexOf(course.Modules.Single(m => m.ModuleReferenceId == excistingScoreCard.Module.ModuleReferenceId)) + 1; if (nextModuleIndex < course.Modules.Count) { var nextModule = course.Modules[nextModuleIndex]; var nextGoalScorecard = (admission.Results.SingleOrDefault(r => r is GoalScoreCard && r.Module.ModuleReferenceId == nextModule.ModuleReferenceId) as GoalScoreCard); if (nextGoalScorecard != null) { nextGoalScorecard.PreviousModulePromiseText = scoreCard.PromiseText; } } } } //Save user userRepo.SaveUser(usr); }
public GetUserResultsResponse UserResults(Guid userId) { var userRepo = new UserRepositoryDocumentDB(); //var usr = userRepo.GetAllItems().Last(); var usr = userRepo.GetUserById(userId); //Check that the logged in user has access to this users info if (usr.CoachId != (Guid)HttpContext.Current.Items["UserId"]) { throw new Exception("Logged in user has no access to this method"); } var results = UserResults(usr); //Load the exercises. External users will see results without loading the modules LoadCompletedScoreCardExercises(results); return(results); }
public GetUserVideoResultResponse GetUserVideoResult(Guid userId, string uuid) { var userRepo = new UserRepositoryDocumentDB(); var usr = userRepo.GetUserById(userId); foreach (var admission in usr.CourseAdmissions) { var excistingScoreCard = admission.Results.OfType <VideoExerciseScoreCard>().SingleOrDefault(r => r.VideoUuid == uuid); var ret = new GetUserVideoResultResponse(); ret.ScoreCard = UserDtoConverter.ConvertScoreCardDto(excistingScoreCard); ret.UserFirstName = usr.FirstName; ret.UserLastName = usr.LastName; return(ret); } throw new Exception("Scorecard not found"); }
public void AdmitUsertoCourse() { var courseRepo = new CoachingCourseRepositoryDocumentDB(); var userRepo = new UserRepositoryDocumentDB(); var foundUsr = userRepo.GetUserById(new Guid("e65bed30-1e7e-4920-9ee4-b880fe9034e5")); var coachingCourseService = new CoachingCourseService( courseRepo, new ModuleResourceRepositoryDocumentDb(), new CoachingModuleRepositoryDocumentDB(), new CoachnigModuleExerciseResourceRepositoryDocumentDB(), new UserRepositoryDocumentDB()); var courseName = "Better ways course"; //Get course var course = courseRepo.GetItems(i => i.Name == courseName).Last(); // _coachingCourseService.CreateNewCoachingCourse(courseName); coachingCourseService.AdmitUserToCourse(foundUsr, course); }