public List <ActionType> GetAutomaticActions(lm.Comol.Core.Notification.Domain.NotificationMode mode) { List <ActionType> actions = new List <ActionType>(); switch (mode) { case lm.Comol.Core.Notification.Domain.NotificationMode.Automatic: break; case lm.Comol.Core.Notification.Domain.NotificationMode.Scheduling: break; case lm.Comol.Core.Notification.Domain.NotificationMode.Manual: break; } return(actions); }
public System.Threading.Tasks.Task NotifyActionAsync(string istanceIdentifier, lm.Comol.Core.Notification.Domain.NotificationChannel channel, lm.Comol.Core.Notification.Domain.NotificationMode mode, lm.Comol.Core.Notification.Domain.NotificationAction action, int idSenderUser, string ipAddress, string proxyIpAddress) { return(base.Channel.NotifyActionAsync(istanceIdentifier, channel, mode, action, idSenderUser, ipAddress, proxyIpAddress)); }
public NotificationSettings() { Mode = lm.Comol.Core.Notification.Domain.NotificationMode.None; ActionType = lm.Comol.Core.Notification.Domain.NotificationActionType.Ignore; }
public void NotifyAction(string istanceIdentifier, lm.Comol.Core.Notification.Domain.NotificationChannel channel, lm.Comol.Core.Notification.Domain.NotificationMode mode, lm.Comol.Core.Notification.Domain.NotificationAction action, int idSenderUser, string ipAddress, string proxyIpAddress) { base.Channel.NotifyAction(istanceIdentifier, channel, mode, action, idSenderUser, ipAddress, proxyIpAddress); }
public List <lm.Comol.Core.TemplateMessages.Domain.CommonNotificationSettings> SaveNotificationSettings(TemplateLevel level, List <lm.Comol.Core.BaseModules.TemplateMessages.Domain.dtoModuleEvent> settings, Boolean forPortal, Int32 idCommunity, Int32 idOrganization, ModuleObject obj = null, lm.Comol.Core.Notification.Domain.NotificationChannel channel = lm.Comol.Core.Notification.Domain.NotificationChannel.Mail, lm.Comol.Core.Notification.Domain.NotificationMode mode = lm.Comol.Core.Notification.Domain.NotificationMode.Automatic) { List <lm.Comol.Core.TemplateMessages.Domain.CommonNotificationSettings> items = new List <lm.Comol.Core.TemplateMessages.Domain.CommonNotificationSettings>(); try { Manager.BeginTransaction(); litePerson p = Manager.GetLitePerson(UC.CurrentUserID); if (p != null && p.TypeID != (int)UserTypeStandard.Guest) { List <lm.Comol.Core.TemplateMessages.Domain.CommonNotificationSettings> inUse = null; if (obj == null) { inUse = (from n in Manager.GetIQ <lm.Comol.Core.TemplateMessages.Domain.CommonNotificationSettings>() where n.Settings.Channel == channel && n.Settings.Mode == mode && n.Settings.ActionType != lm.Comol.Core.Notification.Domain.NotificationActionType.Ignore && n.Settings.ActionType != lm.Comol.Core.Notification.Domain.NotificationActionType.None && (n.ObjectOwner == null || (idCommunity != -1 && (idCommunity == n.IdCommunity)) || (idOrganization != -1 && idOrganization == n.IdOrganization) || n.IsForPortal) select n).ToList(); } else { inUse = (from n in Manager.GetIQ <lm.Comol.Core.TemplateMessages.Domain.CommonNotificationSettings>() where n.Settings.Channel == channel && n.Settings.Mode == mode && n.Settings.ActionType != lm.Comol.Core.Notification.Domain.NotificationActionType.Ignore && n.Settings.ActionType != lm.Comol.Core.Notification.Domain.NotificationActionType.None && ( (n.ObjectOwner != null && n.ObjectOwner.ObjectLongID == obj.ObjectLongID && n.ObjectOwner.ObjectTypeID == obj.ObjectTypeID && n.ObjectOwner.ServiceCode == obj.ServiceCode) || (idCommunity != -1 && (idCommunity == n.IdCommunity)) || (idOrganization != -1 && idOrganization == n.IdOrganization) || n.IsForPortal ) select n).ToList(); } Dictionary <String, Int32> mInfo = Manager.GetIdModules(settings.Select(s => s.ModuleCode).Distinct().ToList()); foreach (lm.Comol.Core.BaseModules.TemplateMessages.Domain.dtoModuleEvent setting in settings) { CommonNotificationSettings current = null; var query = inUse.Where(n => n.Settings.IdModuleAction == setting.IdEvent && n.Settings.ModuleCode == setting.ModuleCode); if (obj == null) { query = query.Where(n => n.ObjectOwner == null); } else { query = query.Where(n => (n.ObjectOwner != null && n.ObjectOwner.ObjectLongID == obj.ObjectLongID && n.ObjectOwner.ObjectTypeID == obj.ObjectTypeID && n.ObjectOwner.ServiceCode == obj.ServiceCode)); } switch (level) { case TemplateLevel.Portal: #region "Portal Saving Settings" current = query.Where(n => n.IsForPortal && n.ObjectOwner == null).FirstOrDefault(); if (current == null && setting.IdTemplate > 0) { current = new CommonNotificationSettings(); current.CreateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress); current.IsEnabled = true; current.IsForPortal = true; current.Settings.ActionType = lm.Comol.Core.Notification.Domain.NotificationActionType.BySystem; current.Settings.Channel = channel; current.Settings.IdModule = (mInfo.ContainsKey(setting.ModuleCode) ? mInfo[setting.ModuleCode]: 0); current.Settings.IdModuleAction = setting.IdEvent; current.Settings.Mode = mode; current.Settings.ModuleCode = setting.ModuleCode; } else if (current != null && (current.Deleted == BaseStatusDeleted.None || (setting.IdTemplate > 0 && current.Deleted != BaseStatusDeleted.None))) { current.UpdateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress); } if (current != null) { current.Deleted = (setting.IdTemplate > 0) ? BaseStatusDeleted.None: BaseStatusDeleted.Manual; if (setting.IdTemplate > 0) { current.AlwaysLastVersion = (setting.IdVersion == 0); current.Template = Manager.Get <TemplateDefinition>(setting.IdTemplate); current.Version = (setting.IdVersion == 0) ? null : Manager.Get <TemplateDefinitionVersion>(setting.IdVersion); } Manager.SaveOrUpdate(current); items.Add(current); } #endregion break; case TemplateLevel.Organization: //#region "Organization Saving Settings" //if (setting.IdTemplate > 0) { // if (setting.ItemLevel== TemplateLevel.Organization) //} //if (setting.IdTemplate<=0){ // // rimuovo //} //current = query.Where(n=>!n.IsForPortal && && n.ObjectOwner==null).FirstOrDefault(); //if (current == null && setting.IdTemplate>0) //{ // current = new CommonNotificationSettings(); // current.CreateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress); // current.IsEnabled = true; // current.IsForPortal = true; // current.Settings.ActionType = NotificationActionType.BySystem; // current.Settings.Channel = channel; // current.Settings.IdModule= (mInfo.ContainsKey(setting.ModuleCode) ? mInfo[setting.ModuleCode]: 0); // current.Settings.IdModuleAction= setting.IdEvent; // current.Settings.Mode= mode; // current.Settings.ModuleCode= setting.ModuleCode; //} //else if (current != null && (current.Deleted== BaseStatusDeleted.None || (setting.IdTemplate>0 && current.Deleted!= BaseStatusDeleted.None))) // current.UpdateMetaInfo(p, UC.IpAddress, UC.ProxyIpAddress); //if (current != null) { // current.Deleted =(setting.IdTemplate>0) ? BaseStatusDeleted.None: BaseStatusDeleted.Manual; // if (setting.IdTemplate>0){ // current.AlwaysLastVersion = (setting.IdVersion == 0); // current.Template = Manager.Get<TemplateDefinition>(setting.IdTemplate); // current.Version = (setting.IdVersion == 0) ? null : Manager.Get<TemplateDefinitionVersion>(setting.IdVersion); // } // Manager.SaveOrUpdate(current); // items.Add(current); //} //#endregion break; } } } else { items = null; } Manager.Commit(); } catch (Exception ex) { Manager.RollBack(); items = null; } return(items); }