public string GetEmailBody(BaseUserEventSubscribeDTO message, string messageTemplate) { if (message == null) { throw new ArgumentException("message is null"); } if (String.IsNullOrEmpty(messageTemplate)) { throw new ArgumentException("messageTemplate is null"); } var config = new TemplateServiceConfiguration(); config.DisableTempFileLocking = true; config.CachingProvider = new DefaultCachingProvider(t => { }); config.TemplateManager = new DelegateTemplateManager(name => { string path = Path.Combine(templateFolderPath, name); return(File.ReadAllText(path)); }); var service = RazorEngineService.Create(config); Engine.Razor = service; var template = File.ReadAllText(Path.Combine(templateFolderPath, $"{messageTemplate}.cshtml")); return(Engine.Razor.RunCompile(template, messageTemplate, message.GetType(), message)); }
public Task SendAsync(BaseUserEventSubscribeDTO msg) { string subject = null; string messageTemplateName = null; var v1 = msg as UserDeedlineAppEventSubscribeDTO; if (v1 != null) { subject = Resource.Subject_RequestDeedlineAppEventConsumer; messageTemplateName = "RequestDeedlineAppEvent"; } var v2 = msg as UserDeedlineAppEventSubscribeDTO; if (v2 != null) { subject = Resource.Subject_UserPasswordRecoveryAppEventConsumer; messageTemplateName = "UserPasswordRecoveryAppEvent"; } var v3 = msg as UserRequestAppEventSubscribeDTO; if (v3 != null) { if (v3.IsWorker) { subject = String.Format(Resource.Subject_RequestAppEventConsumer, v3.Request.Id, v3.Request.StatusName); messageTemplateName = "RequestAppEventWorker"; } else { subject = String.Format(Resource.Subject_RequestAppEventConsumer, v3.Request.Id, v3.Request.StatusName); messageTemplateName = "RequestAppEventCabinet"; } } var v4 = msg as UserEventSubscribeDTO; if (v4 != null) { subject = String.Format(Resource.Subject_UserRegisterAppEventConsumer, Resource.AppName); messageTemplateName = "UserRegisterAppEvent"; } var emailHtmlBody = emailTemplateService.GetEmailBody(msg, messageTemplateName); Task t = new Task(() => sendEmail(msg.Email, subject, emailHtmlBody)); return(t); }
public Task SendAsync(BaseUserEventSubscribeDTO msg) { string body = null; string title = null; var msg1 = msg as UserRequestAppEventSubscribeDTO; if (msg1 != null) { title = msg1.Request.Id.ToString(); body = String.Format(Resource.Subject_RequestAppEventConsumer, msg1.Request.Id, msg1.Request.StatusName);; } var msg2 = msg as UserDeedlineAppEventSubscribeDTO; if (msg2 != null) { title = Resource.Subject_UserPasswordRecoveryAppEventConsumer; body = String.Join(", ", msg2.Items.Select(r => r.Id)); } var model = new { app_id = appId, contents = new { en = body }, headings = new { en = title }, filters = new object[] { new { field = "tag" }, new { key = "userEmail" }, new { relation = "=" }, new { value = msg.Email } } }; var content = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json"); return(client.PostAsync("https://onesignal.com/api/v1/notifications", content)); }