Esempio n. 1
0
 public void ApplyFilters(lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         liteDashboardSettings settings = Service.DashboardSettingsGet(DashboardType.Portal, 0);
         litePageSettings      page     = (settings != null) ? settings.Pages.Where(p => p.Type == DashboardViewType.Search).FirstOrDefault() : new litePageSettings()
         {
             Type = DashboardViewType.Search, MaxItems = 25, More = DisplayMoreItems.Hide, Noticeboard = DisplayNoticeboard.Hide, PlainLayout = PlainLayout.full
         };
         liteTile tile   = null;
         long     idTile = View.PreloadIdTile;
         if (idTile > 0)
         {
             tile = Service.GetTile(idTile);
         }
         else if (filters.IdcommunityType > -1)
         {
             tile = Service.GetTileForCommunityType(filters.IdcommunityType);
         }
         List <long> tags = View.TagsToLoad;
         if (tags != null && tags.Any() && idTile > 0)
         {
             filters.IdTags = tags;
         }
         View.ApplyFilters(page, filters, tile, ((UserContext != null && UserContext.Language != null) ? UserContext.Language.Id : -2), CurrentManager.GetDefaultIdLanguage());
     }
 }
        private void LoadCommunities(Int32 idCommunity, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, Int32 pageIndex, Int32 pageSize, ModuleTags.ActionType action, Boolean firstLoad = false)
        {
            List <lm.Comol.Core.BaseModules.Dashboard.Domain.dtoCommunityForTags> items = ServiceCommunities.GetCommunitiesForBulkTagsManage(UserContext.CurrentUserID, filters);
            Int32 itemsCount = (items == null ? 0 : items.Count);

            PagerBase pager = new PagerBase();

            pager.PageSize  = pageSize;
            pager.Count     = (itemsCount > 0) ? itemsCount - 1 : 0;
            pager.PageIndex = pageIndex;
            View.Pager      = pager;
            if (items != null)
            {
                if (firstLoad && itemsCount == 0)
                {
                    View.HideFilters();
                }
                else if (itemsCount == 0 && ServiceTags.GetCommunitiesWithNoTags() == 0)
                {
                    View.HideFilters();
                }
                View.LoadCommunities(GenerateItems(filters, items.Skip(pager.PageIndex * pageSize).Take(pageSize).ToList(), itemsCount > pageSize));
                View.SendUserAction(idCommunity, CurrentIdModule, action);
            }
            else
            {
                View.DisplayErrorFromDB();
            }
        }
 public void ApplyFilters(Int32 idCommunity, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, Int32 pageSize)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         View.CurrentAssignedTags = new List <dtoBulkCommunityForTags>();
         View.CurrentFilters      = filters;
         LoadCommunities(idCommunity, filters, 0, pageSize, ModuleTags.ActionType.BulkTagsAssignApplyFilters);
     }
 }
        private void InitializeColumns(lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters)
        {
            List <searchColumn> columns = new List <searchColumn>();

            switch (filters.Availability)
            {
            case CommunityManagement.CommunityAvailability.Subscribed:
                columns.Add(searchColumn.actions);
                columns.Add(searchColumn.subscriptioninfo);
                columns.Add(searchColumn.genericdate);
                break;
            }
            View.AvailableColumns = columns;
        }
 public void ApplyTags(List <dtoBulkCommunityForTags> items, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, Int32 idCommunity, Int32 pageIndex, Int32 pageSize)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleTags.ActionType action = ModuleTags.ActionType.BulkTagsUnasigned;
         if (items.Any())
         {
             List <dtoBulkCommunityForTags> cTags = View.CurrentAssignedTags;
             if (ServiceTags.ApplyTagsToCommunities(items))
             {
                 action    = ModuleTags.ActionType.BulkTagsAssigned;
                 pageIndex = (filters.WithoutTags) ? ((pageIndex > 0) ? pageIndex - 1 : pageIndex) : pageIndex;
                 foreach (dtoBulkCommunityForTags item in items)
                 {
                     dtoBulkCommunityForTags current = cTags.Where(c => c.IdCommunity == item.IdCommunity).FirstOrDefault();
                     if (current != null)
                     {
                         current.IdSelectedTags = item.IdSelectedTags;
                     }
                 }
                 View.CurrentAssignedTags = cTags;
                 filters             = RecalcDefaultFilters(filters);
                 View.CurrentFilters = filters;
                 LoadCommunities(idCommunity, filters, pageIndex, pageSize, ModuleTags.ActionType.BulkTagsUpdateListAferTagsAssignment);
             }
         }
         else
         {
             action = ModuleTags.ActionType.BulkTagsNoSelection;
         }
         View.DisplayMessage(action);
         View.SendUserAction(idCommunity, CurrentIdModule, action);
     }
 }
        public void InitView(litePageSettings pageSettings, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, List <dtoItemFilter <OrderItemsBy> > items, liteTile tile = null)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                View.IsForSearch = true;
                View.PageType    = DashboardViewType.Search;

                OrderItemsBy orderBy   = items.Where(i => i.Selected).Select(i => i.Value).FirstOrDefault();
                Boolean      ascending = (orderBy == OrderItemsBy.Name);
                View.CurrentFilters   = filters;
                View.CurrentOrderBy   = orderBy;
                View.CurrentAscending = ascending;

                Int32 idUserLanguage    = ((UserContext != null && UserContext.Language != null) ? UserContext.Language.Id : -2);
                Int32 idDefaultLanguage = CurrentManager.GetDefaultIdLanguage();

                LoadCommunities(pageSettings, filters, orderBy, ascending, false, 0, 0, ModuleDashboard.ActionType.SearchDashboardLoadcommunities);
            }
        }
        public void ApplyTags(List <Int32> idCommunities, List <long> tags, Boolean applyToAll, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, Int32 idCommunity, Int32 pageIndex, Int32 pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                ModuleTags.ActionType action = ModuleTags.ActionType.BulkTagsUnasigned;
                View.CurrentAssignedTags = new List <dtoBulkCommunityForTags>();
                pageIndex = (filters.WithoutTags) ? ((pageIndex > 0) ? pageIndex - 1 : pageIndex) : pageIndex;
                if (applyToAll)
                {
                    List <lm.Comol.Core.BaseModules.Dashboard.Domain.dtoCommunityForTags> communities = ServiceCommunities.GetCommunitiesForBulkTagsManage(UserContext.CurrentUserID, filters);
                    if (communities != null)
                    {
                        idCommunities = communities.Select(c => c.Id).ToList();
                    }
                }

                if (idCommunities.Any())
                {
                    List <dtoBulkCommunityForTags> cTags = View.CurrentAssignedTags;
                    if (ServiceTags.ApplyTagsToCommunities(idCommunities, tags).Count > 0)
                    {
                        action = ModuleTags.ActionType.BulkTagsAssigned;

                        foreach (Int32 id in idCommunities)
                        {
                            dtoBulkCommunityForTags current = cTags.Where(c => c.IdCommunity == id).FirstOrDefault();
                            if (current != null)
                            {
                                current.IdSelectedTags = tags;
                            }
                        }
                        View.CurrentAssignedTags = cTags;
                        if (applyToAll)
                        {
                            filters = ServiceCommunities.GetDefaultFilters(CurrentManager.GetLitePerson(UserContext.CurrentUserID), CommunityManagement.CommunityAvailability.All, true);
                        }
                        else
                        {
                            filters = RecalcDefaultFilters(filters);
                        }
                        View.CurrentFilters = filters;
                        View.DeselectAll();
                        LoadCommunities(idCommunity, filters, pageIndex, pageSize, ModuleTags.ActionType.BulkTagsUpdateListAferTagsAssignment);
                    }
                    else
                    {
                        LoadCommunities(idCommunity, pageIndex, pageSize);
                    }
                }
                else
                {
                    action = ModuleTags.ActionType.BulkTagsNoSelection;
                }
                View.DisplayMessage(action);
                View.SendUserAction(idCommunity, CurrentIdModule, ModuleTags.ActionType.NoPermissionForBulkTagsAssign);
            }
        }
        private List <lm.Comol.Core.BaseModules.Dashboard.Domain.dtoCommunityForTags> GenerateItems(lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, List <lm.Comol.Core.BaseModules.Dashboard.Domain.dtoCommunityForTags> items, Boolean hasMultiPage)
        {
            List <Int32> idOrganizations = (filters.IdOrganization > 0) ? new List <Int32>()
            {
                filters.IdOrganization
            } : new List <Int32>();
            List <dtoTagSelectItem> defaultTags = ServiceTags.GetTags(TagType.Community, 0, idOrganizations);

            View.LoadDefaultTags(defaultTags, hasMultiPage);
            foreach (lm.Comol.Core.BaseModules.Dashboard.Domain.dtoCommunityForTags item in items.Where(i => i.IdOrganization == filters.IdOrganization))
            {
                item.AvailableTags = defaultTags.Select(d => d.Copy(item.IdTags.Contains(d.Id))).ToList();
            }
            foreach (lm.Comol.Core.BaseModules.Dashboard.Domain.dtoCommunityForTags item in items.Where(i => !i.AvailableTags.Any()))
            {
                item.AvailableTags = ServiceTags.GetTags(TagType.Community, item.Id, new List <Int32>()
                {
                    item.IdOrganization
                }, -1, item.IdTags);
            }
            return(items);
        }
        public void UnsubscribeFromCommunity(Int32 idCommunity, String path, RemoveAction action, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsBy orderBy, Boolean ascending, Int32 pageIndex, Int32 pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                lm.Comol.Core.BaseModules.CommunityManagement.dtoUnsubscribeTreeNode node = Service.UnsubscribeInfo(UserContext.CurrentUserID, idCommunity, path);
                if (node != null)
                {
                    switch (action)
                    {
                    case RemoveAction.None:
                        break;

                    default:
                        ModuleDashboard.ActionType  dAction       = ModuleDashboard.ActionType.UnableToUnsubscribe;
                        List <liteSubscriptionInfo> subscriptions = Service.UnsubscribeFromCommunity(UserContext.CurrentUserID, node, action);
                        if (subscriptions == null && !subscriptions.Any())
                        {
                            switch (action)
                            {
                            case RemoveAction.FromCommunity:
                                dAction = ModuleDashboard.ActionType.UnableToUnsubscribeFromCommunity;
                                View.DisplayUnableToUnsubscribe(node.Name);
                                break;

                            case RemoveAction.FromAllSubCommunities:
                                dAction = ModuleDashboard.ActionType.UnableToUnsubscribeFromCommunities;
                                View.DisplayUnsubscriptionMessage(new List <String>(), node.GetAllNodes().Where(n => n.AllowUnsubscribe()).Select(n => n.Name).ToList());
                                break;
                            }
                        }
                        else
                        {
                            switch (action)
                            {
                            case RemoveAction.FromCommunity:
                                dAction = ModuleDashboard.ActionType.UnsubscribeFromCommunity;
                                View.DisplayUnsubscribedFrom(node.Name);
                                break;

                            case RemoveAction.FromAllSubCommunities:
                                dAction = ModuleDashboard.ActionType.UnsubscribeFromCommunities;
                                View.DisplayUnsubscriptionMessage(node.GetAllNodes().Where(n => n.AllowUnsubscribe() && subscriptions.Where(s => s.IdCommunity == n.Id && s.IdRole < 1).Any()).Select(n => n.Name).ToList(),
                                                                  node.GetAllNodes().Where(n => n.AllowUnsubscribe() && subscriptions.Where(s => s.IdCommunity == n.Id && s.IdRole > 0).Any()).Select(n => n.Name).ToList()
                                                                  );
                                break;
                            }
                        }
                        View.SendUserAction(0, CurrentIdModule, idCommunity, dAction);
                        break;
                    }
                }
                else
                {
                    String name = CurrentManager.GetCommunityName(idCommunity);
                    if (!String.IsNullOrEmpty(name))
                    {
                        View.DisplayUnableToUnsubscribe(name);
                    }
                    View.SendUserAction(0, CurrentIdModule, idCommunity, ModuleDashboard.ActionType.UnableToUnsubscribe);
                }
                LoadCommunities(filters, orderBy, ascending, pageIndex, pageSize);
            }
        }
        private void LoadCommunities(litePageSettings pageSettings, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsBy orderBy, Boolean ascending, Boolean useCache, Int32 pageIndex = 0, Int32 pageSize = 0, ModuleDashboard.ActionType action = ModuleDashboard.ActionType.SearchDashboardApplyFilters)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                List <dtoSubscriptionItem> items = Service.GetCommunities(UserContext.CurrentUserID, filters, useCache);
                if (items == null)
                {
                    View.DisplayErrorFromDB();
                }
                else
                {
                    Int32 itemsCount = items.Count();

                    if (pageSettings != null)
                    {
                        View.DefaultPageSize = pageSettings.MaxItems;
                        InitializeColumns(filters);
                        pageSize             = InitializeSearchPageSize(pageSettings, itemsCount);
                        View.CurrentPageSize = pageSize;
                    }
                    if (pageSize == 0)
                    {
                        pageSize = View.CurrentPageSize;
                    }
                    PagerBase pager = new PagerBase();
                    pager.PageSize  = pageSize;
                    pager.Count     = (itemsCount > 0) ? itemsCount - 1 : 0;
                    pager.PageIndex = pageIndex;
                    View.Pager      = pager;


                    items = Service.GetCommunities(UserContext.Language.Id, items, pageIndex, pageSize, orderBy, ascending);

                    if (items != null)
                    {
                        List <Int32> withNews = View.GetIdcommunitiesWithNews(items.Where(i => i.Status != SubscriptionStatus.communityblocked && i.Status != SubscriptionStatus.blocked && i.Status != SubscriptionStatus.waiting).Select(i => i.Community.Id).ToList(), UserContext.CurrentUserID);
                        if (withNews.Any())
                        {
                            items.Where(i => withNews.Contains(i.Community.Id)).ToList().ForEach(i => i.HasNews = true);
                        }
                        Language l = CurrentManager.GetDefaultLanguage();
                        Dictionary <Int32, List <String> > tags = ServiceTags.GetCommunityAssociationToString(items.Select(i => i.Community.Id).ToList(), UserContext.Language.Id, l.Id, true);
                        if (tags.Any())
                        {
                            foreach (dtoSubscriptionItem item in items.Where(i => tags.ContainsKey(i.Community.Id)))
                            {
                                item.Community.Tags = tags[item.Community.Id];
                            }
                        }

                        View.LoadItems(items, orderBy, ascending);
                        //View.SendUserAction(0, CurrentIdModule, action);
                    }
                    else
                    {
                        View.LoadItems(new List <dtoSubscriptionItem>(), orderBy, ascending);
                    }
                }
            }
        }
 public void LoadCommunities(lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsBy orderBy, Boolean ascending, Int32 pageIndex, Int32 pageSize)
 {
     LoadCommunities(null, filters, orderBy, ascending, true, pageIndex, pageSize, ModuleDashboard.ActionType.SearchDashboardChangePageIndex);
 }
 public void ApplyFilters(litePageSettings pageSettings, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsBy orderBy, Boolean ascending)
 {
     View.CurrentFilters = filters;
     LoadCommunities(pageSettings, filters, orderBy, ascending, false, 0, View.CurrentPageSize);
 }
        private void ChangeView(DashboardViewType view, liteDashboardSettings settings, UserCurrentSettings userSettings, Dictionary <DashboardViewType, List <dtoItemFilter <OrderItemsBy> > > order, String searchBy = "", Boolean firstLoad = false)
        {
            userSettings.View    = view;
            View.CurrentSettings = userSettings;
            LoadViews(settings, userSettings);
            switch (view)
            {
            case DashboardViewType.List:
                View.InitializeLayout(GetPlainLayout(settings, userSettings.View), settings.Container.Default.GetNoticeboard(userSettings.View));
                View.InitializeCommunitiesList(settings.Pages.Where(p => p.Type == DashboardViewType.List).FirstOrDefault(), userSettings, order[view]);
                break;

            case DashboardViewType.Combined:
                if (firstLoad)
                {
                    LoadGroupBy(settings, userSettings);
                }
                View.InitializeLayout(GetPlainLayout(settings, userSettings.View), settings.Container.Default.GetNoticeboard(userSettings.View));
                View.IntializeCombinedView(settings.Pages.Where(p => p.Type == DashboardViewType.Combined).FirstOrDefault(), userSettings, order[view], settings.Id, View.PreloadIdTile);
                break;

            case DashboardViewType.Tile:
                if (firstLoad)
                {
                    LoadGroupBy(settings, userSettings);
                }
                View.InitializeLayout(GetPlainLayout(settings, userSettings.View), settings.Container.Default.GetNoticeboard(userSettings.View));
                View.IntializeTileView(0, settings.Container.Default.GetNoticeboard(userSettings.View), settings.Pages.Where(p => p.Type == DashboardViewType.Tile).FirstOrDefault(), userSettings, settings.Id);
                break;

            case DashboardViewType.Search:
                View.InitializeLayout(GetPlainLayout(settings, userSettings.View), DisplayNoticeboard.Hide);

                liteTile    tile   = null;
                long        idTile = View.PreloadIdTile;
                List <long> idTags = new List <long>();
                Int32       idType = -1;
                if (idTile > 0)
                {
                    tile = Service.GetTile(idTile);
                    if (tile != null)
                    {
                        switch (tile.Type)
                        {
                        case TileType.CommunityType:
                            if (tile.CommunityTypes != null)
                            {
                                idType = tile.CommunityTypes.FirstOrDefault();
                                idTile = -1;
                            }
                            break;

                        case TileType.CommunityTag:
                        case TileType.CombinedTags:
                            if (tile.Tags != null && tile.Tags.Any(t => t.Tag != null) && tile.Tags.Any(t => t.Deleted == BaseStatusDeleted.None))
                            {
                                idTags.AddRange(tile.Tags.Where(t => t.Tag != null && t.Deleted == BaseStatusDeleted.None).Select(t => t.Tag.Id).ToList());
                            }
                            break;
                        }
                    }
                }
                View.TagsToLoad = idTags;
                lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters = null;
                List <lm.Comol.Core.DomainModel.Filters.Filter> fToLoad = ServiceDashboard.GetDefaultFilters(UserContext.CurrentUserID, searchBy, idType, idTile, idTags, null, CommunityManagement.CommunityAvailability.Subscribed, -1).OrderBy(f => f.DisplayOrder).ToList();
                if (fToLoad != null && fToLoad.Any())
                {
                    filters = new lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters(fToLoad, CommunityManagement.CommunityAvailability.Subscribed, idType, idTile);
                    filters.IdcommunityType = idType;
                    if (!String.IsNullOrEmpty(searchBy))
                    {
                        filters.SearchBy = CommunityManagement.SearchCommunitiesBy.Contains;
                    }
                    filters.IdTile = idTile;
                    filters.IdTags = idTags;
                }
                else
                {
                    filters = new lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters();
                    filters.IdcommunityType = idType;
                    filters.SearchBy        = CommunityManagement.SearchCommunitiesBy.Contains;
                    filters.Value           = searchBy;
                    filters.Availability    = CommunityManagement.CommunityAvailability.Subscribed;
                    filters.IdOrganization  = -1;
                    filters.IdTile          = idTile;
                    filters.IdTags          = idTags;
                }
                Int32 idUserLanguage    = ((UserContext != null && UserContext.Language != null) ? UserContext.Language.Id : -2);
                Int32 idDefaultLanguage = CurrentManager.GetDefaultIdLanguage();
                View.InitializeSearchView(settings.Pages.Where(p => p.Type == DashboardViewType.Search).FirstOrDefault(), fToLoad, filters, order[DashboardViewType.Search], tile, idUserLanguage, idDefaultLanguage);
                break;
            }
        }
        private lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters RecalcDefaultFilters(lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters)
        {
            List <lm.Comol.Core.BaseModules.Dashboard.Domain.dtoCommunityForTags> communities = ServiceCommunities.GetCommunitiesForBulkTagsManage(UserContext.CurrentUserID, filters);

            if (communities != null && communities.Count == 0)
            {
                return(ServiceCommunities.GetDefaultFilters(CurrentManager.GetLitePerson(UserContext.CurrentUserID), CommunityManagement.CommunityAvailability.All, true));
            }
            else
            {
                return(filters);
            }
        }
        public void UnsubscribeFromCommunity(Int32 idCommunity, String path, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsBy orderBy, Boolean ascending, Int32 pageIndex, Int32 pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                lm.Comol.Core.BaseModules.CommunityManagement.dtoUnsubscribeTreeNode node = Service.UnsubscribeInfo(UserContext.CurrentUserID, idCommunity, path);
                if (node != null)
                {
                    ModuleDashboard.ActionType dAction = ModuleDashboard.ActionType.None;
                    List <lm.Comol.Core.BaseModules.CommunityManagement.dtoUnsubscribeTreeNode> nodes = node.GetAllNodes();
                    if (!nodes.Where(n => n.AllowUnsubscribe()).Any())
                    {
                        View.DisplayUnableToUnsubscribe(CurrentManager.GetCommunityName(idCommunity));
                        dAction = ModuleDashboard.ActionType.UnableToUnsubscribeFromCommunity;
                    }
                    else
                    {
                        List <RemoveAction> actions = new List <RemoveAction>();
                        actions.Add(RemoveAction.None);
                        actions.Add(RemoveAction.FromCommunity);
                        if (nodes.Where(n => n.AllowUnsubscribe()).Count() > 1)
                        {
                            actions.Add(RemoveAction.FromAllSubCommunities);
                        }

                        if (node == null)
                        {
                            View.DisplayUnableToUnsubscribe(CurrentManager.GetCommunityName(idCommunity));
                            dAction = ModuleDashboard.ActionType.UnableToUnsubscribeFromCommunity;
                        }
                        else if (!node.AllowUnsubscribe())
                        {
                            View.DisplayUnsubscribeNotAllowed(node.Name);
                            dAction = ModuleDashboard.ActionType.UnsubscribeNotallowed;
                        }
                        else if (node.AllowUnsubscribe() && (!node.CommunityAllowSubscription || node.MaxUsersWithDefaultRole > 0 || (node.CommunitySubscriptionEndOn.HasValue && DateTime.Now.AddDays(30) > node.CommunitySubscriptionEndOn.Value)))
                        {
                            View.DisplayConfirmMessage(idCommunity, path, node, actions, RemoveAction.None, nodes.Where(n => n.AllowUnsubscribe() && n.Id != idCommunity).ToList());
                            dAction = ModuleDashboard.ActionType.RequireUnsubscribeConfirm;
                        }
                        else
                        {
                            if (nodes.Where(n => n.AllowUnsubscribe()).Count() > 1)
                            {
                                View.DisplayConfirmMessage(idCommunity, path, node, actions, RemoveAction.FromCommunity, nodes.Where(n => n.AllowUnsubscribe() && n.Id != idCommunity).ToList());
                                dAction = ModuleDashboard.ActionType.RequireUnsubscribeConfirmFromSubCommunities;
                            }
                            else
                            {
                                List <liteSubscriptionInfo> subscriptions = Service.UnsubscribeFromCommunity(UserContext.CurrentUserID, node, RemoveAction.FromCommunity);
                                if (subscriptions != null && subscriptions.Any() && subscriptions.Count == 1 && subscriptions[0].IdRole < 1)
                                {
                                    View.DisplayUnsubscribedFrom(node.Name);
                                    dAction = ModuleDashboard.ActionType.UnsubscribeFromCommunity;
                                }
                                else
                                {
                                    View.DisplayUnableToUnsubscribe(node.Name);
                                    dAction = ModuleDashboard.ActionType.UnableToUnsubscribeFromCommunity;
                                }
                            }
                        }
                    }
                    View.SendUserAction(0, CurrentIdModule, idCommunity, dAction);
                }
                else
                {
                    String name = CurrentManager.GetCommunityName(idCommunity);
                    if (!String.IsNullOrEmpty(name))
                    {
                        View.DisplayUnableToUnsubscribe(CurrentManager.GetCommunityName(idCommunity));
                    }
                    View.SendUserAction(0, CurrentIdModule, idCommunity, ModuleDashboard.ActionType.UnableToUnsubscribe);
                }
                LoadCommunities(filters, orderBy, ascending, pageIndex, pageSize);
            }
        }
        public void InitView(Int32 pageSize, Int32 idOrganization = 0, Boolean assigned = false, Boolean fromPortal = true, Boolean fromPage = false, String url = "")
        {
            litePerson p = CurrentManager.GetLitePerson(UserContext.CurrentUserID);

            if (UserContext.isAnonymous || p == null)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Int32 idCommunity = 0;
                lm.Comol.Core.DomainModel.Domain.ModuleCommunityManagement permissions = null;
                if (!fromPortal)
                {
                    if (idOrganization > 0)
                    {
                        idCommunity = CurrentManager.GetIdCommunityFromOrganization(idOrganization);
                    }
                    if (idCommunity == 0)
                    {
                        idCommunity    = UserContext.CurrentCommunityID;
                        idOrganization = CurrentManager.GetIdOrganizationFromCommunity(idCommunity);
                    }
                    if (idOrganization == 0)
                    {
                        idOrganization = CurrentManager.GetUserDefaultIdOrganization(UserContext.CurrentUserID);
                        idCommunity    = CurrentManager.GetIdCommunityFromOrganization(idOrganization);
                    }
                    permissions = new DomainModel.Domain.ModuleCommunityManagement(CurrentManager.GetModulePermission(UserContext.CurrentUserID, idCommunity, lm.Comol.Core.DomainModel.Domain.ModuleCommunityManagement.UniqueID));
                }
                else
                {
                    permissions = DomainModel.Domain.ModuleCommunityManagement.CreatePortalmodule(p.TypeID);
                }
                View.CurrentIdOrganization = idOrganization;
                View.CurrentIdCommunity    = idCommunity;
                View.CurrentAssignedTags   = new List <dtoBulkCommunityForTags>();
                if (!String.IsNullOrEmpty(url) && fromPage)
                {
                    View.SetBackUrl(url);
                }
                if (permissions.Administration || permissions.Manage)
                {
                    View.AllowSave = true;
                    List <lm.Comol.Core.DomainModel.Filters.Filter> fToLoad = ServiceCommunities.GetDefaultFiltersForAssignments(p.Id, "", -1, null, lm.Comol.Core.BaseModules.CommunityManagement.CommunityAvailability.All, assigned).OrderBy(f => f.DisplayOrder).ToList();

                    View.LoadDefaultFilters(fToLoad);
                    if (fToLoad != null && fToLoad.Any())
                    {
                        lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters = new lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters(fToLoad, CommunityManagement.CommunityAvailability.All);

                        View.CurrentFilters = filters;
                        LoadCommunities(idCommunity, filters, 0, pageSize, ModuleTags.ActionType.BulkTagsAssignLoad, true);
                    }
                    else
                    {
                        View.DisplayNoCommunitiesToLoad();
                        View.SendUserAction(idCommunity, CurrentIdModule, ModuleTags.ActionType.BulkTagsNoCommunitiesFound);
                    }
                }
                else
                {
                    View.SendUserAction(idCommunity, CurrentIdModule, ModuleTags.ActionType.NoPermissionForBulkTagsAssign);
                }
            }
        }
