private void LoadMessage(long idMessage, Boolean advancedEditor)
        {
            NoticeboardMessage message = null;

            if (idMessage != 0)
            {
                message = Service.GetMessage(idMessage);
            }
            else
            {
                message = new NoticeboardMessage();
                message.CreateByAdvancedEditor = advancedEditor;
                message.StyleSettings          = new StyleSettings();
            }
            if (message == null && idMessage > 0)
            {
                View.AllowSave(false);
                View.DisplayUnknownMessage();
            }
            else
            {
                View.IdCurrentMessage = idMessage;
                View.EditMessage(message, advancedEditor);
            }
        }
Exemplo n.º 2
0
        // String url,
        public void ClearNoticeBoard(Int32 idCommunity, Boolean isForPortal, String renderfolderpath, String defaultHttpUrl, System.Guid applicationWorkingId, String baseUrlHttp)
        {
            if (IsSessionTimeout(true))
            {
                return;
            }
            NoticeBoard.Domain.ModuleNoticeboard permissions = Service.GetPermissions(idCommunity);
            if (permissions.Administration)
            {
                String             url     = defaultHttpUrl + lm.Comol.Core.BaseModules.NoticeBoard.Domain.RootObject.DisplayMessageWithoutSession("{0}", idCommunity, applicationWorkingId);
                NoticeboardMessage message = Service.AddEmptyMessage(idCommunity, isForPortal, renderfolderpath, url, baseUrlHttp, defaultHttpUrl);

                View.DisplayMessage((message != null), ModuleNoticeboard.ActionType.Clean);
                if (message != null)
                {
                    View.SendUserAction(idCommunity, CurrentIdModule, message, RootObject.ViewMessage(message.Id, idCommunity), ModuleNoticeboard.ActionType.Clean);
                    LoadMessage(Service.GetPermissions(idCommunity), idCommunity, isForPortal, message.Id, true);
                }
                else
                {
                    View.SendUserAction(idCommunity, CurrentIdModule, ModuleNoticeboard.ActionType.GenericError);
                }
            }
            else
            {
                SetDashboardCommands(permissions, idCommunity, isForPortal, Service.GetHistoryItem(View.IdCurrentMessage));
            }
        }
Exemplo n.º 3
0
 public void VirtualDeleteMessage(long idMessage, Int32 idCommunity, Boolean isForPortal, System.Guid applicationWorkingId)
 {
     if (IsSessionTimeout(true))
     {
         return;
     }
     NoticeBoard.Domain.ModuleNoticeboard permissions = Service.GetPermissions(idCommunity);
     if (permissions.Administration || permissions.DeleteMessage)
     {
         NoticeboardMessage message = Service.VirtualDeleteMessage(idMessage, true, false, applicationWorkingId);
         View.DisplayMessage((message != null), ModuleNoticeboard.ActionType.VirtualDelete);
         if (message != null)
         {
             View.SendUserAction(idCommunity, CurrentIdModule, message, RootObject.ViewMessage(idMessage, idCommunity), ModuleNoticeboard.ActionType.VirtualDelete);
             LoadMessage(Service.GetPermissions(idCommunity), idCommunity, isForPortal, message.Id, true);
         }
         else
         {
             View.SendUserAction(idCommunity, CurrentIdModule, ModuleNoticeboard.ActionType.GenericError);
         }
     }
     else
     {
         SetDashboardCommands(permissions, idCommunity, isForPortal, Service.GetHistoryItem(idMessage));
     }
 }
