示例#1
0
        private void LoadTabs(DisplayTab tabs, DisplayTab tab, dtoModuleContext context)
        {
            List <DisplayTab> items = new List <DisplayTab>();

            if (tabs != DisplayTab.None)
            {
                if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft((long)tabs, (long)DisplayTab.List))
                {
                    items.Add(DisplayTab.List);
                }
                if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft((long)tabs, (long)DisplayTab.Send))
                {
                    items.Add(DisplayTab.Send);
                }
                if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft((long)tabs, (long)DisplayTab.Sent) && MailService.HasMessages(context.ModuleObject))
                {
                    items.Add(DisplayTab.Sent);
                }
                if (!items.Contains(tab))
                {
                    tab = items.Where(t => t != DisplayTab.Sent).FirstOrDefault();
                }
            }

            View.LoadTabs(items, tab);
        }
示例#2
0
        private void InternalTemplates(dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
        {
            List <dtoDisplayTemplateDefinition> items = Service.GetTemplates(context, filters, View.UnknownUserName, UserContext.CurrentUserID, UserContext.Language.Id);
            PagerBase pager = new PagerBase();

            pager.PageSize = pageSize;

            if (pageSize == 0)
            {
                pageSize = 50;
            }
            pager.Count     = (items == null)? -1 : (int)items.Count - 1;
            pager.PageIndex = pageIndex;// Me.View.CurrentPageIndex
            View.Pager      = pager;

            View.CurrentOrderBy = filters.OrderBy;
            //View.CurrentFilterBy = filters.Status;
            View.CurrentAscending = filters.Ascending;
            View.CurrentPageSize  = pageSize;
            if (pager.Count < 0)
            {
                View.LoadNoTemplatesFound();
            }
            else
            {
                View.LoadTemplates(items.Skip(pageIndex * pageSize).Take(pageSize).ToList());
            }
            if (View.SendTemplateActions)
            {
                View.SendUserAction(context.IdCommunity, context.IdModule, ModuleTemplateMessages.ActionType.ListTemplates);
            }
        }
示例#3
0
        private void ReloadPageAndFilters(dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
        {
            List <TemplateDisplay> items = Service.GetAvailableTemplateDisplay(context.GetStandardType(), context.IdCommunity, UserContext.CurrentUserID, context.ModuleCode);

            items = items.Where(i => View.AvailableDisplay.Contains(i)).ToList();
            if (!items.Contains(filters.TemplateDisplay))
            {
                filters.TemplateDisplay = items[0];
                filters.PageIndex       = 0;
                pageIndex = 0;
            }

            View.ReloadPageAndFilters(filters, items, filters.TemplateDisplay);
            LoadTemplates(context, filters, pageIndex, pageSize);
        }
示例#4
0
 public void LoadTemplates(dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
 {
     View.CurrentFilters = filters;
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else if (context.Permissions == null || (context.Permissions.Administration || context.Permissions.List))
     {
         InternalTemplates(context, filters, pageIndex, pageSize);
     }
     else
     {
         View.DisplayNoPermission(context.IdCommunity, context.IdModule);
     }
 }
示例#5
0
        public void PhisicalDeleteTemplate(long idTemplate, String name, dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Boolean completed = Service.PhisicalDeleteTemplate(idTemplate);
                View.DisplayMessage(name, Domain.ListAction.Delete, ModuleTemplateMessages.ObjectType.Template, completed);

                if (View.SendTemplateActions)
                {
                    View.SendUserAction(context.IdCommunity, context.IdModule, (completed) ? ModuleTemplateMessages.ActionType.PhisicalDeleteTemplate : ModuleTemplateMessages.ActionType.GenericError);
                }
                ReloadPageAndFilters(context, filters, pageIndex, pageSize);
            }
        }
示例#6
0
        public void AddNewVersion(long idTemplate, String name, dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                TemplateDefinitionVersion v = Service.AddTemplateVersion(idTemplate);
                View.OpenIdTemplate = idTemplate;
                View.DisplayMessage(name, Domain.ListAction.AddVersion, ModuleTemplateMessages.ObjectType.Template, (v != null));

                if (View.SendTemplateActions)
                {
                    View.SendUserAction(context.IdCommunity, context.IdModule, (v != null) ? ModuleTemplateMessages.ActionType.AddNewTemplateVersion : ModuleTemplateMessages.ActionType.GenericError);
                }
                ReloadPageAndFilters(context, filters, pageIndex, pageSize);
            }
        }
示例#7
0
        public void CloneTemplate(long idTemplate, String name, String clonePrefix, dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                TemplateDefinition t = Service.CloneTemplate(idTemplate, clonePrefix, context);
                View.OpenIdTemplate = (t != null) ? t.Id :idTemplate;
                View.DisplayMessage(name, Domain.ListAction.Clone, ModuleTemplateMessages.ObjectType.Template, (t != null));

                if (View.SendTemplateActions)
                {
                    View.SendUserAction(context.IdCommunity, context.IdModule, (t != null) ? ModuleTemplateMessages.ActionType.CloneTemplate : ModuleTemplateMessages.ActionType.GenericError);
                }
                ReloadPageAndFilters(context, filters, pageIndex, pageSize);
            }
        }
