Ejemplo n.º 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());
        }
Ejemplo n.º 2
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>());
                    }
                }
            }
        }