public MessageTemplate(MessageTemplateType type) { switch (type) { case MessageTemplateType.In: _Message = _DefaultMessageIn; break; case MessageTemplateType.Out: _Message = _DefaultMessageOut; break; case MessageTemplateType.Outgoing: _Message = _DefaultMessageOutgoing; break; case MessageTemplateType.Incoming: _Message = _DefaultMessageIncoming; break; default: _Message = _DefaultMessageNotification; break; } }
public async Task <string> GetTemplate( MessageTemplateName name, CultureInfo culture, MessageTemplateType type, int environmentId) { const string query = @" select ""Id"", ""Description"", ""Type"", ""Locale"", ""Name"", ""Template"", ""EnvironmentId"" from dom.""Message"" where ""Name"" = @Name and ""Type"" = @Type and ""EnvironmentId"" = @EnvironmentId order by ""Locale"" "; using (var con = _connectionProvider.Connection) { var templates = await con.QueryAsync <MessageTemplate>(query, new { Name = name.ToString(), Type = type.ToString(), EnvironmentId = environmentId, }); return(culture.GetMatchedTemplate(templates.ToArray())); } }
public ActionResult VoiceMessage(int eventCode, string toDial) { if (!String.IsNullOrWhiteSpace(toDial)) { return(VoiceMessageDial("", toDial)); } Event e; using (var service = new EventService()) { e = service.Get(eventCode); } if (e == null) { throw new ArgumentException("Invalid event code: " + eventCode); } MessageTemplateType templateType = EventProcessingService.GetTemplateType(e); List <TwilioGatherOption> options = TwilioService.GetGatherOptions(templateType); if (options.Count > 0) { return(VoiceMessageGather(e.Message, options)); } return(VoiceMessageSay(null, e.Message)); }
public Error SendTask(MessageTemplateType msgId, TaskType notificationType, LOVItemModel businessArea, UserModel recipient, int?customerId, Dictionary <string, string> dict) { var error = new Error(); var messageTemplate = db.FindMessageTemplate(_company.Id, msgId); if (messageTemplate == null) { error.SetError(EvolutionResources.errEMailTemplateNotFound); } else { error = SendTask(messageTemplate.Subject, messageTemplate.Message, notificationType, businessArea, recipient, customerId, dict); } return(error); }
private Result GetMailResult ( MessageTemplateType type, SystemMailEntity systemMail, object additionalData, out MailEntity mail ) { mail = null; var result = new Result(); var template = _factory.GetMessageTemplate(type, additionalData); if (template == null) { result.Message = "Wrong tepmlate type."; return(result); } try { mail = template.GetMail(systemMail, additionalData); } catch (ArgumentException) { result.Message = "Can'nt build template. " + "Additional data has wrong type."; return(result); } result.Success = true; return(result); }
public static async Task <bool> PostTemplatedMessage(MessageTemplateType type, Dictionary <string, string> dic, List <ulong> channelIds, string message) { var templateFile = GetTemplate(type); if (string.IsNullOrEmpty(templateFile)) { return(false); } var embed = await CompileTemplate(type, templateFile, dic); if (embed == null) { return(false); } var guildID = SettingsManager.Settings.Config.DiscordGuildId; var discordGuild = APIHelper.DiscordAPI.Client.Guilds.FirstOrDefault(x => x.Id == guildID); foreach (var id in channelIds) { var channel = discordGuild?.GetTextChannel(id); if (channel != null) { await APIHelper.DiscordAPI.SendMessageAsync(channel, message, embed).ConfigureAwait(false); } } return(true); }
protected Error SendMessage(CompanyModel company, UserModel sender, MessageTemplateType templateId, TaskType notificationType, List <UserModel> recipients, Dictionary <string, string> dict, List <string> attachments = null) { // Send as email var message = new EMailMessage(sender, templateId); message.AddRecipients(recipients); message.AddProperties(dict); message.AddAttachments(attachments); EMailService.EMailService es = new EMailService.EMailService(_db, company); var error = es.SendEMail(message); //if (!error.IsError) { // Now send as a notification // TaskManagerService.TaskManagerService ts = new TaskManagerService.TaskManagerService(_db, company); // error = ts.SendTask(templateId, notificationType, recipients, dict); //} return(error); }
private void initialiseMessage(UserModel sender, UserModel recipient = null, List <UserModel> recipients = null, MessageTemplateType templateId = MessageTemplateType.None, string subject = "", string message = "") { Sender = sender; if (recipient != null) { AddRecipient(recipient); } if (recipients != null) { AddRecipients(recipients); } if (templateId != MessageTemplateType.None) { TemplateId = templateId; Subject = Message = ""; } else { TemplateId = MessageTemplateType.None; Subject = subject; Message = message; } }
public static string GetTemplate(MessageTemplateType type) { string typeFile; switch (type) { case MessageTemplateType.KillMailBig: typeFile = Path.Combine(SettingsManager.DataDirectory, "Templates", "Messages", "Template.killMailBig.txt"); break; case MessageTemplateType.KillMailGeneral: typeFile = Path.Combine(SettingsManager.DataDirectory, "Templates", "Messages", "Template.killMailGeneral.txt"); break; case MessageTemplateType.KillMailRadius: typeFile = Path.Combine(SettingsManager.DataDirectory, "Templates", "Messages", "Template.killMailRadius.txt"); break; default: return(null); } if (!string.IsNullOrEmpty(typeFile) && File.Exists(typeFile)) { return(typeFile); } return(null); }
public MessageTemplate(Pharmacy pharmacy, MessageTemplateType type, MessageTemplateMedia media, string content) { Pharmacy = pharmacy; Type = type; Media = media; Content = content; }
public async Task <string> GetTemplate( MessageTemplateName name, CultureInfo culture, MessageTemplateType type, int environmentId) { const string query = @" SELECT [Id] ,[Description] ,[Type] ,[Locale] ,[Name] ,[Template] ,[EnvironmentId] FROM [dom].[Message] where [Name] = @Name and [Type] = @Type and [EnvironmentId] = @EnvironmentId order by [Locale] "; using (var con = _connectionProvider.Connection) { var templates = await con.QueryAsync <MessageTemplate>(query, new { Name = name.ToString(), Type = type.ToString(), EnvironmentId = environmentId, }); return(culture.GetMatchedTemplate(templates.ToArray())); } }
public ActionResult GetContent(MessageTemplateType type, MessageTemplateMedia media) { using (var service = new MessageTemplateService()) { var template = service.Get(User.Pharmacy, type, media); return(Content(template.Content)); } }
public MessageResponseOption(MessageTemplateType type, string callbackFunc, string longDescription, string shortDescription, string verb) { Type = type; CallbackFunction = callbackFunc; LongDescription = longDescription; ShortDescription = shortDescription; Verb = verb; }
public void loadArchiveSelectedUserDate(string selectedUser, string search, string date) { String HTMLResult = "<p></p>"; if (this.InvokeRequired) { BeginInvoke(new loadArchiveSelectedUserDateDelegate(loadArchiveSelectedUserDate), new object[] { selectedUser, search }); return; } ResetHTML(); Emoticons myEmoticons = new Emoticons(Directory.GetCurrentDirectory() + "\\Emoticons\\"); List <Remwave.Client.Storage.StorageMessage> list = mStorage.GetMessageFromArchiveByDate(selectedUser, search, 2048, date); for (int i = list.Count - 1; i >= 0; i--) { JabberUser jabberUser = null; MessageStyle incomingStyle = new MessageStyle(Color.White, new System.Drawing.Font("Trebuchet MS", 8.5F, System.Drawing.FontStyle.Regular), Color.Black, Color.Red); MessageStyle outgoingStyle = new MessageStyle(Color.White, new System.Drawing.Font("Trebuchet MS", 8.5F, System.Drawing.FontStyle.Regular), Color.Black, Color.Blue); MessageTemplateType template = MessageTemplateType.Notification; MessageStyle style = new MessageStyle(Color.White, new System.Drawing.Font("Trebuchet MS", 8.5F, System.Drawing.FontStyle.Regular), Color.Gray, Color.Gray); String messageHTML = ""; if (list[i].ContentHTML != "") { messageHTML = list[i].ContentHTML; } else { messageHTML = list[i].ContentText; } //Compatibility with legacy text only messages if (list[i].Direction == StorageItemDirection.In) { style = incomingStyle; template = MessageTemplateType.In; jabberUser = new JabberUser(list[i].JID); } else { style = outgoingStyle; template = MessageTemplateType.Out; jabberUser = new JabberUser(mStorage.Username); } IMMessage message = new IMMessage(jabberUser.Nick, messageHTML, list[i].GUID, list[i].Created, style, template, myEmoticons); HTMLResult += message.HTML; } wbConversation.Document.Body.InnerHtml += HTMLResult; }
public static async Task <Embed> GetTemplatedMessage(MessageTemplateType type, Dictionary <string, string> dic) { var templateFile = GetTemplate(type); if (string.IsNullOrEmpty(templateFile)) { return(null); } return(await CompileTemplate(type, templateFile, dic)); }
public static List <MessageResponseOption> GetResponseOptions(MessageTemplateType templateType) { List <MessageResponseOption> opts; using (var service = new MessageResponseOptionService()) { opts = service.GetWhere(MessageResponseOptionService.MessageTemplateTypeCol == templateType); } return(opts); }
public ActionResult SaveTemplate(MessageTemplateType type, MessageTemplateMedia media, string content) { using (var service = new MessageTemplateService()) { var template = service.Get(User.Pharmacy, type, media); template.Content = content; service.Update(template); } return(null); }
public static void HandleSMSResponse(string fromNumber, string fromBody, string messageSid) { string responseString = ""; //unsubscribe if (twilioUnsubscribeVerbs.Find(v => v.ToLower().Equals(fromBody)) != null) { Patient p = GetPatientFromPhone(fromNumber); if (p != null) { responseString = EventProcessingService.UnsubscribePatient(p); } } //subscribe if (twilioSubscribeVerbs.Find(v => v.ToLower().Equals(fromBody)) != null) { Patient p = GetPatientFromPhone(fromNumber); if (p != null && p.ContactPreference == ContactPreference.NONE) { responseString = EventProcessingService.Subscribe(p); } } //system-specific responses if (responseString.Length == 0) { List <Event> openEvents = GetOpenSMSEventsFor(fromNumber); foreach (Event e in openEvents) { MessageTemplateType templateType = EventProcessingService.GetTemplateType(e); List <MessageResponseOption> opts = CommunicationsService.GetResponseOptions(templateType); MessageResponseOption opt = opts.Find(o => { return(o.Verb.ToLower().Equals(fromBody)); }); var response = EventProcessingService.HandleResponse(opt, e); if (response.GetType() == typeof(string)) { responseString = (string)response; } } } if (responseString.Length > 0) { SendSMSMessage(fromNumber, responseString); } else { throw new ArgumentException("Unexpected response: " + fromBody + " from message: " + messageSid); } }
private static void MergeAndSend(Event e, List <MessageTemplate> pharmacyTemplates) { if (e.Status == EventStatus.InActive) { throw new ArgumentException("Cannot send an inactive event"); } MessageTemplateType templateType = GetTemplateType(e); MessageTemplateMedia templateMedia = GetMedia(e.Patient.ContactPreference); MessageTemplate template = GetMessageTemplate(pharmacyTemplates, templateType, templateMedia); MergeAndSend(e, template); }
public async Task <string> Build( MessageTemplateName templateName, MessageTemplateType templateType, params object[] args) { var currentEnvironment = await environment.LoadEnvironment(); var messageTemplate = await templateRepository.GetTemplate( templateName, cultureContext.Culture, templateType, currentEnvironment.Id.Value); var message = string.Format(messageTemplate, args); return(message); }
public ActionResult VoiceMessageGathered(string Digits) { string fromNumber = Request.Params["From"]; string callSid = Request.Params["CallSid"]; bool isActionFound = false; object response = null; Event eventObj = EventProcessingService.GetEvent(callSid); MessageTemplateType templateType = EventProcessingService.GetTemplateType(eventObj); List <TwilioGatherOption> optRedirects = TwilioService.GetGatherOptions(templateType); foreach (var opt in optRedirects) { if (opt.Digits.Equals(Digits)) { response = EventProcessingService.HandleResponse(opt.ResponseOption, eventObj); isActionFound = true; } } if (!isActionFound) { response = new TwilioDialModel() { MessageBody = "An application error has occurred. You are being redirected to your pharmacy for assistance.", DialTo = new PhoneNumber(eventObj.Patient.Pharmacy.Phone) }; } if (response is TwilioDialModel) { TwilioDialModel tdm = (TwilioDialModel)response; return(RedirectToAction("VoiceMessageDial", new { toSay = tdm.MessageBody, toDial = tdm.DialTo })); } if (response is ActionResult) { return((ActionResult)response); } return(RedirectToAction("VoiceMessageSay", new { toSay = response.ToString() })); }
/// <summary> /// Geração do template para um tipo de mensagem /// </summary> /// <param name="messageTemplateType">Tipo de template para mensagem</param> /// <param name="data">Dados para substituição</param> /// <returns>String html</returns> public string GetSubject( MessageTemplateType messageTemplateType, dynamic data) { try { string messageTemplate = _enumHelpers.GetDisplay(messageTemplateType, Subjects.ResourceManager); if (!string.IsNullOrEmpty(messageTemplate)) { return(ReplaceData(messageTemplate, data)); } } catch (Exception ex) { _logger.LogError(ex, ex.Message); } return(null); }
public static async Task <bool> PostTemplatedMessage(MessageTemplateType type, Dictionary <string, string> dic, List <ulong> channelIds, string message) { var templateFile = GetTemplate(type); if (string.IsNullOrEmpty(templateFile)) { return(false); } var embed = await CompileTemplate(type, templateFile, dic); if (embed == null) { return(false); } foreach (var id in channelIds) { await APIHelper.DiscordAPI.SendMessageAsync(id, message, embed).ConfigureAwait(false); } return(true); }
public MessageTemplateModel FindMessageTemplateModel(int companyId, MessageTemplateType templateId, bool bCreateEmptyIfNotfound = true) { MessageTemplateModel model = null; var et = db.FindMessageTemplate(companyId, templateId); if (et == null) { if (bCreateEmptyIfNotfound) { model = new MessageTemplateModel(); } } else { model = MapToModel(et); } return(model); }
public async Task <Result> SendAsync(MessageTemplateType type, SystemMailEntity systemMail, object additionalData) { var result = GetMailResult(type, systemMail, additionalData, out MailEntity mail); if (result.Success == false) { return(result); } using (_mailSender) { await _mailSender.SendMailAsync(mail); } result = new Result(true, $"Message sended to user({systemMail.To})."); return(result); }
public MessageTemplate(MessageTemplateType type) { switch (type) { case MessageTemplateType.In: _Message = _DefaultMessageIn; break; case MessageTemplateType.Out: _Message = _DefaultMessageOut; break; case MessageTemplateType.Outgoing: _Message = _DefaultMessageOutgoing; break; case MessageTemplateType.Incoming: _Message = _DefaultMessageIncoming; break; default: _Message = _DefaultMessageNotification; break; } }
/// <summary> /// Envio de email /// </summary> /// <param name="messageTemplateType">Template da mensagem</param> /// <param name="data">Dados da mensagem</param> /// <param name="firstName">Primeiro nome do destinatário</param> /// <param name="toEmail">Email do destinatário</param> /// <returns></returns> private async Task SendMailAsync( MessageTemplateType messageTemplateType, dynamic data, string firstName, string toEmail) { string message = _messageTemplate.GetTemplate( messageTemplateType, data); string subject = _messageTemplate.GetSubject( messageTemplateType, new { FirstName = firstName }); await _emailSender.SendAsync( toEmail, subject, message).ConfigureAwait(false); }
public static List <TwilioGatherOption> GetGatherOptions(MessageTemplateType type) { List <MessageResponseOption> respOpts = CommunicationsService.GetResponseOptions(type); respOpts = respOpts.FindAll(o => { return(!string.IsNullOrWhiteSpace(o.LongDescription)); }); //Func<string, string, object>[] handlerFuncs = null; var opts = new List <TwilioGatherOption>(); for (int i = 0; respOpts != null && i < respOpts.Count; i++) { TwilioGatherOption opt = new TwilioGatherOption() { Digits = i.ToString(), Description = respOpts[i].LongDescription, ResponseOption = respOpts[i] }; opts.Add(opt); } return(opts); }
public IMMessage(String senderName, String messageText, String messageGUID, DateTime messageDateTime, MessageStyle style, MessageTemplateType template, Emoticons emoticons) { if (messageDateTime == null || messageDateTime == DateTime.MinValue) messageDateTime = DateTime.Now; this.Time = messageDateTime; if (messageGUID == null) messageGUID = Guid.NewGuid().ToString(); this.ID = NormalizeGUID(messageGUID); MessageTemplate tmplMessageTemplate = new MessageTemplate(template); tmplMessageTemplate.Message = tmplMessageTemplate.Message .Replace("<HEADER_ROW_STYLE>", tmplMessageTemplate.BuildStyle(style.Font, style.ForeColor, Color.White)) .Replace("<DATETIME_STYLE>", tmplMessageTemplate.BuildStyle(style.Font, Color.Gray, Color.White)) .Replace("<HEADER_STYLE>", tmplMessageTemplate.BuildStyle(style.Font, style.HeaderColor, Color.White)) .Replace("<ROW_STYLE>", tmplMessageTemplate.BuildStyle(style.Font, style.ForeColor, style.BackColor)) .Replace("<MESSAGE_STYLE>", tmplMessageTemplate.BuildStyle(style.Font, style.ForeColor, style.BackColor)) .Replace("<HEADER_TEXT>", senderName != "" ? senderName : "") .Replace("<DATETIME_TEXT>", messageDateTime.ToShortDateString() + " " + messageDateTime.ToShortTimeString()) .Replace("<GUID>", this.ID) .Replace("<MESSAGE_TEXT>", messageText.Replace("\r\n", "<BR />").Replace("\n", "<BR />")); tmplMessageTemplate.ProcessEmoticons(emoticons); this.HTML = tmplMessageTemplate.Message; this.Text = messageText; this.Style = style; }
public static async Task <Embed> CompileTemplate(MessageTemplateType type, string fileName, Dictionary <string, string> dic) { try { var isNpcKill = dic.ContainsKey("{isNpcKill}") && Convert.ToBoolean(dic["{isNpcKill}"]); var isLoss = dic.ContainsKey("{isLoss}") && Convert.ToBoolean(dic["{isLoss}"]); var isAwox = dic.ContainsKey("{isAwoxKill}") && Convert.ToBoolean(dic["{isAwoxKill}"]); var isSolo = dic.ContainsKey("{isSoloKill}") && Convert.ToBoolean(dic["{isSoloKill}"]); if (dic.ContainsKey("{isNpcKill}")) { dic.Remove("{isNpcKill}"); } if (dic.ContainsKey("{isLoss}")) { dic.Remove("{isLoss}"); } if (dic.ContainsKey("{isAwoxKill}")) { dic.Remove("{isAwoxKill}"); } if (dic.ContainsKey("{isSoloKill}")) { dic.Remove("{isSoloKill}"); } var isRadiusRange = dic.ContainsKey("{isRangeMode}") && Convert.ToBoolean(dic["{isRangeMode}"]); if (dic.ContainsKey("{isRangeMode}")) { dic.Remove("{isRangeMode}"); } var isRadiusConst = dic.ContainsKey("{isConstMode}") && Convert.ToBoolean(dic["{isConstMode}"]); if (dic.ContainsKey("{isConstMode}")) { dic.Remove("{isConstMode}"); } var isRadiusRegion = dic.ContainsKey("{isRegionMode}") && Convert.ToBoolean(dic["{isRegionMode}"]); if (dic.ContainsKey("{isRegionMode}")) { dic.Remove("{isRegionMode}"); } if (!dic.ContainsKey("{NewLine}")) { dic.Add("{NewLine}", Environment.NewLine); } var lines = (await File.ReadAllLinesAsync(fileName)) .Where(a => !a.StartsWith("//") && !string.IsNullOrWhiteSpace(a)).ToList(); foreach (var pair in dic) { for (var i = 0; i < lines.Count; i++) { lines[i] = lines[i].Replace(pair.Key, pair.Value).Trim().TrimStart('\t'); } } switch (type) { case MessageTemplateType.Custom: case MessageTemplateType.KillMailBig: case MessageTemplateType.KillMailRadius: case MessageTemplateType.KillMailGeneral: { bool isAuthor = false; var embed = new EmbedBuilder(); EmbedAuthorBuilder author = null; lines.ForEach(line => { var text = line; if (text.StartsWith("EmbedBuilder")) { return; } if (type == MessageTemplateType.KillMailRadius) { if (text.StartsWith("#if {isRangeMode}", StringComparison.OrdinalIgnoreCase)) { if (!isRadiusRange) { return; } text = text.Substring(17, text.Length - 17).Trim(); } if (text.StartsWith("#if !{isRangeMode}", StringComparison.OrdinalIgnoreCase)) { if (isRadiusRange) { return; } text = text.Substring(18, text.Length - 18).Trim(); } if (text.StartsWith("#if {isConstMode}", StringComparison.OrdinalIgnoreCase)) { if (!isRadiusConst) { return; } text = text.Substring(17, text.Length - 17).Trim(); } if (text.StartsWith("#if !{isConstMode}", StringComparison.OrdinalIgnoreCase)) { if (isRadiusConst) { return; } text = text.Substring(18, text.Length - 18).Trim(); } if (text.StartsWith("#if {isRegionMode}", StringComparison.OrdinalIgnoreCase)) { if (!isRadiusRegion) { return; } text = text.Substring(18, text.Length - 18).Trim(); } if (text.StartsWith("#if !{isRegionMode}", StringComparison.OrdinalIgnoreCase)) { if (isRadiusRegion) { return; } text = text.Substring(19, text.Length - 19).Trim(); } } if (text.StartsWith("#if {isNpcKill}", StringComparison.OrdinalIgnoreCase)) { if (!isNpcKill) { return; } text = text.Substring(15, text.Length - 15).Trim(); } if (text.StartsWith("#if !{isNpcKill}", StringComparison.OrdinalIgnoreCase)) { if (isNpcKill) { return; } text = text.Substring(16, text.Length - 16).Trim(); } if (text.StartsWith("#if {isLoss}", StringComparison.OrdinalIgnoreCase)) { if (!isLoss) { return; } text = text.Substring(12, text.Length - 12).Trim(); } if (text.StartsWith("#if !{isLoss}", StringComparison.OrdinalIgnoreCase)) { if (isLoss) { return; } text = text.Substring(13, text.Length - 13).Trim(); } if (text.StartsWith("#if {isAwoxKill}", StringComparison.OrdinalIgnoreCase)) { if (!isAwox) { return; } text = text.Substring(16, text.Length - 16).Trim(); } if (text.StartsWith("#if !{isAwoxKill}", StringComparison.OrdinalIgnoreCase)) { if (isAwox) { return; } text = text.Substring(17, text.Length - 17).Trim(); } if (text.StartsWith("#if {isSoloKill}", StringComparison.OrdinalIgnoreCase)) { if (!isSolo) { return; } text = text.Substring(16, text.Length - 16).Trim(); } if (text.StartsWith("#if !{isSoloKill}", StringComparison.OrdinalIgnoreCase)) { if (isSolo) { return; } text = text.Substring(17, text.Length - 17).Trim(); } if (!isAuthor && text.StartsWith(".WithAuthor", StringComparison.OrdinalIgnoreCase)) { isAuthor = true; author = new EmbedAuthorBuilder(); return; } if (isAuthor && text.StartsWith(")")) { isAuthor = false; embed.WithAuthor(author); return; } if (isAuthor) { if (text.StartsWith(".WithName", StringComparison.OrdinalIgnoreCase)) { author.WithName(GetText(text)); } else if (text.StartsWith(".WithUrl", StringComparison.OrdinalIgnoreCase)) { author.WithUrl(GetText(text)); } else if (text.StartsWith(".WithIconUrl", StringComparison.OrdinalIgnoreCase)) { author.WithIconUrl(GetText(text)); } } else { if (text.StartsWith(".WithColor", StringComparison.OrdinalIgnoreCase)) { embed.WithColor(GetColor(text)); } else if (text.StartsWith(".WithDescription(", StringComparison.OrdinalIgnoreCase)) { embed.WithDescription(GetText(text)); } else if (text.StartsWith(".WithThumbnailUrl(", StringComparison.OrdinalIgnoreCase)) { embed.WithThumbnailUrl(GetText(text)); } else if (text.StartsWith(".WithImageUrl(", StringComparison.OrdinalIgnoreCase)) { embed.WithImageUrl(GetText(text)); } else if (text.StartsWith(".WithTitle(", StringComparison.OrdinalIgnoreCase)) { embed.WithTitle(GetText(text)); } else if (text.StartsWith(".AddField")) { var result = GetDoubleText(text); embed.AddField(result[0], result[1]); } else if (text.StartsWith(".AddInlineField", StringComparison.OrdinalIgnoreCase)) { var result = GetDoubleText(text); embed.AddField(result[0], result[1], true); } else if (text.StartsWith(".WithFooter", StringComparison.OrdinalIgnoreCase)) { embed.WithFooter(GetText(text)); } else if (text.StartsWith(".WithTimestamp", StringComparison.OrdinalIgnoreCase)) { if (DateTimeOffset.TryParse(dic["{timestamp}"], out var time)) { embed.WithTimestamp(time); } else { embed.WithCurrentTimestamp(); } } } }); return(embed.Build()); } default: return(null); } } catch (Exception ex) { await LogHelper.LogEx(ex.Message, ex, LogCat.Templates); return(null); } }
public void AddNotification(String jid, String senderEvent, string messageText, DateTime messageDateTime, string messageGUID, bool flashWindow, bool forceChat) { if (InvokeRequired) { this.Invoke(new AddNotificationDelegate(this.AddNotification), new object[] { jid, senderEvent, messageText, messageDateTime, messageGUID, flashWindow }); return; } //IMMessage parameters MessageStyle style = new MessageStyle(Color.White, new System.Drawing.Font("Trebuchet MS", 8.5F, System.Drawing.FontStyle.Regular), Color.Gray, Color.Gray); MessageTemplateType template = MessageTemplateType.Notification; ChatSession tmplChatSession = (ChatSession)myChatSessions[jid]; JabberUser jabberUser = new JabberUser(jid); switch (senderEvent) { case "INFO": senderEvent = ""; if (flashWindow) { myClientForm.myNotifyIcon.ShowBalloonTip(10, jabberUser.Nick, messageText, ToolTipIcon.Info); } break; case "CLIENT": case "SERVER": case "PRESENCE": case "BUDDYUPDATE": senderEvent = Properties.Localization.txtChatInfoSenderSystem; break; case "NUDGE": senderEvent = ""; myClientForm.mClientEvents.RaiseEvent(Remwave.Client.Events.ClientEvent.IncomingNudge); FlashWindow(this.Handle, true); #region Shake Window Random rand = new Random(); int left = this.Left; int top = this.Top; for (int i = 0; i < 30; i++) { int randLeft = rand.Next(-10, 10); int randTop = rand.Next(-10, 10); this.Left = (left + randLeft) > 0 ? left + randLeft : 0; this.Top = (top + randTop) > 0 ? left + randLeft : 0; Thread.Sleep(50); } this.Left = left; this.Top = top; #endregion break; case "INVITE": senderEvent = Properties.Localization.txtChatInfoSenderUser; myClientForm.mClientEvents.RaiseEvent(Remwave.Client.Events.ClientEvent.IncomingInstantMessage); break; } if (forceChat && tmplChatSession == null) { try { JabberUser chatJabberUser; ContactList contactList = myClientForm.mContactBook.getCandidatesForJabberID(jid); if (contactList.Count > 0) { NTContact ntContact = (NTContact)contactList[0]; chatJabberUser = new JabberUser(ntContact.NTJabberID, ntContact.NTNickname); } else { chatJabberUser = new JabberUser(jid); } NewChat(chatJabberUser, false); tmplChatSession = (ChatSession)myChatSessions[chatJabberUser.JID]; if (tmplChatSession == null) { return; } } catch (Exception) { return; } } //if chat session exist display content in conversation window if (tmplChatSession != null) { if (tmplChatSession.ChatBox.ChatTabConversation != null) { IMMessage message = new IMMessage(senderEvent, messageText, messageGUID, messageDateTime, style, template, myEmoticons); tmplChatSession.ChatBox.ChatTabConversation.Document.Body.InnerHtml += message.HTML; tmplChatSession.ChatBox.ChatTabConversation.Document.Window.ScrollTo(0, tmplChatSession.ChatBox.ChatTabConversation.Document.Body.ScrollRectangle.Height); tmplChatSession.ChatBox.AttachEvents(); } } }
public void AddToConversation(String chatJID, String senderJID, string messageText, string messageHTML, DateTime messageDateTime, string messageGUID, bool forceEmpty, bool flashWindow) { if (InvokeRequired) { this.Invoke(new AddToConversationDelegate(this.AddToConversation), new object[] { chatJID, senderJID, messageText, messageDateTime, messageGUID, forceEmpty, flashWindow }); return; } //IMMessage parameters MessageStyle style = new MessageStyle(Color.White, new System.Drawing.Font("Trebuchet MS", 8.5F, System.Drawing.FontStyle.Regular), Color.Gray, Color.Gray); MessageTemplateType template = MessageTemplateType.Notification; ChatSession tmplChatSession = (ChatSession)myChatSessions[chatJID]; JabberUser chatJabberUser = null; JabberUser senderJabberUser = null; if (tmplChatSession == null) { try { ContactList contactList = myClientForm.mContactBook.getCandidatesForJabberID(chatJID); if (contactList.Count > 0) { NTContact ntContact = (NTContact)contactList[0]; chatJabberUser = new JabberUser(ntContact.NTJabberID, ntContact.NTNickname); } else { chatJabberUser = new JabberUser(chatJID); } NewChat(chatJabberUser, false); tmplChatSession = (ChatSession)myChatSessions[chatJabberUser.JID]; if (tmplChatSession == null) { return; } } catch (Exception) { return; } } if (forceEmpty) { tmplChatSession.ChatBox.ResetHTML(); } if (senderJID == myClientForm.mUserAccount.JabberUser.JID) { //outgoing message senderJabberUser = myClientForm.mUserAccount.JabberUser; style = tmplChatSession.OutgoingStyle; template = MessageTemplateType.Out; } else { //incomming message senderJabberUser = tmplChatSession.JabberUser; if (flashWindow) { FlashWindow(this.Handle, true); myClientForm.mClientEvents.RaiseEvent(Remwave.Client.Events.ClientEvent.IncomingInstantMessage); ShowIt(); mMessageInTimeout = 360; myNotifyIcon.Visible = true; } style = tmplChatSession.IncomingStyle; template = MessageTemplateType.In; } //if chat session exist display content in conversation window if (tmplChatSession != null) { if (tmplChatSession.ChatBox.ChatTabConversation != null) { SetComposing(false, senderJID); if (messageHTML == "") { messageHTML = messageText; } IMMessage message = new IMMessage(senderJabberUser.Nick, messageHTML, messageGUID, messageDateTime, style, template, myEmoticons); tmplChatSession.ChatBox.ChatTabConversation.Document.Body.InnerHtml += message.HTML; tmplChatSession.ChatBox.ChatTabConversation.Document.Window.ScrollTo(0, tmplChatSession.ChatBox.ChatTabConversation.Document.Body.ScrollRectangle.Height); tmplChatSession.ChatBox.AttachEvents(); } } }