Exemplo n.º 4
0
 public void VirtualUnDeleteMessage(long idMessage, Boolean activate, Int32 idCommunity, Boolean isForPortal, System.Guid applicationWorkingId, String renderfolderpath = "", String defaultHttpUrl = "", String baseUrlHttp = "")
 {
     if (IsSessionTimeout(true))
     {
         return;
     }
     NoticeBoard.Domain.ModuleNoticeboard permissions = Service.GetPermissions(idCommunity);
     if (permissions.Administration || permissions.RetrieveOldMessage)
     {
         String             url     = defaultHttpUrl + lm.Comol.Core.BaseModules.NoticeBoard.Domain.RootObject.DisplayMessageWithoutSession(idMessage, idCommunity, applicationWorkingId);
         NoticeboardMessage message = Service.VirtualDeleteMessage(idMessage, false, activate, applicationWorkingId, renderfolderpath, url, baseUrlHttp, defaultHttpUrl);
         View.DisplayMessage((message != null), (activate) ? ModuleNoticeboard.ActionType.UndeleteAndActivate : ModuleNoticeboard.ActionType.Undelete);
         if (message != null)
         {
             View.SendUserAction(idCommunity, CurrentIdModule, message, RootObject.ViewMessage(idMessage, idCommunity), (activate) ? ModuleNoticeboard.ActionType.UndeleteAndActivate : ModuleNoticeboard.ActionType.Undelete);
             LoadMessage(Service.GetPermissions(idCommunity), idCommunity, isForPortal, message.Id, true);
         }
         else
         {
             View.SendUserAction(idCommunity, CurrentIdModule, ModuleNoticeboard.ActionType.GenericError);
         }
     }
     else
     {
         SetDashboardCommands(permissions, idCommunity, isForPortal, Service.GetHistoryItem(idMessage));
     }
 }
Exemplo n.º 5
0
        public void SaveMessage(Boolean redirectToManagement, long idMessage, Boolean advancedEditor, Int32 idCommunity, Boolean isForPortal, String renderfolderpath, String defaultHttpUrl, System.Guid applicationWorkingId, String baseUrlHttp, String text, String plainText, StyleSettings settings = null)
        {
            if (IsSessionTimeout(true))
            {
                return;
            }
            String url = defaultHttpUrl + lm.Comol.Core.BaseModules.NoticeBoard.Domain.RootObject.DisplayMessageWithoutSession("{0}", idCommunity, applicationWorkingId);

            idMessage = (Service.isNewMessage(idMessage, text, plainText) ? 0 : idMessage);
            NoticeboardMessage message = Service.SaveMessage(idMessage, advancedEditor, idCommunity, isForPortal, renderfolderpath, url, defaultHttpUrl, baseUrlHttp, text, plainText, settings);

            View.DisplayMessage((message != null), (idMessage == 0) ? ModuleNoticeboard.ActionType.Created : ModuleNoticeboard.ActionType.SavedMessage);
            if (message != null)
            {
                View.SendUserAction(idCommunity, CurrentIdModule, message, RootObject.ViewMessage(message.Id, idCommunity), (idMessage == 0) ? ModuleNoticeboard.ActionType.Created : ModuleNoticeboard.ActionType.SavedMessage);
                if (redirectToManagement)
                {
                    View.RedirectToDasboardUrl(RootObject.NoticeboardDashboard(message.Id, idCommunity, isForPortal, false));
                }
                else
                {
                    View.IdCurrentMessage = message.Id;
                    View.EditMessage(message, advancedEditor);
                }
            }
            else
            {
                View.SendUserAction(idCommunity, CurrentIdModule, (idMessage > 0) ? ModuleNoticeboard.ActionType.UnableToSaveMessage : ModuleNoticeboard.ActionType.UnableToAddMessage);
            }
        }
        private void InitializeView(String configurationPath, NoticeboardMessage message)
        {
            lm.Comol.Core.BaseModules.Editor.EditorConfiguration config = ServiceEditor.GetConfiguration(configurationPath);
            if (!(config == null || (config.DefaultEditor == null && !config.Settings.Any())))
            {
                ModuleEditorSettings mSettings = (config.ModuleSettings == null) ? null : config.ModuleSettings.Where(m => m.ModuleCode == ModuleNoticeboard.UniqueID).FirstOrDefault();

                EditorType loadType = (mSettings != null) ?
                                      mSettings.EditorType
                                    :
                                      ((config.Settings.Any() && config.Settings.Where(s => s.EditorType == EditorType.telerik).Any())
                                    ? EditorType.telerik : ((config.DefaultEditor != null) ? config.DefaultEditor.EditorType : EditorType.none));
                EditorSettings rSettings = (config.Settings.Any() ? config.Settings.Where(s => s.EditorType == loadType).FirstOrDefault() : null);

                EditorSettings settings   = (rSettings != null) ? rSettings : config.DefaultEditor;
                String         fontfamily = (mSettings != null) ? mSettings.FontNames : (settings != null) ? settings.FontNames : config.FontNames;
                if (String.IsNullOrEmpty(fontfamily))
                {
                    fontfamily = config.FontNames;
                }

                String  fontSizes       = (mSettings != null) ? mSettings.FontSizes : (settings != null) ? settings.FontSizes : config.FontSizes;
                String  realFontSizes   = (mSettings != null) ? mSettings.RealFontSizes : (settings != null) ? settings.RealFontSizes : config.RealFontSizes;
                Boolean useRealFontSize = (!String.IsNullOrEmpty(realFontSizes)) ? View.UseRealFontSize : (mSettings != null) ? mSettings.UseRealFontSize : (settings != null) ? settings.UseRealFontSize : config.UseRealFontSize;


                FontConfiguration   defaultFont      = (mSettings != null && mSettings.DefaultFont != null) ? mSettings.DefaultFont : (settings != null && settings.DefaultFont != null) ? settings.DefaultFont : config.DefaultFont;
                FontConfiguration   defaultRealFont  = (mSettings != null && mSettings.DefaultRealFont != null) ? mSettings.DefaultRealFont : (settings != null && settings.DefaultRealFont != null) ? settings.DefaultRealFont : config.DefaultRealFont;
                List <FontSettings> fontSizeSettings = config.FontSizeSettings;
                List <String>       fitems           = fontfamily.Split(',').Where(s => !String.IsNullOrEmpty(s)).ToList();


                String dFont = "";
                if (!useRealFontSize && defaultFont != null && fitems.Select(s => s.ToLower()).Contains(defaultFont.Family.ToLower()))
                {
                    dFont = defaultFont.Family;
                }
                else if (useRealFontSize && defaultRealFont != null && fitems.Select(s => s.ToLower()).Contains(defaultRealFont.Family.ToLower()))
                {
                    dFont = defaultRealFont.Family;
                }
                if (message.StyleSettings != null && !String.IsNullOrEmpty(message.StyleSettings.FontFamily) && fitems.Select(s => s.ToLower()).Contains(message.StyleSettings.FontFamily.ToLower()))
                {
                    dFont = message.StyleSettings.FontFamily;
                }
                View.LoadFontFamily(fitems, dFont);


                List <String> sizeItems = fontSizeSettings.Select(s => s.Value).ToList();

                //fontfamily.Split(',').Where(s=> !String.IsNullOrEmpty(s)).ToList();

                //LoadFontSize
            }
            View.isInitialized = true;
        }
