Example #1
0
        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);
        }
Example #2
0
 public void UpdateInvite(EmployeeInvite invite)
 {
     using (PunchClockDbContext context = new PunchClockDbContext())
     {
         context.EmployeeInvites.AddOrUpdate(invite);
     }
 }
Example #3
0
 public void DeleteInvite(EmployeeInvite invite)
 {
     using (PunchClockDbContext context = new PunchClockDbContext())
     {
         invite.InviteRevoked = true;
         context.EmployeeInvites.AddOrUpdate(invite);
     }
 }
Example #4
0
 public ActionResult DeleteInvite([DataSourceRequest] DataSourceRequest request,
                                  EmployeeInvite invite)
 {
     if (invite != null && ModelState.IsValid)
     {
         _companyService.DeleteInvite(invite);
     }
     return(Json(new[] { invite }.ToDataSourceResult(request, ModelState)));
 }
Example #5
0
 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);
     }
 }
Example #6
0
 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)));
 }