Exemplo n.º 1
0
        private async Task SendTeamMemberInvitationEmail(AddTeamMemberRequestVM teamMemberRequest)
        {
            try
            {
                var emailTemplate = await _emailRepository.GetEmailTemplate("JoinMyTeam");

                if (emailTemplate != null)
                {
                    var emailSubject = emailTemplate.Subject;
                    var emailBody    = emailTemplate.EmailBody;
                    var email        = new Email();
                    email.ToAddress.Add(teamMemberRequest.EmailAddress);

                    var joinLink = String.Format("{0}Account/Join?returnurl={1}", this._settings.SiteUrl.AddTrailingSlash(), teamMemberRequest.ActivationCode);
                    emailBody     = emailBody.Replace("@teamName", teamMemberRequest.Team.Name);
                    emailBody     = emailBody.Replace("@joinUrl", joinLink);
                    emailBody     = emailBody.Replace("@inviter", teamMemberRequest.CreatedBy.Name);
                    email.Body    = emailBody;
                    email.Subject = emailSubject;
                    await this._emailManager.Send(email);
                }
            }
            catch (Exception)
            {
                // Silently fail. We will log this. But we do not want to show an error to user because of this
            }
        }
Exemplo n.º 2
0
 public ActionResult Add(AddTeamMemberRequestVM model)
 {
     // This method adds a user to the team
     // If user is new to the system, sends an email to user to signup and join, else add him to the team
     try
     {
         if (ModelState.IsValid)
         {
             var existingUser = repo.GetUser(model.EmailAddress);
             if (existingUser != null)
             {
                 TeamMember teamMember = new TeamMember {
                     MemberID = existingUser.ID, TeamID = TeamID, CreatedByID = UserID
                 };
                 var result = repo.SaveTeamMember(teamMember);
                 if (result.ID > 0)
                 {
                     return(Json(new { Status = "Success", Message = "Successfully added user to team" }));
                 }
             }
             else
             {
                 var teamMemberRequest = new TeamMemberRequest {
                     EmailAddress = model.EmailAddress, CreatedByID = UserID
                 };
                 teamMemberRequest.TeamID         = model.TeamID;
                 teamMemberRequest.ActivationCode = model.TeamID + "-" + Guid.NewGuid().ToString("n");
                 var resultNew = repo.SaveTeamMemberRequest(teamMemberRequest);
                 if (resultNew.Status)
                 {
                     new UserService(repo, SiteBaseURL).SendJoinMyTeamEmail(teamMemberRequest);
                     return(Json(new { Status = "Success" }));
                 }
                 else
                 {
                     log.Debug(resultNew);
                 }
             }
         }
     }
     catch (Exception ex)
     {
         log.Error(ex);
     }
     return(Json(new { Status = "Error", Message = "Error adding user to team" }));
 }
Exemplo n.º 3
0
 public async Task<int> SaveTeamMemberRequest(AddTeamMemberRequestVM teamMemberRequest)
 {
     var q = @"INSERT INTO TeamMemberRequest(EmailAddress,TeamId,ActivationCode,CreatedByID,CreatedDate) VALUES(@email,@teamId,@a,@userId,@dt);;SELECT CAST(SCOPE_IDENTITY() as int)";
     using (var con = new SqlConnection(ConnectionString))
     {
         var a = Guid.NewGuid().ToString("n").Replace("-", "");
         con.Open();
         var p = await con.QueryAsync<int>(q, new
         {
             @teamId = teamMemberRequest.TeamId,
             @email = teamMemberRequest.EmailAddress,
             @a = a,
             @userId = teamMemberRequest.CreatedById,
             @dt = DateTime.Now
         });
         return p.First();
     }
 }
        public async Task <int> SaveTeamMemberRequest(AddTeamMemberRequestVM teamMemberRequest)
        {
            var q = @"INSERT INTO TeamMemberRequest(EmailAddress,TeamId,ActivationCode,CreatedByID,CreatedDate) VALUES(@email,@teamId,@a,@userId,@dt);;SELECT CAST(SCOPE_IDENTITY() as int)";

            using (var con = new SqlConnection(ConnectionString))
            {
                var a = Guid.NewGuid().ToString("n").Replace("-", "");
                con.Open();
                var p = await con.QueryAsync <int>(q, new
                {
                    @teamId = teamMemberRequest.TeamId,
                    @email  = teamMemberRequest.EmailAddress,
                    @a      = a,
                    @userId = teamMemberRequest.CreatedById,
                    @dt     = DateTime.Now
                });

                return(p.First());
            }
        }