Exemplo n.º 7
0
        public void InitView(long idMessage, Int32 idCommunity)
        {
            View.IdLoaderCommunity = 0;
            if (IsSessionTimeout())
            {
                return;
            }

            View.IdLoaderCommunity = UserContext.CurrentCommunityID;
            NoticeboardMessage message = null;

            if (idMessage != 0)
            {
                message = Service.GetMessage(idMessage);
            }

            Boolean isForPortal = (message != null && message.isForPortal) || (message == null && idCommunity == 0);

            View.SetHeaderTitle(isForPortal, (isForPortal) ? View.PortalName : CurrentManager.GetCommunityName(idCommunity));
            if (message == null && idMessage > 0)
            {
                View.SendUserAction(idCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.ViewUnknownMessage);
            }
            else if (message == null && idMessage == 0)
            {
                View.SendUserAction(idCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.ViewEmptyMessage);
            }
            else
            {
                ModuleNoticeboard module = null;
                if (message.isForPortal)
                {
                    module = ModuleNoticeboard.CreatePortalmodule((UserContext.isAnonymous) ? (int)UserTypeStandard.Guest : UserContext.UserTypeID);
                }
                else if (idCommunity > 0)
                {
                    module = new ModuleNoticeboard(CurrentManager.GetModulePermission(UserContext.CurrentUserID, idCommunity, ModuleID));
                }
                else
                {
                    module = new ModuleNoticeboard();
                }
                if (module.Administration || module.ViewCurrentMessage || module.ViewOldMessage)
                {
                    View.DisplayMessage(idMessage, idCommunity);
                    View.SendUserAction(idCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.ViewMessage);
                }
                else
                {
                    View.SendUserAction(idCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.NoPermission);
                }
                View.AllowPrint = module.Administration || module.ViewCurrentMessage || module.PrintMessage;
            }
        }
