public async Task <IActionResult> SendSignupLink(InviteUserViewModel model) { var baseUrl = BaseUrlHelper.GetBaseUrl(Request); var manager = _context.ManagerFactory.CreateSignupLinkManager(); await manager.SendLink(model.Email, baseUrl); return(Redirect("/Admin")); }
public async Task <IActionResult> StartSession(int studyId, string sessionName) { var sessionManager = _context.ManagerFactory.CreateSessionManager(); var externalDbManager = _context.ManagerFactory.CreateExternalDbManager(); var surveyLinkManager = _context.ManagerFactory.CreateSurveyLinkManager(); var studySessionModel = sessionManager.GetStudySession(studyId, sessionName).Result; var id = studySessionModel.Id; var userSessions = await sessionManager.GetAllUserSessionsForStudySession(id); var participants = externalDbManager.GetParticipantInfo(studyId); foreach (var survey in studySessionModel.Surveys) { foreach (var session in userSessions) { //Create surveylink wih a reference to UserSessions ObjectId var participantId = session.ParticipantId; var participantInfo = participants.FirstOrDefault(x => x.ParticipantId == participantId); var baseUrl = BaseUrlHelper.GetBaseUrl(Request); var link = new SurveyLinkModel { ParticipantId = participantInfo.ParticipantId, ParticipantEmail = participantInfo.Email, SurveyName = survey, UserSessionId = session.Id }; await surveyLinkManager.SendLink(link, baseUrl); } } await sessionManager.SetStudySessionStarted(studyId, sessionName); return(RedirectToAction("AllStudies", "Study")); }