private static String ObjectOwnerQueryString(lm.Comol.Core.DomainModel.ModuleObject obj = null) { String query = ""; if (obj != null) { query += ((obj.ObjectLongID > 0) ? "&oId=" + obj.ObjectLongID.ToString() : ""); query += ((obj.ObjectTypeID > 0) ? "&oType=" + obj.ObjectTypeID.ToString() : ""); query += ((obj.ServiceID > 0) ? "&oIdModule=" + obj.ServiceID.ToString() : ""); query += ((!String.IsNullOrEmpty(obj.ServiceCode)) ? "&oMcode=" + obj.ServiceCode.ToString() : ""); query += ((obj.CommunityID > 0) ? "&oCommunity=" + obj.CommunityID.ToString() : ""); } return(query); }
private List <Core.Notification.Domain.dtoModuleNotificationMessage> GetMessages(long idAction, Int32 idCommunity, Domain.WbRoom room, List <Domain.WbUser> users, Dictionary <String, lm.Comol.Core.Notification.Domain.dtoNotificationMessage> templates, lm.Comol.Core.Notification.Domain.WebSiteSettings webSiteSettings) { List <Core.Notification.Domain.dtoModuleNotificationMessage> messages = null; if (templates.Any()) { messages = new List <Core.Notification.Domain.dtoModuleNotificationMessage>(); lm.Comol.Core.DomainModel.ModuleObject owner = lm.Comol.Core.DomainModel.ModuleObject.CreateLongObject(room.Id, room, (int)WebConferencing.Domain.ModuleWebConferencing.ObjectType.Room, room.CommunityId, WebConferencing.Domain.ModuleWebConferencing.UniqueCode, Manager.GetModuleID(WebConferencing.Domain.ModuleWebConferencing.UniqueCode)); switch (idAction) { case (long)ModuleWebConferencing.MailSenderActionType.Credential: case (long)ModuleWebConferencing.MailSenderActionType.LockUser: case (long)ModuleWebConferencing.MailSenderActionType.UnLockUser: case (long)ModuleWebConferencing.MailSenderActionType.GenericInvitation: messages = new List <Core.Notification.Domain.dtoModuleNotificationMessage>(); foreach (Domain.WbUser user in users) { lm.Comol.Core.Notification.Domain.dtoNotificationMessage template = templates[user.LanguageCode]; if (template != null) { lm.Comol.Core.Notification.Domain.dtoModuleNotificationMessage userMessage = new Core.Notification.Domain.dtoModuleNotificationMessage(); userMessage.Recipients.Add(new Core.MailCommons.Domain.Messages.Recipient() { Address = user.Mail, DisplayName = user.DisplayName, IdUserModule = user.Id, IdPerson = user.PersonID, IdModuleObject = room.Id, IdCommunity = room.CommunityId, IdModuleType = (int)WebConferencing.Domain.ModuleWebConferencing.ObjectType.Room, Status = Core.MailCommons.Domain.RecipientStatus.Available, LanguageCode = user.LanguageCode }); userMessage.Channel = template.Channel; userMessage.MailSettings = template.MailSettings; userMessage.ObjectOwner = owner; userMessage.Save = false; userMessage.IdTemplate = template.IdTemplate; userMessage.IdVersion = template.IdVersion; userMessage.IdCommunity = idCommunity; userMessage.LanguageCode = user.LanguageCode; userMessage.Translation = GetTemplateContentPreview( true, room.Id, user.Id, webSiteSettings.Baseurl, webSiteSettings.WebSiteUrlNoSsl, template.Translation, webSiteSettings.GetDateTimeFormat(user.LanguageCode), webSiteSettings.GetVoidDateTime(user.LanguageCode), webSiteSettings.GetPortalName(user.LanguageCode)); messages.Add(userMessage); } } break; } } return(messages); }
public static String PreviewTemplate(long idTemplate, long idVersion, Int32 idModule, String moduleCode, Boolean forPortal = false, Int32 idCommunity = 0, Int32 idOrganization = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { return(modulehome + String.Format("Preview.aspx?idT={0}&idV={1}&idModule={2}&code={3}&portal={4}&idCommunity={5}&idOrg={6}{7}", idTemplate, idVersion, idModule, moduleCode, forPortal.ToString().ToLower(), idCommunity, idOrganization, (obj == null) ? "" : ObjectOwnerQueryString(obj))); }
public static String Settings(Boolean forPortal = false, Int32 idCommunity = 0, Int32 idOrganization = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { return(modulehome + String.Format("Settings.aspx?portal={0}&idCommunity={1}&idOrg={2}{3}", forPortal.ToString().ToLower(), idCommunity, idOrganization, (obj == null) ? "" : ObjectOwnerQueryString(obj))); }
public List <lm.Comol.Core.Notification.Domain.GroupMessages> GetDefaultNotificationMessages(Core.Notification.Domain.NotificationAction action, int idSenderUser, lm.Comol.Core.Notification.Domain.WebSiteSettings webSiteSettings) { List <lm.Comol.Core.Notification.Domain.GroupMessages> messages = null; Domain.WbRoom room = RoomGet(action.IdObject); if (room != null) { List <Domain.WbUser> users = action.IdModuleUsers.Select(i => UserGet(i)).ToList().Where(u => u != null && u.Id > 0).ToList(); // INDIVIDUO TUTTE LE POSSIBILI LINGUE DEGLI UTENTI DESTINATARI List <String> languageCodes = (users != null) ? users.Select(u => u.LanguageCode).Distinct().ToList() : null; Dictionary <String, lm.Comol.Core.Notification.Domain.dtoNotificationMessage> templates = GetTemplates(action.IdModuleAction, Core.Notification.Domain.NotificationChannel.Mail, Core.Notification.Domain.NotificationMode.Automatic, languageCodes); if (languageCodes.Any()) { webSiteSettings.GenerateDateTimeFormat(languageCodes); } if (templates.Any()) { lm.Comol.Core.DomainModel.ModuleObject owner = lm.Comol.Core.DomainModel.ModuleObject.CreateLongObject(room.Id, room, (int)WebConferencing.Domain.ModuleWebConferencing.ObjectType.Room, room.CommunityId, WebConferencing.Domain.ModuleWebConferencing.UniqueCode, Manager.GetModuleID(WebConferencing.Domain.ModuleWebConferencing.UniqueCode)); switch (action.IdModuleAction) { case (long)ModuleWebConferencing.MailSenderActionType.Credential: case (long)ModuleWebConferencing.MailSenderActionType.LockUser: case (long)ModuleWebConferencing.MailSenderActionType.UnLockUser: case (long)ModuleWebConferencing.MailSenderActionType.GenericInvitation: messages = new List <lm.Comol.Core.Notification.Domain.GroupMessages>(); // Recupero tutti i possibili messaggi con relative traduzioni List <lm.Comol.Core.Notification.Domain.dtoModuleNotificationMessage> tMessages = GetMessages(action.IdModuleAction, action.IdCommunity, room, users, templates, webSiteSettings); // VERIFICO che sia tutto conforme sia in termini di template, che di id versione NEL caso in cui mi serva // in un servizio che mi da diversi template per diversi canali. var groups = (from m in tMessages group m by new { m.IdTemplate, m.IdVersion, m.Channel } into grp select grp.First()); foreach (var item in groups) { lm.Comol.Core.Notification.Domain.GroupMessages mGroup = new Core.Notification.Domain.GroupMessages(); mGroup.IdCommunity = action.IdCommunity; mGroup.ObjectOwner = owner; mGroup.Settings.Save = false; mGroup.Settings.UniqueIdentifier = Guid.NewGuid(); mGroup.Channel = item.Channel; mGroup.Settings.Mail = item.MailSettings; mGroup.Settings.Template.IdTemplate = item.IdTemplate; mGroup.Settings.Template.IdVersion = item.IdVersion; // IN QUESTO CASO SI, perchè recupero direttamente da DB i ltemplate, NON sto inviando un messaggio // da interfaccia web, partendo da un template, ma poi ho modificato il testo predisposto nella UI prima di inviare il messaggio mGroup.Settings.Template.IsCompliant = true; mGroup.Messages = tMessages.Where(t => t.IdTemplate == item.IdTemplate && t.IdVersion == item.IdVersion && t.Channel == item.Channel).Select(t => new lm.Comol.Core.Notification.Domain.dtoModuleTranslatedMessage() { Recipients = t.Recipients, Translation = t.Translation }).ToList(); messages.Add(mGroup); } break; } } } return(messages); }
public static String ListAvailableTemplates(String moduleCode, String backUrl, Int32 idCommunity = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null, long idModuleAction = 0, Boolean actionEmpty = false, long idTemplate = 0, long idVersion = 0) { String url = modulehome + "SendMessage.aspx?" + BaseQueryString(moduleCode, DisplayTab.List, (DisplayTab.List | DisplayTab.Send | DisplayTab.Sent), (UserSelection.FromInputText | UserSelection.FromModule), false, backUrl, idModuleAction, actionEmpty, idTemplate, idVersion, idCommunity, 0, obj); return(url); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <param name="source"></param> /// <param name="backUrl"></param> /// <returns></returns> public static String PreviewTemplate(lm.Comol.Core.DomainModel.DocTemplateVers.Domain.DTO.ServiceExport.DTO_sTemplateVersion item, lm.Comol.Core.DomainModel.ModuleObject source, String backUrl) { return(PreviewTemplate(item.IdTemplate, item.Id, false, backUrl) + ((source == null || (source != null && source.ObjectLongID == 0)) ? "" : "&idCommunity=" + source.CommunityID.ToString() + "&idModule=" + source.ServiceID.ToString() + "&idModuleItem=" + source.ObjectLongID.ToString() + "&idItemType=" + source.ObjectTypeID.ToString())); }
//public static String SendMessage(String moduleCode, UserSelection sMode = (UserSelection.FromInputText | UserSelection.FromModule), Boolean selectTemplates = false, String backUrl = "", long idModuleAction = 0, Boolean actionEmpty = false, long idTemplate = 0, long idVersion = 0, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) //{ // return SendMessage(moduleCode, DisplayTab.None, sMode, selectTemplates, backUrl, idModuleAction, actionEmpty, idTemplate, idVersion, idCommunity, idModule, obj); //} public static String SendMessage(String moduleCode, DisplayTab tabs = (DisplayTab.List | DisplayTab.Send | DisplayTab.Sent), UserSelection sMode = (UserSelection.FromInputText | UserSelection.FromModule), Boolean selectTemplates = false, String backUrl = "", long idModuleAction = 0, Boolean actionEmpty = false, long idTemplate = 0, long idVersion = 0, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { String url = modulehome + "SendMessage.aspx?" + BaseQueryString(moduleCode, DisplayTab.Send, tabs, sMode, selectTemplates, backUrl, idModuleAction, actionEmpty, idTemplate, idVersion, idCommunity, idModule, obj); return(url); }
public static String ListAvailableTemplates(String moduleCode, DisplayTab tabs, UserSelection sMode, Boolean selectTemplates = false, String backUrl = "", long idModuleAction = 0, Boolean actionEmpty = false, long idTemplate = 0, long idVersion = 0, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { String url = modulehome + "SendMessage.aspx?" + BaseQueryString(moduleCode, DisplayTab.List, tabs, sMode, selectTemplates, backUrl, idModuleAction, actionEmpty, idTemplate, idVersion, idCommunity, idModule, obj); url += (idVersion > 0) ? "#ver_" + idVersion.ToString() : (idTemplate > 0) ? "#tmp_" + idTemplate.ToString() : ""; return(url); }
//private static String BaseContainerString(Int32 idContainerCommunity, String moduleCode = "", long idPermissions = 0, Boolean setFromCookies = false) //{ // String query = ((setFromCookies) ? "&reload=true" : ""); // query += ((idContainerCommunity > -1) ? "&idCommunityCnt=" + idContainerCommunity.ToString() : ""); // query += ((!String.IsNullOrEmpty(moduleCode)) ? "&mCodeCnt=" + moduleCode : ""); // query += ((idPermissions > 0) ? "&mPrmCnt=" + idPermissions.ToString() : ""); // return query; //} //private static String BaseQueryString(TemplateType type, dtoBaseTemplateOwner template) //{ // String query = "type=" + type.ToString(); // query += "&ownType=" + template.Type.ToString(); // query += ((template.IdPerson > 0) ? "&idPerson=" + template.IdPerson.ToString() : ""); // query += ((template.IdCommunity > 0) ? "&idCommunity=" + template.IdCommunity.ToString() : ""); // query += ((template.IdModule > 0) ? "&idModule=" + template.IdModule.ToString() : ""); // query += ((!String.IsNullOrEmpty(template.ModuleCode)) ? "&moduleCode=" + template.ModuleCode : ""); // query += ((template.ModulePermission > 0) ? "&idModuleP=" + template.ModulePermission.ToString() : ""); // query += ((template.IdObject > 0) ? "&idObj=" + template.IdObject.ToString() : ""); // query += ((template.IdObjectType > 0) ? "&idObjType=" + template.IdObjectType.ToString() : ""); // query += ((template.IdObjectModule > 0) ? "&idObjModule=" + template.IdObjectModule.ToString() : ""); // query += ((template.IdObjectCommunity > 0) ? "&idObjCommunity=" + template.IdObjectCommunity.ToString() : ""); // return query; //} //public static String List(Int32 idContainerCommunity, TemplateType type, dtoBaseTemplateOwner ownerInfo, Boolean setFromCookies = false, String moduleCode = "", long idPermissions = 0, long idTemplate = 0, long idVersion = 0) //{ // String url = modulehome + "List.aspx?" + BaseQueryString(type, ownerInfo) + BaseContainerString(idContainerCommunity, moduleCode, idPermissions, setFromCookies); // url += (idTemplate > 0) + "&idTemplate=" + idTemplate.ToString(); // url += (idVersion > 0) ? "#ver_" + idVersion.ToString() : (idTemplate > 0) ? "#tmp_" + idTemplate.ToString() : ""; // return url; //} //public static string Add(TemplateType type, dtoBaseTemplateOwner ownerInfo, Int32 idContainerCommunity, String moduleCode = "", long idPermissions = 0) //{ // return modulehome + "Add.aspx?" + BaseQueryString(type, ownerInfo) + BaseContainerString(idContainerCommunity, moduleCode, idPermissions); //} //public static String ListSentMessages() { // return ""; //} //public static String ListAvailableTemplates() //{ // return ""; //} private static String ObjectOwnerQueryString(Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { String query = "&type=" + TemplateType.Module.ToString(); query += "&ownType=" + TemplateType.Module.ToString(); query += ((idCommunity != -1) ? "&idCommunity=" + idCommunity.ToString() : ""); query += ((idModule > 0) ? "&idModule=" + idModule.ToString() : ""); if (obj != null) { query += ((obj.ObjectLongID > 0) ? "&oId=" + obj.ObjectLongID.ToString() : ""); query += ((obj.ObjectTypeID > 0) ? "&oType=" + obj.ObjectTypeID.ToString() : ""); query += ((obj.ServiceID > 0) ? "&oIdModule=" + obj.ServiceID.ToString() : ""); query += ((!String.IsNullOrEmpty(obj.ServiceCode)) ? "&oMcode=" + obj.ServiceCode.ToString() : ""); query += ((obj.CommunityID > 0) ? "&oCommunity=" + obj.CommunityID.ToString() : ""); } return(query); }
private static String BaseQueryString(String moduleCode, DisplayTab current, DisplayTab tabs, UserSelection sMode, Boolean selectTemplates, String backUrl = "", long idModuleAction = 0, Boolean actionEmpty = false, long idTemplate = 0, long idVersion = 0, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { return("code=" + moduleCode + ((idModuleAction == 0) ? "" : "&action=" + idModuleAction.ToString()) + ((actionEmpty) ? "&aEmpty=true" : "") + "&tab=" + (int)current + "&tabs=" + (int)tabs + "&sl=" + ((int)sMode).ToString() + ((selectTemplates) ? "&dtsl=" + selectTemplates.ToString() : "") + ((idTemplate > 0) ? "&idTemplate=" + idTemplate.ToString() : "") + ((idVersion > 0) ? "&idVersion=" + idVersion.ToString() : "") + ObjectOwnerQueryString(idCommunity, idModule, obj) + ((String.IsNullOrEmpty(backUrl)) ? "" : "&back=" + backUrl)); }
public static String MessageRecipients(long idMessage, String moduleCode, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { String url = modulehome + "MessageRecipients.aspx?idMessage=" + idMessage.ToString() + "&code=" + moduleCode + ObjectOwnerQueryString(idCommunity, idModule, obj); return(url); }
public static String ViewMessage(Int32 idPerson, long idUserModule, String mail, String moduleCode, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { String baseUrl = modulehome + "UserMessages.aspx?{0}{1}{2}{3}"; return(String.Format(baseUrl, "idP=" + idPerson.ToString(), (idUserModule > 0) ? "&idU=" + idUserModule.ToString() : "", String.IsNullOrEmpty(mail) ? "" : "&mail=" + mail, "&" + BaseQueryString(moduleCode, idCommunity, idModule, obj))); }
public static String ViewMessage(String mail, String moduleCode, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { return(ViewMessage(0, 0, mail, moduleCode, idCommunity, idModule, obj)); }
public static String ViewMessageTemplate(long idTemplateMessage, String moduleCode, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null) { return(modulehome + "MessageTemplate.aspx?" + BaseQueryString(moduleCode, idCommunity, idModule, obj, idTemplateMessage)); }
private static String BaseQueryString(String moduleCode, Int32 idCommunity = -1, Int32 idModule = 0, lm.Comol.Core.DomainModel.ModuleObject obj = null, long idTemplateMessage = 0) { return("code=" + moduleCode + ((idTemplateMessage > 0) ? "&idT=" + idTemplateMessage.ToString() : "") + ObjectOwnerQueryString(idCommunity, idModule, obj)); }