Exemplo n.º 8
0
        public NoticeboardMessage GetMessage(long idMessage)
        {
            NoticeboardMessage message = null;

            try
            {
                message = Manager.Get <NoticeboardMessage>(idMessage);
            }
            catch (Exception ex) { }

            return(message);
        }
 public void InitView(String configurationPath, NoticeboardMessage message)
 {
     if (IsSessionTimeout())
     {
         return;
     }
     if (!View.isInitialized)
     {
         InitializeView(configurationPath, message);
         View.LoadMessage(message);
     }
 }
Exemplo n.º 10
0
        public NoticeboardMessage GetLastMessage(int idCommunity)
        {
            NoticeboardMessage message = null;

            try
            {
                Community owner = (idCommunity > 0) ? Manager.GetCommunity(idCommunity) : null;
                message = (from m in Manager.GetIQ <NoticeboardMessage>()
                           where m.Status == Status.Active && ((m.isForPortal && (idCommunity == 0)) || (m.Community == owner && idCommunity > 0))
                           select m).OrderByDescending(m => m.DisplayDate).Skip(0).Take(1).ToList().FirstOrDefault();
            }
            catch (Exception ex) { }

            return(message);
        }
Exemplo n.º 11
0
        public void RigenerateImage(NoticeboardMessage message, String renderfolderpath, String templateFile, String applicationurl, String preloadCss, String rendertext = "", String renderstyle = "", Boolean alsoThumbnail = false, Int32 width = 300, Int32 height = 200)
        {
            System.Guid identifier = Guid.NewGuid();
            try{
                String html = "";
                using (StreamReader sw = new StreamReader(templateFile))
                {
                    html = sw.ReadToEnd();
                }
                if (!string.IsNullOrEmpty(html))
                {
                    html = html.Replace("#renderstyle#", renderstyle);
                    html = html.Replace("#baseurl#", applicationurl);
                    html = html.Replace("#preloadcss#", preloadCss);
                    html = html.Replace("#rendertext#", rendertext);
                }
                System.Drawing.Image image = null;
                if (width > 0 && height > 0)
                {
                    image = HtmlRender.RenderToImageGdiPlus(html, new System.Drawing.Size(width, height));
                }
                else
                {
                    image = HtmlRender.RenderToImageGdiPlus(html);
                }
                if (!lm.Comol.Core.File.Exists.Directory(renderfolderpath))
                {
                    lm.Comol.Core.File.Create.Directory(renderfolderpath);
                }

                lm.Comol.Core.File.Create.Image(image, renderfolderpath + identifier.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);
                //image.Save(renderfolderpath + identifier.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);
            }
            catch (Exception ex) {
                identifier = Guid.Empty;
            }
            if (identifier != Guid.Empty)
            {
                message.Image = identifier;
                if (alsoThumbnail)
                {
                }
            }
        }
Exemplo n.º 12
0
        public NoticeboardMessage SetActiveMessage(long idMessage, String renderfolderpath, String url, String defaultHttpUrl, String baseUrlHttp)
        {
            NoticeboardMessage message = null;

            try {
                Person p = Manager.GetPerson(UC.CurrentUserID);
                message = Manager.Get <NoticeboardMessage>(idMessage);
                if (message != null && (message.isForPortal || (!message.isForPortal && message.Community != null)) && p != null && p.TypeID != (int)UserTypeStandard.Guest && p.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    message = SaveMessage(0, message.CreateByAdvancedEditor, (message.isForPortal) ? 0 : message.Community.Id, message.isForPortal, renderfolderpath, url, defaultHttpUrl, baseUrlHttp, message.Message, message.PlainText, message.StyleSettings);
                    //Manager.BeginTransaction();
                    //List<NoticeboardMessage> items = (from m in Manager.GetIQ<NoticeboardMessage>() where m.Status == Status.Active && m.isForPortal == message.isForPortal && m.Community == message.Community select m).ToList();
                    //foreach (NoticeboardMessage item in items) {
                    //    item.Status = Status.Expired;
                    //}
                    //if (items.Any())
                    //    Manager.SaveOrUpdateList(items);
                    //message.isDeleted = false;
                    //message.Status = Status.Active;
                    //message.ModifiedBy = p;
                    //message.ModifiedOn = DateTime.Now;
                    //message.DisplayDate = message.ModifiedOn.Value;
                    //Manager.Commit();
                    //if (message.Image == Guid.Empty)
                    //{
                    //    try
                    //    {
                    //        Manager.BeginTransaction();
                    //        RigenerateImage(message, renderfolderpath, url, baseUrlHttp, defaultHttpUrl);
                    //        Manager.Commit();
                    //    }
                    //    catch (Exception ex) {

                    //    }
                    //}
                }
            }
            catch (Exception ex)
            {
                message = null;
                Manager.RollBack();
            }
            return(message);
        }