示例#8
0
        private List <OwnerType> GetAvailableSaveAs()
        {
            List <OwnerType>       items   = new List <OwnerType>();
            dtoModuleContext       context = GetModuleContext(View.CurrentModuleCode, View.ModulePermissions, View.CurrentIdCommunity, View.CurrentTemplateType);
            ModuleTemplateMessages m       = ModuleTemplateMessages.CreatePortalmodule(UserContext.UserTypeID, OwnerType.Person);

            if (m.Add || m.Administration)
            {
                items.Add(OwnerType.Person);
            }
            if (context.Permissions.Add || context.Permissions.Administration)
            {
                items.Add(OwnerType.Module);
                if (View.CurrentModuleObject != null)
                {
                    items.Add(OwnerType.Object);
                }
            }
            return(items);
        }
示例#9
0
        private void InitializeView(dtoModuleContext context, dtoBaseFilters filters, List <TemplateType> availableType, List <TemplateDisplay> availableDisplay)
        {
            View.AvailableDisplay = availableDisplay;
            View.AvailableTypes   = availableType;
            View.ContainerContext = context;
            View.CurrentType      = filters.TemplateType;
            View.CurrentFilters   = filters;

            List <TemplateDisplay> items = Service.GetAvailableTemplateDisplay(context.GetStandardType(), context.IdCommunity, UserContext.CurrentUserID, context.ModuleCode);

            items = items.Where(i => availableDisplay.Contains(i)).ToList();
            if (!items.Contains(filters.TemplateDisplay))
            {
                filters.TemplateDisplay = items[0];
            }
            View.LoadTemplateDisplay(items, filters.TemplateDisplay);
            //filters.CallType = type;
            //View.LoadSubmissionStatus(items, filters.Status);

            InternalTemplates(context, filters, filters.PageIndex, (filters.PageSize == 0) ? View.CurrentPageSize : filters.PageSize);
        }