Esempio n. 17
0
        private void InitializeView(liteDashboardSettings settings, UserCurrentSettings userSettings, DisplaySearchItems search, String searchText, Boolean forSubscription = false)
        {
            List <dtoItemFilter <OrderItemsBy> > items = GetOrderByItems(settings, userSettings);
            Int32       idType = View.PreloadIdCommunityType;
            List <long> idTags = new List <long>();
            long        idTile = View.PreloadIdTile;

            View.EnableFullWidth((settings == null) ? false : settings.FullWidth);
            View.InitalizeTopBar(settings, userSettings, searchText);
            liteTile tile = null;

            if (idTile > 0)
            {
                tile = Service.GetTile(idTile);
                if (tile != null)
                {
                    switch (tile.Type)
                    {
                    case TileType.CommunityType:
                        if (tile.CommunityTypes != null)
                        {
                            idType = tile.CommunityTypes.FirstOrDefault();
                            idTile = -1;
                        }
                        break;

                    case TileType.CommunityTag:
                    case TileType.CombinedTags:
                        if (tile.Tags != null && tile.Tags.Any(t => t.Tag != null) && tile.Tags.Any(t => t.Deleted == BaseStatusDeleted.None))
                        {
                            idTags.AddRange(tile.Tags.Where(t => t.Tag != null && t.Deleted == BaseStatusDeleted.None).Select(t => t.Tag.Id).ToList());
                        }
                        break;
                    }
                }
            }
            View.TagsToLoad = idTags;
            Int32 idUserLanguage    = ((UserContext != null && UserContext.Language != null) ? UserContext.Language.Id : -2);
            Int32 idDefaultLanguage = CurrentManager.GetDefaultIdLanguage();

            List <lm.Comol.Core.DomainModel.Filters.Filter> fToLoad = ServiceCommunities.GetDefaultFilters(UserContext.CurrentUserID, searchText, idType, idTile, idTags, null, CommunityManagement.CommunityAvailability.Subscribed, -1).OrderBy(f => f.DisplayOrder).ToList();

            View.LoadDefaultFilters(fToLoad);
            if (fToLoad != null && fToLoad.Any())
            {
                lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters = new lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters(fToLoad, CommunityManagement.CommunityAvailability.Subscribed, idType, idTile);
                filters.IdcommunityType = idType;
                if (!String.IsNullOrEmpty(searchText))
                {
                    filters.SearchBy = CommunityManagement.SearchCommunitiesBy.Contains;
                }

                if (filters.IdcommunityType > -1)
                {
                    tile = Service.GetTileForCommunityType(filters.IdcommunityType);
                }
                else if (idTags.Any() && idTile > 0)
                {
                    filters.IdTags = idTags;
                }
                View.InitializeCommunitiesList(settings.Pages.Where(p => p.Type == DashboardViewType.Search).FirstOrDefault(), filters, items, tile, idUserLanguage, idDefaultLanguage);
            }
            else
            {
                if (idType > -1)
                {
                    tile = Service.GetTileForCommunityType(idType);
                }
                View.InitializeCommunitiesList(settings.Pages.Where(p => p.Type == DashboardViewType.Search).FirstOrDefault(), items, tile, idUserLanguage, idDefaultLanguage);
            }

            View.SendUserAction(0, CurrentIdModule, settings.Id, (search == DisplaySearchItems.Advanced) ? ModuleDashboard.ActionType.SearchAdvancedDashboardLoad : ModuleDashboard.ActionType.SearchSimpleDashboardLoad);
        }