Exemplo n.º 5
0
        public async Task AddNewTeamMember(AddTeamMemberRequestVM teamMemberRequest)
        {
            var user = await userRepository.GetUser(teamMemberRequest.EmailAddress);

            if (user != null)
            {
                teamRepository.SaveTeamMember(this.userSessionHelper.TeamId, user.Id, this.userSessionHelper.UserId);
            }
            else
            {
                teamMemberRequest.TeamID      = this.userSessionHelper.TeamId;
                teamMemberRequest.CreatedById = this.userSessionHelper.UserId;
                var id = await teamRepository.SaveTeamMemberRequest(teamMemberRequest);

                var requests = await teamRepository.GetTeamMemberInvitations(this.userSessionHelper.TeamId)
                ;

                var r = requests.FirstOrDefault(s => s.Id == id);

                await emailManager.SendTeamMemberInvitationEmail(r);
            }
        }
Exemplo n.º 6
0
        public async Task<ActionResult> Add(AddTeamMemberRequestVM model)
        {
            try
            {
                //if (ModelState.IsValid)
                {
                    await _teamManager.AddNewTeamMember(model);
                    return Json(new { Status = "Success", Message = "Successfully added user to team" });
                }
                ////else
                //{
                //    var errors = ViewData.ModelState.Values.SelectMany(s => s.Errors.Select(g => g.ErrorMessage));
                //    return Json(new { Status = "Error", Message = "Error adding user to team", Errors= errors });
                //}
            }
            catch (Exception ex)
            {
                //Log
            }

            return Json(new { Status = "Error", Message = "Error adding user to team" });
        }
        public async Task <ActionResult> Add(AddTeamMemberRequestVM model)
        {
            try
            {
                //if (ModelState.IsValid)
                {
                    await _teamManager.AddNewTeamMember(model);

                    return(Json(new { Status = "Success", Message = "Successfully added user to team" }));
                }
                ////else
                //{
                //    var errors = ViewData.ModelState.Values.SelectMany(s => s.Errors.Select(g => g.ErrorMessage));
                //    return Json(new { Status = "Error", Message = "Error adding user to team", Errors= errors });
                //}
            }
            catch (Exception ex)
            {
                tc.TrackException(ex);
            }

            return(Json(new { Status = "Error", Message = "Error adding user to team" }));
        }
Exemplo n.º 8
0
        public async Task SendTeamMemberInvitationEmail(AddTeamMemberRequestVM teamMemberRequest)
        {
            var emailTemplate = await emailRepository.GetEmailTemplate("JoinMyTeam");

            if (emailTemplate != null)
            {
                string emailSubject = emailTemplate.Subject;
                string emailBody    = emailTemplate.EmailBody;
                Email  email        = new Email();
                email.ToAddress.Add(teamMemberRequest.EmailAddress);



                string joinLink = String.Format("{0}Account/Join?returnurl={1}", teamMemberRequest.SiteBaseUrl, teamMemberRequest.ActivationCode);
                emailBody     = emailBody.Replace("@teamName", teamMemberRequest.Team.Name);
                emailBody     = emailBody.Replace("@joinUrl", joinLink);
                emailBody     = emailBody.Replace("@inviter", teamMemberRequest.CreatedBy.Name);
                email.Body    = emailBody;
                email.Subject = emailSubject;
                await Send(email);

                //}
            }
        }