public void SendEmail_UnSuccessfull() { InviteUsers invite = new InviteUsers { InviteUserEmailId = "*****@*****.**", InviteUrl = "/bookDashboard", InviteRoleLevel = "Admin" }; string email = "*****@*****.**"; string subject = "salary"; string body = "salary for may"; userServiceMoq.Setup(c => c.CreateInviteUsers(invite)).Returns(false); mailService.Setup(c => c.SendEmail(email, subject, body)); //Act var controller = new UserController(logger.Object, userServiceMoq.Object, mailService.Object); var result = controller.SendEMail(invite); // assert Assert.IsType <OkObjectResult>(result.Result); var okResult = result.Result as OkObjectResult; Assert.NotNull(okResult); Assert.Equal(200, okResult.StatusCode); Assert.Equal("User already Exist or Already Invitation Sent", okResult.Value); }
public async Task <IActionResult> SendEMail([FromBody] InviteUsers inviteUsers) { try { var res = _user.CreateInviteUsers(inviteUsers); if (res) { string subject = "Invitation For RunBook Application"; string body = InviteUserTemplate.emailTemplate; body = body.Replace("{UserName}", inviteUsers.UserName); body = body.Replace("{InviteRoleLevel}", inviteUsers.InviteRoleLevel); //System.IO.File.ReadAllText("./Templates/InviteUserTemplate.html"); _logger.LogInformation("Preparing an Email"); await _mail.SendEmail(inviteUsers.InviteUserEmailId, subject, body); _logger.LogInformation("Email sent"); return(Ok("Email sent successfully")); } else { return(Ok("User already Exist or Already Invitation Sent")); } } catch (Exception ex) { _logger.LogError($"Internal server error in SendEMail : {ex}"); return(StatusCode(500, $"Error while sending Email: {ex}")); } }
public async Task InviteUsers([FromBody] InviteUsers inviteUsers, CancellationToken cancellationToken) { try { var emailsNotInvited = new List <string>(); var invitedUsers = new List <ApplicationUser>(); foreach (var email in inviteUsers.Emails) { var user = await _operations.RepositoryManager.GetUserFromLoginAsync(email, cancellationToken); if (user != null && user.IsInvited) { emailsNotInvited.Add(email); } else if (user != null) { user.IsInvited = true; user.HubQuota = inviteUsers.HubQuota; user.InviteQuota = inviteUsers.InviteQuota; user.UserRole = inviteUsers.Role; await _operations.RepositoryManager.UpdateUserAsync(user, cancellationToken); invitedUsers.Add(user); } else { user = new ApplicationUser() { Email = email, UserName = email, IsInvited = true, HubQuota = inviteUsers.HubQuota, InviteQuota = inviteUsers.InviteQuota, IsEnabled = true }; await _operations.RepositoryManager.CreateUserAsync(user, null, cancellationToken); invitedUsers.Add(user); } } await SendInvites(invitedUsers, cancellationToken); if (emailsNotInvited.Count > 0) { throw new AdminControllerException("The following emails were not added: " + string.Join(", ", emailsNotInvited)); } } catch (Exception ex) { throw new AdminControllerException($"Error inviting users: {ex.Message}", ex); } }
public bool CreateInviteUsers(InviteUsers inviteUsers) { InviteUsers userExist = null; var UserEmail = inviteUsers.InviteUserEmailId; string userCmd = @"SELECT id FROM [dbo].[InviteUser] WHERE InviteUserEmailId = @InviteUserEmailId AND TenantId =@TenantId AND InviteUrl =@InviteUrl AND InviteRoleLevel=@InviteRoleLevel"; var inviteUserparams = new DynamicParameters(); inviteUserparams.Add("@InviteUserEmailId", inviteUsers.InviteUserEmailId); inviteUserparams.Add("@InviteUrl", inviteUsers.InviteUrl); inviteUserparams.Add("@InviteRoleLevel", inviteUsers.InviteRoleLevel); inviteUserparams.Add("@TenantId", Convert.ToInt32(inviteUsers.TenantId)); inviteUserparams.Add("@UserId", Convert.ToInt32(inviteUsers.UserId)); inviteUserparams.Add("@Accepted", inviteUsers.Accepted); inviteUserparams.Add("@Id", dbType: DbType.Int32, direction: ParameterDirection.InputOutput); using (IDbConnection con = _Idbconnection) { con.Open(); userExist = con.QuerySingleOrDefault <InviteUsers>(userCmd, new { InviteUserEmailId = UserEmail, InviteUrl = inviteUsers.InviteUrl, InviteRoleLevel = inviteUsers.InviteRoleLevel, TenantId = inviteUsers.TenantId, UserId = inviteUsers.UserId }); if (userExist != null) { return(false); } var sqltrans = con.BeginTransaction(); var createdInviteUser = con.Execute("[dbo].sp_CreateInviteUser", inviteUserparams, sqltrans, 0, commandType: CommandType.StoredProcedure); if (createdInviteUser > 0) { sqltrans.Commit(); } else { sqltrans.Rollback(); } con.Close(); if (createdInviteUser > 0) { return(true); } } return(false); }