示例#10
0
 //public void InitView(dtoBaseFilters filter, List<TemplateType> availableType, List<TemplateDisplay> availableDisplay, Boolean displayAdd = false, String addUrl = "", String addPersonalUrl = "")
 //{
 //    if (UserContext.isAnonymous)
 //        View.DisplaySessionTimeout();
 //    else
 //    {
 //        //InitializeView
 //    }
 //}
 public void InitView(dtoModuleContext context, dtoBaseFilters filter, List <TemplateType> availableType, List <TemplateDisplay> availableDisplay, Boolean displayAdd = false, String addUrl = "", String addPersonalUrl = "", String addObjectUrl = "")
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         //if (module.List || module.Administration){
         if (displayAdd && !String.IsNullOrEmpty(addUrl) && String.IsNullOrEmpty(addPersonalUrl) && String.IsNullOrEmpty(addObjectUrl)) //&& module.Add
         {
             View.SetAddUrl(addUrl);
         }
         else if (displayAdd && (!String.IsNullOrEmpty(addPersonalUrl) || !String.IsNullOrEmpty(addObjectUrl))) //&& module.Add
         {
             View.SetAddUrl(addUrl, addPersonalUrl, addObjectUrl);
         }
         InitializeView(context, filter, availableType, availableDisplay);
         //}
         //else
         //    View.DisplayNoPermission();
     }
 }
示例#11
0
        public void InitView()
        {
            Int32 idCommunity = View.PreloadIdCommunity;

            if (idCommunity < 0)
            {
                idCommunity = UserContext.CurrentCommunityID;
            }
            View.CurrentIdCommunity = idCommunity;
            if (UserContext.isAnonymous)
            {
                SessionTimeout(idCommunity, View.PreloadSelectedTab);
            }
            else
            {
                DisplayTab tabs = View.PreloadTabs;
                DisplayTab tab  = View.PreloadSelectedTab;
                if (tab == DisplayTab.Sent && tabs != DisplayTab.None)
                {
                    tab = DisplayTab.Send;
                }

                TemplateType type = View.PreloadTemplateType;
                if (type == TemplateType.None)
                {
                    type = TemplateType.Module;
                }

                SetCurrentItems(type, idCommunity, tab);



                String  moduleCode    = View.PreloadModuleCode;
                long    permissions   = View.PreloadFromModulePermissions;
                Int32   idOtherModule = CurrentManager.GetModuleID(moduleCode);
                Boolean otherModule   = (moduleCode != ModuleTemplateMessages.UniqueCode);



                dtoModuleContext context = GetModuleContext(moduleCode, permissions, idCommunity, type);
                LoadTabs(tabs, tab, context);
                Boolean allowView = context.Permissions.Administration || context.Permissions.List;
                switch (tab)
                {
                case DisplayTab.List:
                    if (allowView)
                    {
                        InitializeList(context, idCommunity, type, permissions);
                        View.DisplayList();
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                    }
                    break;

                case DisplayTab.Send:
                    LoadTab(DisplayTab.Send);
                    break;

                case DisplayTab.Sent:
                    break;

                default:
                    if (otherModule)
                    {
                        View.DisplayNoPermission(idCommunity, idOtherModule, moduleCode);
                    }
                    else
                    {
                        View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                    }
                    break;
                }
            }
        }
