public string ComposeInviteEmail(EmployeeInvite invite) { var appSettings = _appSettingService.GetByModules((int)ModuleType.Core); var templateName = appSettings .First(x => x.Key.Equals(AppKey.CoreCompanyInviteEmployeeEmailTemplate, StringComparison.OrdinalIgnoreCase)) .Value; var logoPath = appSettings .First(x => x.Key.Equals(AppKey.CoreEmailTemplateLogoPath, StringComparison.OrdinalIgnoreCase)) .Value; var emailTemplatePath = Path.Combine(Util.AssemblyDirectory, "Templates", "Email", templateName); if (!File.Exists(emailTemplatePath)) { Log.Error($"Template doesnt't exists at {emailTemplatePath}"); } else { var emailContent = File.ReadAllText(emailTemplatePath); emailContent = emailContent.Replace("#Logo#", logoPath); emailContent = emailContent.Replace("#Name#", invite.Name); emailContent = emailContent.Replace("#CreatedBy#", invite.InvitedBy); emailContent = emailContent.Replace("#Email#", invite.Email); emailContent = emailContent.Replace("#LinkToRegister#", invite.LinkToRegister); return(emailContent); } return(string.Empty); }
public void UpdateInvite(EmployeeInvite invite) { using (PunchClockDbContext context = new PunchClockDbContext()) { context.EmployeeInvites.AddOrUpdate(invite); } }
public void DeleteInvite(EmployeeInvite invite) { using (PunchClockDbContext context = new PunchClockDbContext()) { invite.InviteRevoked = true; context.EmployeeInvites.AddOrUpdate(invite); } }
public ActionResult DeleteInvite([DataSourceRequest] DataSourceRequest request, EmployeeInvite invite) { if (invite != null && ModelState.IsValid) { _companyService.DeleteInvite(invite); } return(Json(new[] { invite }.ToDataSourceResult(request, ModelState))); }
public string Invite(EmployeeInvite invite) { using (PunchClockDbContext context = new PunchClockDbContext()) { invite.GlobalId = Guid.NewGuid().ToString("D"); invite.UserType = context.UserTypes.FirstOrDefault(x => x.Id == invite.UserTypeId); context.EmployeeInvites.AddOrUpdate(invite); context.SaveChanges(); return(invite.GlobalId); } }
public ActionResult UpdateInvite([DataSourceRequest] DataSourceRequest request, EmployeeInvite invite) { if (invite != null && ModelState.IsValid) { invite.CompanyId = OperatingUser.CompanyId; invite.InvitedBy = OperatingUser.DisplayName; invite.LinkToRegister = $"{Request.Url.Scheme}://{Request.Url.Host}:{Request.Url.Port}{Url.Action("Register", "User", new {code = OperatingUser.RegistrationCode})}"; _companyService.UpdateInvite(invite); string emailMessage = _companyService.ComposeInviteEmail(invite); _emailService.SendEmail(emailMessage, "Invite", new [] { invite.Email }); } return(Json(new[] { invite }.ToDataSourceResult(request, ModelState))); }