Exemplo n.º 13
0
        public void DeleteMessage(long idMessage, Int32 idCommunity, Boolean isForPortal)
        {
            if (IsSessionTimeout(true))
            {
                return;
            }
            NoticeboardMessage message = Service.DeleteMessage(idMessage);

            View.DisplayMessage((message == null), ModuleNoticeboard.ActionType.Delete);
            if (message != null)
            {
                View.SendUserAction(idCommunity, CurrentIdModule, message, "", ModuleNoticeboard.ActionType.Delete);
                LoadMessage(Service.GetPermissions(idCommunity), idCommunity, isForPortal, message.Id, true);
            }
            else
            {
                View.SendUserAction(idCommunity, CurrentIdModule, ModuleNoticeboard.ActionType.GenericError);
            }
        }
Exemplo n.º 14
0
        public NoticeboardMessage DeleteMessage(long idMessage)
        {
            NoticeboardMessage message = null;

            try {
                Person p = Manager.GetPerson(UC.CurrentUserID);
                message = Manager.Get <NoticeboardMessage>(idMessage);
                if (message != null && p != null && p.TypeID != (int)UserTypeStandard.Guest && p.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    Manager.BeginTransaction();
                    Manager.DeletePhysical(message);
                    Manager.Commit();
                }
            }
            catch (Exception ex)
            {
                Manager.RollBack();
            }
            return(message);
        }
Exemplo n.º 15
0
        public void RigenerateImage(NoticeboardMessage message, String renderfolderpath, String url, String baseUrlHttp, String baseUrlHttps)
        {
            System.Guid identifier = Guid.NewGuid();
            try
            {
                if (url.Contains("https://"))
                {
                    url = url.Replace("https://", "http://");
                }
                lm.Comol.Core.DomainModel.Helpers.Thumbnailer c = new lm.Comol.Core.DomainModel.Helpers.Thumbnailer();
                System.Drawing.Bitmap b = c.GetThumbnailFromWeb(url, false, baseUrlHttp, baseUrlHttps);
                if (b == null)
                {
                    b = c.GetThumbnailFromWeb(url, true, baseUrlHttp, baseUrlHttps);
                }

                if (b != null)
                {
                    if (!lm.Comol.Core.File.Exists.Directory(renderfolderpath))
                    {
                        lm.Comol.Core.File.Create.Directory(renderfolderpath);
                    }

                    lm.Comol.Core.File.Create.Image(b, renderfolderpath + identifier.ToString() + ".png", System.Drawing.Imaging.ImageFormat.Png);
                }
                else
                {
                    identifier = Guid.Empty;
                }
            }
            catch (Exception ex)
            {
                identifier = Guid.Empty;
            }
            if (identifier != Guid.Empty)
            {
                message.Image = identifier;
            }
        }