示例#12
0
        private dtoModuleContext GetModuleContext(String moduleCode, long permissions, Int32 idCommunity, TemplateType type)
        {
            Int32            idUser  = UserContext.CurrentUserID;
            dtoModuleContext context = new dtoModuleContext();

            context.ModuleCode = moduleCode;
            //context.ModulePermissions = View.PreloadModulePermissions;
            context.IdCommunity      = idCommunity;
            context.IdAction         = View.CurrentIdAction;
            context.AlsoEmptyActions = View.AlsoWithEmptyActions || (context.IdAction == 0);
            switch (type)
            {
            case TemplateType.Module:
                if (context.ModuleCode == ModuleTemplateMessages.UniqueCode)
                {
                    ModuleTemplateMessages module = null;
                    context.IdModule          = Service.ServiceModuleID();
                    context.ModulePermissions = module.GetPermissions();
                    module = Service.GetPermission(idCommunity, OwnerType.Module);
                    context.Permissions = new ModuleGenericTemplateMessages(module);
                    context.LoaderType  = TemplateLoaderType.Module;
                }
                else
                {
                    context.IdModule = CurrentManager.GetModuleID(context.ModuleCode);
                    ModuleObject obj = View.CurrentModuleObject;
                    if (obj != null && obj.ServiceID == 0 && !String.IsNullOrEmpty(obj.ServiceCode))
                    {
                        obj.ServiceID            = CurrentManager.GetModuleID(obj.ServiceCode);
                        View.CurrentModuleObject = obj;
                    }
                    else if (obj != null && obj.ServiceID > 0 && String.IsNullOrEmpty(obj.ServiceCode))
                    {
                        obj.ServiceCode          = CurrentManager.GetModuleCode(obj.ServiceID);
                        View.CurrentModuleObject = obj;
                    }
                    context.ModuleObject = obj;
                    //long dbPermissions = CurrentManager.GetModulePermission(UserContext.CurrentUserID, idCommunity, context.IdModule);
                    //if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft(dbPermissions, context.ModulePermissions))
                    //{
                    //
                    //}
                    context.LoaderType = TemplateLoaderType.OtherModule;
                    if (permissions > 0)
                    {
                        context.Permissions = View.GetModulePermissions(context.ModuleCode, context.IdModule, CurrentManager.GetModulePermission(UserContext.CurrentUserID, idCommunity, context.IdModule), idCommunity, UserContext.UserTypeID, obj);
                    }
                    else
                    {
                        context.Permissions = View.GetModulePermissions(context.ModuleCode, context.IdModule, GetModulePermission(idCommunity, context.IdModule), idCommunity, UserContext.UserTypeID, obj);
                    }
                }
                break;

            case TemplateType.User:
                Person  p         = GetCurrentUser(ref idUser);
                Boolean allowView = (p != null && p.TypeID != (Int32)UserTypeStandard.Guest && p.TypeID != (Int32)UserTypeStandard.PublicUser);

                context.LoaderType                    = TemplateLoaderType.User;
                context.Permissions                   = new ModuleGenericTemplateMessages("personal");
                context.Permissions.Add               = allowView;
                context.Permissions.Administration    = allowView;
                context.Permissions.Clone             = allowView;
                context.Permissions.DeleteMyTemplates = allowView;
                context.Permissions.Edit              = allowView;
                context.Permissions.List              = allowView;
                break;
            }
            return(context);
        }
