示例#1
0
        //private List<dtoTreeCommunityNode> RetrieveItems()
        //{


        //    //if (filters == null)
        //    //    filters = View.GetCurrentFilters;
        //    //litePerson person = CurrentManager.GetLitePerson(View.IdProfile);
        //    //dtoTreeCommunityNode tree = Service.GetAllCommunitiesTree(person);
        //    //List<dtoTreeCommunityNode> nodes = GetAvailableNodes(tree.Filter(filters, 0).GetAllNodes(), View.ExcludeCommunities, View.OnlyFromOrganizations, View.RequiredPermissions);
        //    //// TO CHECK !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        //    //nodes = nodes.Where(n => n.Type != dtoCommunityNodeType.NotSelectable && (n.IdOrganization == filters.IdOrganization || (filters.IdOrganization == -1 && !filters.OnlyFromAvailableOrganizations) || (filters.OnlyFromAvailableOrganizations && filters.AvailableIdOrganizations.Contains(n.IdOrganization)))).ToList();
        //    //return nodes;
        //    return new List<dtoTreeCommunityNode>();
        //}



        public List <dtoCommunityPlainItem> GetSelectedCommunities(List <Int32> idCommunities, List <Int32> unloadIdCommunities, Int32 idProfile)
        {
            List <Int32> selectedItems = View.SelectedIdCommunities;
            Dictionary <Boolean, List <Int32> > selections = View.GetCurrentSelection();

            selectedItems = selectedItems.Except(selections[false]).ToList();
            selectedItems.AddRange(selections[true]);

            lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters = new dtoCommunitiesFilters();
            filters.IdcommunityType     = -1;
            filters.IdOrganization      = -1;
            filters.IdCourseTime        = -1;
            filters.IdDegreeType        = -1;
            filters.Year                = -1;
            filters.RequiredPermissions = View.RequiredPermissions.Select(r => new dtoModulePermission()
            {
                IdModule = r.Key, Permissions = r.Value
            }).ToList();
            filters.Availability             = View.CurrentAvailability;
            filters.AvailableIdOrganizations = View.OnlyFromOrganizations;

            List <dtoCommunityPlainItem> items = ServiceCommunities.GetPlainCommunities(idProfile, filters, unloadIdCommunities, true);

            return(items.Where(i => selectedItems.Contains(i.Community.Id)).ToList());
        }
示例#2
0
        private void InitializeView(Boolean forAdministration, Int32 idProfile, List <Int32> unloadIdCommunities, CommunityAvailability availability, List <Int32> onlyFromOrganizations, Dictionary <Int32, long> requiredPermissions = null)
        {
            View.IdProfile = idProfile;
            litePerson currentUser = CurrentManager.GetLitePerson(UserContext.CurrentUserID);
            litePerson person      = CurrentManager.GetLitePerson(idProfile);

            View.OnlyFromOrganizations = onlyFromOrganizations;
            View.SelectedIdCommunities = new List <int>();
            View.CurrentAvailability   = availability;
            View.ExcludeCommunities    = unloadIdCommunities;
            List <lm.Comol.Core.DomainModel.Filters.Filter> fToLoad = ServiceCommunities.GetDefaultFilters(idProfile, "", -1, -1, null, null, availability, -2, unloadIdCommunities, onlyFromOrganizations, requiredPermissions).OrderBy(f => f.DisplayOrder).ToList();

            View.LoadDefaultFilters(fToLoad, requiredPermissions, unloadIdCommunities, availability, onlyFromOrganizations);
            if (fToLoad != null && fToLoad.Any())
            {
                dtoCommunitiesFilters filters = new lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters(fToLoad, availability);
                filters.AvailableIdOrganizations       = onlyFromOrganizations;
                filters.OnlyFromAvailableOrganizations = (onlyFromOrganizations != null && onlyFromOrganizations.Any());
                filters.RequiredPermissions            = (requiredPermissions == null)? new List <dtoModulePermission>() : requiredPermissions.Select(r => new dtoModulePermission()
                {
                    IdModule = r.Key, Permissions = r.Value
                }).ToList();
                LoadCommunities(idProfile, filters, unloadIdCommunities, 0, View.CurrentPageSize, false);
                View.HasAvailableCommunities = true;
            }
            else
            {
                View.LoadNothing();
            }
        }
示例#3
0
        public void LoadCommunities(Int32 idProfile, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, List <Int32> unloadIdCommunities, Int32 pageIndex, Int32 pageSize, Boolean useCache = true)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                List <Int32> selectedItems = View.SelectedIdCommunities;
                Dictionary <Boolean, List <Int32> > selections = View.GetCurrentSelection();
                selectedItems = selectedItems.Except(selections[false]).ToList();
                selectedItems.AddRange(selections[true]);

                View.SelectedIdCommunities = selectedItems.Distinct().ToList();
                View.SearchFilters         = filters;
                List <dtoCommunityPlainItem> items = ServiceCommunities.GetPlainCommunities(idProfile, filters, unloadIdCommunities, useCache);
                if (items == null)
                {
                    View.LoadNothing();
                }
                else
                {
                    Int32     itemsCount = items.Count();
                    PagerBase pager      = new PagerBase();
                    pager.PageSize  = pageSize;
                    pager.Count     = (itemsCount > 0) ? itemsCount - 1 : 0;
                    pager.PageIndex = pageIndex;
                    View.Pager      = pager;


                    items = ServiceCommunities.GetCommunities(items, pageIndex, pageSize, Core.Dashboard.Domain.OrderItemsBy.Name, true);

                    if (items != null)
                    {
                        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 (dtoCommunityPlainItem item in items.Where(i => tags.ContainsKey(i.Community.Id)))
                            {
                                item.Community.Tags = tags[item.Community.Id];
                            }
                        }
                        View.LoadItems(items);
                    }
                    else
                    {
                        View.LoadItems(new List <dtoCommunityPlainItem>());
                    }
                }
            }
        }
        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 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);
                }
            }
        }
        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 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();
            }
        }
示例#8
0
 public void InitViewForCommunityToAdd(Int32 idFatherCommunity, Int32 idCommunityType)
 {
     InitializeView(0, ServiceCommunities.GetAllAvailableOrganizations(idFatherCommunity), idCommunityType);
 }
示例#9
0
 public void InitViewForCommunity(Int32 idCommunity)
 {
     InitializeView(idCommunity, ServiceCommunities.GetAllAvailableOrganizations(idCommunity));
 }
示例#10
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);
        }