Exemplo n.º 16
0
        public Boolean isNewMessage(long idMessage, String text, String plainText)
        {
            NoticeboardMessage message = null;

            try
            {
                Person p = Manager.GetPerson(UC.CurrentUserID);
                if (p != null && p.TypeID != (int)UserTypeStandard.Guest && p.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    if (idMessage > 0)
                    {
                        message = Manager.Get <NoticeboardMessage>(idMessage);
                        if (message != null)
                        {
                            switch (message.Status)
                            {
                            case Status.Active:
                                return(false);    //(message.PlainText != plainText);

                            case Status.Draft:
                                return(false);

                            case Status.Expired:
                                return(true);
                            }
                        }
                    }
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                return(true);
            }
            return(true);
        }
Exemplo n.º 17
0
        public void InitView(String editorConfigurationPath, System.Guid currentWorkingApplicationId)
        {
            NoticeboardMessage message = null;

            EditorConfiguration config = ServiceEditor.GetConfiguration(editorConfigurationPath);

            if (config != null)
            {
                ModuleEditorSettings mSettings = (config.ModuleSettings == null) ? null : config.ModuleSettings.Where(m => m.ModuleCode == ModuleNoticeboard.UniqueID).FirstOrDefault();
                if (mSettings == null && config.CssFiles.Any())
                {
                    View.PreloadCssFiles(config.DefaultCssFilesPath, config.CssFiles);
                }
                else if (mSettings != null && mSettings.CssFiles != null && mSettings.CssFiles.Any() && mSettings.OvverideCssFileSettings)
                {
                    View.PreloadCssFiles(config.DefaultCssFilesPath, mSettings.CssFiles);
                }
                else if (mSettings != null && mSettings.CssFiles != null && !mSettings.OvverideCssFileSettings)
                {
                    View.PreloadCssFiles(config.DefaultCssFilesPath, config.CssFiles);
                }
            }

            long idMessage   = View.PreloadedIdMessage;
            int  IdCommunity = View.PreloadedIdCommunity;

            if (idMessage != 0)
            {
                message = Service.GetMessage(idMessage);
            }
            else
            {
                message = Service.GetLastMessage(IdCommunity);
                if (message != null)
                {
                    idMessage = message.Id;
                }
            }
            if (message != null && message.Community != null)
            {
                IdCommunity = message.Community.Id;
            }
            else if (message != null && message.isForPortal)
            {
                IdCommunity = 0;
            }
            else
            {
                IdCommunity = UserContext.WorkingCommunityID;
            }

            Community community = null;

            if (IdCommunity > 0)
            {
                community = CurrentManager.GetCommunity(IdCommunity);
            }
            if (community == null && IdCommunity > 0)
            {
                View.ContainerName = "";
            }
            else if (community != null)
            {
                View.ContainerName = community.Name;
            }
            else
            {
                View.ContainerName = View.PortalName;
            }

            Boolean anonymousViewAllowed = (View.PreloadWorkingApplicationId != Guid.Empty && View.PreloadWorkingApplicationId == currentWorkingApplicationId);

            if (message == null && idMessage > 0)
            {
                View.DisplayUnknownMessage();
                View.SendUserAction(IdCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.ViewUnknownMessage);
            }
            else if (message == null && idMessage == 0)
            {
                View.DisplayEmptyMessage();
                View.SendUserAction(IdCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.ViewEmptyMessage);
            }
            else if (UserContext.isAnonymous && !anonymousViewAllowed)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                View.IdCurrentMessage = idMessage;

                ModuleNoticeboard module = null;
                if (IdCommunity == 0 && message.isForPortal)
                {
                    module = ModuleNoticeboard.CreatePortalmodule((UserContext.isAnonymous) ? (int)UserTypeStandard.Guest : UserContext.UserTypeID);
                }
                else if (IdCommunity > 0)
                {
                    module = new ModuleNoticeboard(CurrentManager.GetModulePermission(UserContext.CurrentUserID, IdCommunity, ModuleID));
                }
                else
                {
                    module = new ModuleNoticeboard();
                }
                if (module.Administration || module.ViewCurrentMessage || module.ViewOldMessage || anonymousViewAllowed)
                {
                    View.DisplayMessage(message);
                    View.SendUserAction(IdCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.ViewMessage);
                }
                else
                {
                    View.DisplayNoPermission();
                    View.SendUserAction(IdCommunity, ModuleID, idMessage, ModuleNoticeboard.ActionType.NoPermission);
                }
            }
        }