示例#13
0
        private void InitializeList(dtoModuleContext context, Int32 idCommunity, TemplateType type, long permissions)
        {
            dtoBaseTemplateOwner ownerInfo = null;
            Boolean allowAdd       = false;
            String  addUrl         = "";
            String  addPersonalUrl = "";
            String  addObjectUrl   = "";

            View.IsInitializedList = true;
            if (context == null)
            {
                context = GetModuleContext(View.CurrentModuleCode, permissions, View.CurrentIdCommunity, type);
            }

            #region "Permissions"
            allowAdd = context.Permissions.Administration || context.Permissions.Add;
            System.Guid sessionId = View.CurrentSessionId;
            switch (type)
            {
            case TemplateType.System:
                if (allowAdd)
                {
                    ownerInfo = new dtoBaseTemplateOwner()
                    {
                        IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                    };
                    addUrl = RootObject.Add(sessionId, TemplateType.System, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                }
                break;

            case TemplateType.Module:
                allowAdd = context.Permissions.Administration || context.Permissions.Add;

                // DA RIVEDERE
                if (allowAdd)
                {
                    ownerInfo = new dtoBaseTemplateOwner()
                    {
                        IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                    };
                    addUrl = RootObject.Add(sessionId, TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);

                    ModuleObject obj = View.CurrentModuleObject;
                    if (obj != null)
                    {
                        ownerInfo = new dtoBaseTemplateOwner()
                        {
                            IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Object, IdObject = obj.ObjectLongID, IdObjectType = obj.ObjectTypeID, IdObjectCommunity = obj.CommunityID, IdObjectModule = obj.ServiceID, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                        };
                        addObjectUrl = RootObject.Add(sessionId, TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                    }
                }
                dtoBaseTemplateOwner personalOwnerInfo = new dtoBaseTemplateOwner()
                {
                    IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Person, IdPerson = UserContext.CurrentUserID, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                };
                addPersonalUrl = RootObject.Add(sessionId, TemplateType.User, personalOwnerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                break;

            case TemplateType.User:
                if (allowAdd)
                {
                    ownerInfo = new dtoBaseTemplateOwner()
                    {
                        IdCommunity = 0, IsPortal = true, Type = OwnerType.Person, IdPerson = UserContext.CurrentUserID, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                    };
                    addPersonalUrl = RootObject.Add(sessionId, TemplateType.User, ownerInfo, 0, context.ModuleCode, context.ModulePermissions);
                }
                break;
            }
            #endregion
            #region "Filters"
            dtoBaseFilters filters = (View.PreloadFromCookies) ? View.GetFromCookies() : null;
            if (filters == null)
            {
                filters               = new dtoBaseFilters();
                filters.Ascending     = true;
                filters.SearchForName = "";
                filters.Status        = TemplateStatus.Active;
                filters.TemplateType  = type;
                //filters.LoaderType = context.LoaderType;
                switch (type)
                {
                case TemplateType.Module:
                    filters.ModuleCode = View.PreloadModuleCode;
                    break;
                }
                filters.Ascending          = true;
                filters.OrderBy            = TemplateOrder.ByName;
                filters.TranslationsStatus = View.GetTranslationsStatus();
                filters.TranslationsType   = View.GetTranslationsTypes();
                filters.TemplateDisplay    = TemplateDisplay.OnlyVisible;
                View.SaveToCookies(filters);
            }
            #endregion
            View.InitializeList(context, filters, GetAvailableTypes(type), GetAvailableDisplay(type), allowAdd, addUrl, addPersonalUrl, addObjectUrl);
        }
示例#14
0
        public void VirtualDeleteVersion(long idTemplate, long idVersion, String name, Boolean delete, dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                View.OpenIdTemplate = idTemplate;
                Boolean completed = Service.VirtualDeleteVersion(idVersion, delete);
                View.DisplayMessage(name, (delete) ? Domain.ListAction.VirtualDelete : Domain.ListAction.VirtualUndelete, ModuleTemplateMessages.ObjectType.Version, completed);

                if (View.SendTemplateActions)
                {
                    View.SendUserAction(context.IdCommunity, context.IdModule, (completed) ? ModuleTemplateMessages.ActionType.VirtualDeleteTemplateVersion : ModuleTemplateMessages.ActionType.GenericError);
                }
                ReloadPageAndFilters(context, filters, pageIndex, pageSize);
            }
        }
示例#15
0
        public void VirtualDeleteTemplate(long idTemplate, String name, Boolean delete, dtoModuleContext context, dtoBaseFilters filters, int pageIndex, int pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Boolean completed = Service.VirtualDeleteTemplate(idTemplate, delete);
                View.DisplayMessage(name, (delete) ? Domain.ListAction.VirtualDelete : Domain.ListAction.VirtualUndelete, ModuleTemplateMessages.ObjectType.Template, completed);

                if (View.SendTemplateActions)
                {
                    View.SendUserAction(context.IdCommunity, context.IdModule, (completed) ? ModuleTemplateMessages.ActionType.VirtualDeleteTemplate : ModuleTemplateMessages.ActionType.GenericError);
                }
                ReloadPageAndFilters(context, filters, pageIndex, pageSize);

                ////switch (View.CallType)
                ////{
                ////    case CallForPaperType.CallForBids:
                ////        View.SendUserAction(View.IdCallCommunity, View.IdCallModule, idSubmission, ModuleCallForPaper.ActionType.VirtualDeleteSubmission);
                ////        break;
                ////    case CallForPaperType.RequestForMembership:
                ////        View.SendUserAction(View.IdCallCommunity, View.IdCallModule, idSubmission, ModuleRequestForMembership.ActionType.VirtualDeleteSubmission);
                ////        break;
                ////}
                ////LoadSubmissions(View.IdCallCommunity, type, filters, pageIndex, pageSize);
                //View.GotoUrl(RootObject.ViewSubmissions(type, View.IdCall, 0, 0, View.PreloadView, filters.Status, filters.OrderBy, filters.Ascending, pageIndex, pageSize));
            }
        }
示例#16
0
        public void InitView()
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout(RootObject.List(View.PreloadIdCommunity, View.PreloadTemplateType, View.PreloadOwnership, View.PreloadFromCookies, View.PreloadModuleCode, View.PreloadModulePermissions, View.PreloadModulePermissions));
            }
            else
            {
                Int32 idCommunity = View.PreloadIdCommunity;
                if (idCommunity < 0)
                {
                    idCommunity = UserContext.CurrentCommunityID;
                }
                View.IdManagerCommunity = idCommunity;
                TemplateType type = View.PreloadTemplateType;
                if (type == TemplateType.None)
                {
                    type = TemplateType.User;
                }
                dtoBaseFilters filters = (View.PreloadFromCookies) ? View.GetFromCookies() : null;
                if (filters == null)
                {
                    filters               = new dtoBaseFilters();
                    filters.Ascending     = true;
                    filters.SearchForName = "";
                    filters.Status        = TemplateStatus.Active;
                    filters.TemplateType  = type;
                    //filters.SetLoadingType(type);
                    switch (type)
                    {
                    case TemplateType.Module:
                        filters.ModuleCode = View.PreloadModuleCode;
                        break;
                    }
                    filters.Ascending          = true;
                    filters.OrderBy            = TemplateOrder.ByName;
                    filters.TranslationsStatus = View.GetTranslationsStatus();
                    filters.TranslationsType   = View.GetTranslationsTypes();
                    filters.TemplateDisplay    = TemplateDisplay.OnlyVisible;
                    View.SaveToCookies(filters);
                }
                Int32   idUser    = UserContext.CurrentUserID;
                Boolean allowView = false;
                Boolean allowAdd  = false;
                String  addUrl    = "";

                dtoModuleContext context = new dtoModuleContext();
                context.ModuleCode        = View.PreloadModuleCode;
                context.ModulePermissions = View.PreloadModulePermissions;
                context.IdCommunity       = idCommunity;

                dtoBaseTemplateOwner   ownerInfo = null;
                ModuleTemplateMessages module    = null;

                switch (type)
                {
                case TemplateType.System:
                    module    = ModuleTemplateMessages.CreatePortalmodule(UserContext.UserTypeID, OwnerType.System);
                    allowView = module.Administration || module.List;
                    allowAdd  = module.Administration || module.Add;
                    if (allowAdd)
                    {
                        ownerInfo = new dtoBaseTemplateOwner()
                        {
                            IdCommunity = 0, IsPortal = true, Type = OwnerType.System, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                        };
                        addUrl = RootObject.Add(TemplateType.System, ownerInfo, idCommunity, View.PreloadModuleCode, View.PreloadModulePermissions);
                    }
                    context.LoaderType  = TemplateLoaderType.System;
                    context.IdModule    = Service.ServiceModuleID();
                    context.Permissions = new ModuleGenericTemplateMessages(module);
                    break;

                case TemplateType.Module:
                    if (context.ModuleCode == ModuleTemplateMessages.UniqueCode)
                    {
                        context.IdModule          = Service.ServiceModuleID();
                        module                    = Service.GetPermission(idCommunity, OwnerType.Module);
                        context.ModulePermissions = module.GetPermissions();
                        allowView                 = module.Administration || module.List;
                        allowAdd                  = module.Administration || module.Add;
                        if (allowAdd)
                        {
                            ownerInfo = new dtoBaseTemplateOwner()
                            {
                                IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                            };
                            addUrl = RootObject.Add(TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                        }

                        context.Permissions = new ModuleGenericTemplateMessages(module);
                        context.LoaderType  = TemplateLoaderType.Module;
                    }
                    else if (View.PreloadModulePermissions > 0)
                    {
                        context.IdModule = CurrentManager.GetModuleID(context.ModuleCode);
                        long dbPermissions = CurrentManager.GetModulePermission(UserContext.CurrentUserID, idCommunity, context.IdModule);

                        context.Permissions = View.GetModulePermissions(context.ModuleCode, context.IdModule, dbPermissions, idCommunity, UserContext.UserTypeID);

                        if (lm.Comol.Core.DomainModel.PermissionHelper.CheckPermissionSoft(dbPermissions, context.ModulePermissions))
                        {
                            allowView = true;
                            allowAdd  = true;
                            if (allowAdd)
                            {
                                ownerInfo = new dtoBaseTemplateOwner()
                                {
                                    IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                                };
                                addUrl = RootObject.Add(TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                            }
                        }
                        context.LoaderType = TemplateLoaderType.OtherModule;
                    }
                    else
                    {
                        context.IdModule    = CurrentManager.GetModuleID(context.ModuleCode);
                        context.Permissions = View.GetModulePermissions(context.ModuleCode, context.IdModule, GetModulePermission(idCommunity, context.IdModule), idCommunity, UserContext.UserTypeID);
                        context.LoaderType  = TemplateLoaderType.OtherModule;

                        allowView = context.Permissions.Administration || context.Permissions.List;
                        allowAdd  = context.Permissions.Administration || context.Permissions.Add;
                        if (allowAdd)
                        {
                            ownerInfo = new dtoBaseTemplateOwner()
                            {
                                IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Module, ModuleCode = context.ModuleCode, IdModule = context.IdModule, ModulePermission = context.ModulePermissions
                            };
                            addUrl = RootObject.Add(TemplateType.Module, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                        }
                    }
                    break;

                case TemplateType.User:
                    Person p = GetCurrentUser(ref idUser);
                    allowView = (p != null && p.TypeID != (Int32)UserTypeStandard.Guest && p.TypeID != (Int32)UserTypeStandard.PublicUser);
                    allowAdd  = allowView;
                    if (allowAdd)
                    {
                        ownerInfo = new dtoBaseTemplateOwner()
                        {
                            IdCommunity = idCommunity, IsPortal = (idCommunity == 0), Type = OwnerType.Person, IdPerson = UserContext.CurrentUserID, ModuleCode = View.PreloadModuleCode, IdModule = (String.IsNullOrEmpty(View.PreloadModuleCode) ? 0 : CurrentManager.GetModuleID(View.PreloadModuleCode))
                        };
                        addUrl = RootObject.Add(TemplateType.User, ownerInfo, idCommunity, context.ModuleCode, context.ModulePermissions);
                    }
                    context.LoaderType                    = TemplateLoaderType.User;
                    context.Permissions                   = new ModuleGenericTemplateMessages("personal");
                    context.Permissions.Add               = allowView;
                    context.Permissions.Administration    = allowView;
                    context.Permissions.Clone             = allowView;
                    context.Permissions.DeleteMyTemplates = allowView;
                    context.Permissions.Edit              = allowView;
                    context.Permissions.List              = allowView;
                    break;
                }
                if (allowView)
                {
                    if (allowAdd)
                    {
                        View.SetAddUrl(addUrl);
                    }
                    switch (type)
                    {
                    case TemplateType.User:
                    case TemplateType.System:
                        View.InitializeList(context, filters, GetAvailableTypes(type), GetAvailableDisplay(type));
                        break;

                    case  TemplateType.Module:
                        View.InitializeList(context, filters, GetAvailableTypes(type), GetAvailableDisplay(type));
                        break;
                    }
                }
                else
                {
                    View.DisplayNoPermission(idCommunity, Service.ServiceModuleID());
                }
            }
        }