Exemplo n.º 18
0
        public NoticeboardMessage SaveMessage(long idMessage, Boolean advancedEditor, Int32 idCommunity, Boolean isForPortal, String renderfolderpath, String url, String defaultHttpUrl, String baseUrlHttp, String text, String plainText, StyleSettings settings = null)
        {
            NoticeboardMessage message = null;

            try {
                Person p = Manager.GetPerson(UC.CurrentUserID);
                if (p != null && p.TypeID != (int)UserTypeStandard.Guest && p.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    Manager.BeginTransaction();
                    if (idMessage > 0)
                    {
                        message = Manager.Get <NoticeboardMessage>(idMessage);
                        if (message != null)
                        {
                            message.ModifiedBy = p;
                            message.ModifiedOn = DateTime.Now;
                            if (message.Status == Status.Active && message.PlainText != plainText)
                            {
                                message.DisplayDate = message.ModifiedOn.Value;
                            }
                        }
                    }
                    else
                    {
                        message             = new NoticeboardMessage();
                        message.isDeleted   = false;
                        message.Status      = Status.Active;
                        message.Owner       = p;
                        message.CreatedOn   = DateTime.Now;
                        message.CreatedBy   = p;
                        message.DisplayDate = message.CreatedOn.Value;
                        message.ModifiedBy  = p;
                        message.ModifiedOn  = message.CreatedOn;
                        message.isForPortal = isForPortal;
                        message.Community   = (isForPortal) ? null : Manager.GetCommunity(idCommunity);
                        message.Status      = Status.Active;
                    }

                    if (message != null)
                    {
                        message.Message   = text;
                        message.PlainText = plainText;
                        message.CreateByAdvancedEditor = advancedEditor;
                        if (!advancedEditor && settings != null)
                        {
                            message.StyleSettings = settings;
                        }

                        if (idMessage == 0)
                        {
                            List <NoticeboardMessage> items = (from m in Manager.GetIQ <NoticeboardMessage>() where m.Status == Status.Active && m.isForPortal == message.isForPortal && m.Community == message.Community select m).ToList();
                            foreach (NoticeboardMessage item in items)
                            {
                                item.Status = Status.Expired;
                            }
                            if (items.Any())
                            {
                                Manager.SaveOrUpdateList(items);
                            }
                            Manager.SaveOrUpdate(message);
                        }
                    }

                    Manager.Commit();

                    if (message.Status == Status.Active)
                    {
                        if (!String.IsNullOrEmpty(url) && url.Contains("{0}"))
                        {
                            url = String.Format(url, message.Id);
                        }
                        try
                        {
                            Manager.BeginTransaction();
                            RigenerateImage(message, renderfolderpath, url, baseUrlHttp, defaultHttpUrl);
                            Manager.Commit();
                        }
                        catch (Exception ex)
                        {
                            Manager.RollBack();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                message = null;
                Manager.RollBack();
            }
            return(message);
        }
Exemplo n.º 19
0
        public NoticeboardMessage VirtualDeleteMessage(long idMessage, Boolean delete, Boolean activate, System.Guid applicationWorkingId, String renderfolderpath = "", String url = "", String defaultHttpUrl = "", String baseUrlHttp = "")
        {
            NoticeboardMessage message = null;

            try {
                Person p = Manager.GetPerson(UC.CurrentUserID);
                message = Manager.Get <NoticeboardMessage>(idMessage);
                if (message != null && p != null && p.TypeID != (int)UserTypeStandard.Guest && p.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    Manager.BeginTransaction();
                    List <NoticeboardMessage> items = null;
                    message.isDeleted  = delete;
                    message.ModifiedBy = p;
                    message.ModifiedOn = DateTime.Now;
                    if (message.Status == Status.Active && delete)
                    {
                        items = (from m in Manager.GetIQ <NoticeboardMessage>() where m.Status == Status.Expired && m.isForPortal == message.isForPortal && m.Community == message.Community orderby m.ModifiedOn descending select m).Skip(0).Take(1).ToList();
                        foreach (NoticeboardMessage item in items)
                        {
                            item.Status     = Status.Active;
                            item.ModifiedBy = p;
                            item.ModifiedOn = DateTime.Now;
                        }
                        message.Status = Status.VirtualDeleted;
                    }
                    else if (!delete && activate)
                    {
                        items = (from m in Manager.GetIQ <NoticeboardMessage>() where m.Status == Status.Active && m.isForPortal == message.isForPortal && m.Community == message.Community select m).ToList();
                        foreach (NoticeboardMessage item in items)
                        {
                            item.Status = Status.Expired;
                        }
                        message.Status      = Status.Active;
                        message.DisplayDate = message.ModifiedOn.Value;
                    }
                    else
                    {
                        message.Status = (delete) ? Status.VirtualDeleted : Status.Expired;
                    }

                    if (items != null && items.Any())
                    {
                        Manager.SaveOrUpdateList(items);
                    }

                    Manager.SaveOrUpdate(message);
                    Manager.Commit();
                    if (message.Image == Guid.Empty && message.Status == Status.Active)
                    {
                        try
                        {
                            Manager.BeginTransaction();
                            RigenerateImage(message, renderfolderpath, url, baseUrlHttp, defaultHttpUrl);
                            Manager.Commit();
                        }
                        catch (Exception ex)
                        {
                            Manager.RollBack();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                message = null;
                Manager.RollBack();
            }
            return(message);
        }