Пример #1
0
        private void LoadSettings(ModuleDashboard permissions, DashboardType type, Int32 idCommunity, Boolean loadFromRecycleBin, OrderSettingsBy orderBy = OrderSettingsBy.Default, Boolean ascending = true)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                List <dtoDashboardSettings> items = Service.DashboardGetSettings(permissions, type, View.GetUnknownUserName(), View.GetTranslatedStatus(), idCommunity, loadFromRecycleBin, orderBy, ascending);
                if (items == null)
                {
                    View.DisplayErrorLoadingFromDB();
                }
                else
                {
                    //if (items.Count == 1)
                    //    items[0].Permissions.AllowSetUnavailable = items[0].Permissions.AllowSetUnavailable && !(items[0].Active && items[0].ForAll);
                    //else if (items.Where())
                    ModuleDashboard.ActionType action = ModuleDashboard.ActionType.DashboardSettingsPortalList;
                    switch (type)
                    {
                    case DashboardType.AllCommunities:
                        action = ModuleDashboard.ActionType.DashboardSettingsAllCommunitiesList;
                        break;

                    case DashboardType.Community:
                        action = ModuleDashboard.ActionType.DashboardSettingsCommunityList;
                        break;
                    }
                    View.LoadSettings(items);
                    View.SendUserAction(idCommunity, CurrentIdModule, action);
                }
            }
        }
Пример #2
0
 public void GenerateCommunityTypeTiles(WizardDashboardStep step, long idDashboard, Int32 idDashboardCommunity)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = ModuleDashboard.ActionType.TileAutoGenerateForCommunityTypes;
         Int32 count = ServiceTiles.GetCommunityTypesWithoutTilesCount();
         if (count == 0)
         {
             action = ModuleDashboard.ActionType.TileAlreadyGeneratedForCommunityTypes;
         }
         else
         {
             List <Tile> tiles = ServiceTiles.GenerateCommunityTypesTile();
             if (tiles == null || tiles.Count != count)
             {
                 action = ModuleDashboard.ActionType.TileUnableAutoGenerateForCommunityTypes;
                 View.LoadWizardSteps(Service.GetAvailableSteps(step, idDashboard, View.DashboardType, idDashboardCommunity));
             }
         }
         View.DisplayMessage(action);
         View.SendUserAction(0, CurrentIdModule, action);
         LoadTiles(step, idDashboard, idDashboardCommunity);
     }
 }
 public void InitView(Boolean advancedMode, lm.Comol.Core.BaseModules.CommunityManagement.CommunityAvailability availability = CommunityManagement.CommunityAvailability.Subscribed, Int32 idReferenceCommunity = 0, String referencePath = "")
 {
     View.AdvancedMode         = advancedMode;
     View.ReferenceIdCommunity = idReferenceCommunity;
     View.IsFirstLoad          = true;
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = (idReferenceCommunity > 0) ? ModuleDashboard.ActionType.TreeNoChildrenToLoad : ModuleDashboard.ActionType.TreeUnableToLoad;
         List <lm.Comol.Core.DomainModel.Filters.Filter> fToLoad = null;
         switch (availability)
         {
         case CommunityManagement.CommunityAvailability.Subscribed:
             fToLoad = Service.GetDefaultFilters(UserContext.CurrentUserID, "", -1, -1, null, null, availability).OrderBy(f => f.DisplayOrder).ToList();
             View.LoadDefaultFilters(fToLoad);
             break;
         }
         if (fToLoad != null && fToLoad.Any())
         {
             lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters = new lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters(fToLoad, availability);
             View.CurrentFilters = filters;
             action = (idReferenceCommunity > 0) ? ModuleDashboard.ActionType.TreeLoadChildren : ModuleDashboard.ActionType.TreeLoad;
             LoadTree(filters, advancedMode, idReferenceCommunity, false);
         }
         else
         {
             View.DisplayNoTreeToLoad((idReferenceCommunity > 0) ? CurrentManager.GetCommunityName(idReferenceCommunity) : "");
         }
         View.SendUserAction(idReferenceCommunity, CurrentIdModule, action);
     }
 }
Пример #4
0
 public void VirtualDelete(long idDashboard, Boolean delete, DashboardType type, Int32 idCommunity, Boolean loadFromRecycleBin, OrderSettingsBy orderBy, Boolean ascending)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = (delete) ? ModuleDashboard.ActionType.DashboardSettingsVirtualDelete : ModuleDashboard.ActionType.DashboardSettingsVirtualUndelete;
         try
         {
             DashboardSettings item = Service.DashboardSettingsVirtualDelete(idDashboard, delete);
             if (item == null)
             {
                 action = (delete) ? ModuleDashboard.ActionType.DashboardSettingsUnableToVirtualDelete : ModuleDashboard.ActionType.DashboardSettingsUnableToUndelete;
             }
             View.DisplayMessage(action);
             View.SendUserAction(idCommunity, CurrentIdModule, idDashboard, action);
         }
         catch (DashboardException ex)
         {
             action = (delete) ? ModuleDashboard.ActionType.DashboardSettingsUnableToVirtualDelete : ModuleDashboard.ActionType.DashboardSettingsUnableToUndelete;
             View.SendUserAction(idCommunity, CurrentIdModule, idDashboard, action);
             View.DisplayMessage(ex.ErrorType);
         }
         LoadSettings(type, idCommunity, loadFromRecycleBin, orderBy, ascending);
     }
 }
Пример #5
0
        public void SetStatus(long idDashboard, AvailableStatus status, DashboardType type, Int32 idCommunity, Boolean loadFromRecycleBin, OrderSettingsBy orderBy, Boolean ascending)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                ModuleDashboard.ActionType action = (status == AvailableStatus.Available) ? ModuleDashboard.ActionType.DashboardSettingsEnable : ModuleDashboard.ActionType.DashboardSettingsDisable;
                try
                {
                    DashboardSettings item = Service.DashboardSettingsSetStatus(idDashboard, status);
                    if (item == null || item.Status != status)
                    {
                        action = (status == AvailableStatus.Available) ? ModuleDashboard.ActionType.DashboardSettingsUnableToEnable : ModuleDashboard.ActionType.DashboardSettingsUnableToDisable;
                    }
                    View.DisplayMessage(action);
                    View.SendUserAction(idCommunity, CurrentIdModule, idDashboard, action);
                }
                catch (DashboardException ex) {
                    action = (status == AvailableStatus.Available) ? ModuleDashboard.ActionType.DashboardSettingsUnableToEnable : ModuleDashboard.ActionType.DashboardSettingsUnableToDisable;
                    View.SendUserAction(idCommunity, CurrentIdModule, idDashboard, action);
                    View.DisplayMessage(ex.ErrorType);
                }

                LoadSettings(type, idCommunity, loadFromRecycleBin, orderBy, ascending);
            }
        }
Пример #6
0
 public void InitView(Boolean advanced, Int32 idCommunity = 0, Boolean fromPage = false, String url = "", Boolean fromSession = false)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = (idCommunity == 0) ? ModuleDashboard.ActionType.TreePageLoading : ModuleDashboard.ActionType.TreePageLoadingFromCommunity;
         if (fromSession && idCommunity == 0)
         {
             idCommunity = UserContext.CurrentCommunityID;
         }
         View.DashboardIdCommunity = idCommunity;
         String name = (idCommunity > 0) ? CurrentManager.GetCommunityName(idCommunity) : "";
         if (idCommunity > 0 && String.IsNullOrEmpty(name))
         {
             View.DisplayUnknownCommunity();
             View.SendUserAction(UserContext.CurrentCommunityID, CurrentIdModule, idCommunity, ModuleDashboard.ActionType.TreePageLoadingFromUnknownCommunity);
         }
         else
         {
             View.SetTitle(name);
             View.LoadTree(advanced, idCommunity);
             View.SendUserAction(UserContext.CurrentCommunityID, CurrentIdModule, idCommunity, action);
         }
     }
 }
Пример #7
0
 public void SaveOrder(WizardDashboardStep step, long idDashboard, Int32 idDashboardCommunity, List <dtoTileForReorder> tiles)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = ModuleDashboard.ActionType.DashboardSettingsTilesOrderUnableToSave;
         try
         {
             if (Service.DashboardTilesSaveOrder(idDashboard, tiles))
             {
                 action = ModuleDashboard.ActionType.DashboardSettingsTilesOrderSaved;
                 View.LoadWizardSteps(Service.GetAvailableSteps(step, idDashboard, View.DashboardType, idDashboardCommunity));
             }
             View.DisplayMessage(action);
         }
         catch (DashboardException ex)
         {
             View.DisplayMessage(ex.ErrorType);
         }
         LoadTiles(step, idDashboard, idDashboardCommunity);
         View.SendUserAction(idDashboardCommunity, CurrentIdModule, idDashboard, action);
     }
 }
Пример #8
0
 public void SaveSettings(dtoBaseDashboardSettings dto)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         String url = "";
         ModuleDashboard.ActionType action   = (dto.Id == 0) ? ModuleDashboard.ActionType.DashboardSettingsUnableToAdd : ModuleDashboard.ActionType.DashboardSettingsUnableToSave;
         DashboardSettings          settings = (dto.Id > 0) ? CurrentManager.Get <DashboardSettings>(dto.Id) : null;
         if (dto.Id > 0 && settings == null)
         {
             View.DisplayDeletedDashboard();
             View.SendUserAction(dto.IdCommunity, CurrentIdModule, dto.Id, action);
             lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(CacheKeys.AllDashboard);
             return;
         }
         else if (settings != null && settings.Active && !dto.ForAll && dto.Assignments.Count == 0)
         {
             View.DisplayMessage(DashboardErrorType.NoAssignmentsForActiveSettings);
         }
         else
         {
             try
             {
                 DashboardSettings item = Service.SaveBaseSettings(dto);
                 if (item != null)
                 {
                     action = (dto.Id > 0) ? ModuleDashboard.ActionType.DashboardSettingsSaved : ModuleDashboard.ActionType.DashboardSettingsAdded;
                     if (action == ModuleDashboard.ActionType.DashboardSettingsAdded)
                     {
                         url = RootObject.DashboardEdit(item.Id, item.Type, dto.IdCommunity, true);
                     }
                     else
                     {
                         View.EnableSelector(!item.ForAll);
                     }
                 }
                 View.DisplayMessage(action);
                 lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(CacheKeys.AllDashboard);
             }
             catch (DashboardException ex)
             {
                 View.DisplayMessage(ex.ErrorType);
             }
         }
         View.SendUserAction(dto.IdCommunity, CurrentIdModule, dto.Id, action);
         if (!String.IsNullOrEmpty(url))
         {
             View.RedirectToUrl(url);
         }
         else if (action == ModuleDashboard.ActionType.DashboardSettingsSaved)
         {
             View.LoadWizardSteps(Service.GetAvailableSteps(WizardDashboardStep.Settings, settings.Id, settings.Type, View.IdContainerCommunity));
         }
     }
 }
        public void EnrollTo(Int32 idCommunity, String name, String path, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters)
        {
            Int32 idPerson = UserContext.CurrentUserID;

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Boolean reloadCommunities          = false;
                ModuleDashboard.ActionType dAction = ModuleDashboard.ActionType.None;
                dtoCommunityInfoForEnroll  item    = Service.GetEnrollingItem(idPerson, idCommunity, path);
                litePerson person = CurrentManager.GetLitePerson(idPerson);
                if (item != null && item.Id > 0 && person != null && person.Id > 0)
                {
                    if (!item.AllowEnroll)
                    {
                        dAction = ModuleDashboard.ActionType.EnrollNotAllowed;
                        View.DisplayEnrollMessage(item, dAction);
                    }
                    else
                    {
                        if (!item.HasConstraints && item.AllowUnsubscribe)
                        {
                            dtoEnrollment enrollment = Service.EnrollTo(idPerson, item);
                            if (enrollment == null)
                            {
                                dAction = ModuleDashboard.ActionType.UnableToEnroll;
                                View.DisplayEnrollMessage(item, dAction);
                            }
                            else
                            {
                                View.DisplayEnrollMessage(enrollment, enrollment.IdCommunity, person, Service.GetTranslatedProfileType(person), CurrentManager.GetUserDefaultOrganizationName(idPerson));
                                reloadCommunities = true;
                                dAction           = (enrollment.Status == EnrolledStatus.NeedConfirm) ? ModuleDashboard.ActionType.EnrollToCommunityWaitingConfirm : ModuleDashboard.ActionType.EnrollToCommunity;
                                lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(lm.Comol.Core.BaseModules.CommunityManagement.Domain.CacheKeys.UserCommunitiesTree(idPerson));
                            }
                        }
                        else
                        {
                            dAction = ModuleDashboard.ActionType.RequireEnrollConfirm;
                            View.DisplayConfirmMessage(item);
                        }
                    }
                }
                else
                {
                    dAction = ModuleDashboard.ActionType.UnableToEnroll;
                    View.DisplayUnknownCommunity(name);
                }
                View.SendUserAction(0, CurrentIdModule, idCommunity, dAction);
                if (reloadCommunities)
                {
                    LoadTree(filters, View.AdvancedMode, View.ReferenceIdCommunity, false);
                }
            }
        }
Пример #10
0
        public void SaveViews(long idDashboard, dtoViewSettings dto)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                ModuleDashboard.ActionType action = ModuleDashboard.ActionType.DashboardSettingsViewsUnableToSave;
                if (dto.Pages.Count > 0 && dto.Pages.Where(p => p.Type != DashboardViewType.Combined && p.Type != DashboardViewType.Tile && !p.Range.IsValid(p.MaxItems)).Any())
                {
                    View.DisplayRangeError(dto, dto.Pages.Where(p => p.Type != DashboardViewType.Combined && p.Type != DashboardViewType.Tile && !p.Range.IsValid(p.MaxItems)).Select(p => p).ToList());
                }
                else if (!dto.Pages.Where(p => p.Type != DashboardViewType.Search && p.Type != DashboardViewType.Subscribe).Any())
                {
                    View.DisplayNoPageError();
                }
                else if (dto.Pages.Where(p => p.Type == DashboardViewType.Tile).Any() && dto.Pages.Where(p => p.Type == DashboardViewType.Tile && !dto.Pages.Where(d => d.Type == p.TileRedirectOn).Any()).Any())
                {
                    View.DisplayTileUnableToRedirectOn();
                }
                else
                {
                    DashboardSettings settings = CurrentManager.Get <DashboardSettings>(idDashboard);
                    if (settings == null)
                    {
                        View.DisplayDeletedDashboard();
                        View.SendUserAction(View.IdContainerCommunity, CurrentIdModule, idDashboard, action);
                        return;
                    }
                    else
                    {
                        try
                        {
                            DashboardSettings item = Service.SaveViewSettings(settings, dto);
                            if (item != null)
                            {
                                action = ModuleDashboard.ActionType.DashboardSettingsViewsSaved;
                                View.LoadWizardSteps(Service.GetAvailableSteps(WizardDashboardStep.HomepageSettings, idDashboard, item.Type, View.IdContainerCommunity));
                            }

                            //Per aggiornare gli switch...
                            InitView(View.PreloadIdDashboard, View.DashboardType, View.IdContainerCommunity, false);

                            View.DisplayMessage(action);
                        }
                        catch (DashboardException ex)
                        {
                            View.DisplayMessage(ex.ErrorType);
                        }
                    }
                }
                View.SendUserAction(View.IdContainerCommunity, CurrentIdModule, idDashboard, action);
            }
        }
Пример #11
0
 public void Save(long idTile, dtoEditTile item, String cssFile, String imagesFolder)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = action = (idTile > 0) ? ModuleDashboard.ActionType.TileUnableToAdd : ModuleDashboard.ActionType.TileUnableToSave;
         if (item.Type == TileType.CombinedTags && item.IdTags.Count < 2)
         {
             View.DisplayMessage(View.IdTileCommunity, Service.ServiceModuleID(), idTile, action, ErrorMessageType.MissingTags);
         }
         else
         {
             Tile tile = null;
             try
             {
                 tile = Service.SaveTile(item);
                 if (tile != null)
                 {
                     action = (idTile > 0) ? ModuleDashboard.ActionType.TileSaved : ModuleDashboard.ActionType.TileAdded;
                 }
                 if (action == ModuleDashboard.ActionType.TileAdded)
                 {
                     View.RedirectToEdit(View.IdTileCommunity, Service.ServiceModuleID(), tile.Id, action);
                 }
                 else
                 {
                     View.DisplayMessage(View.IdTileCommunity, Service.ServiceModuleID(), idTile, action);
                 }
                 if (tile != null)
                 {
                     View.LoadCssAndImages(ExtractIconsCss(cssFile, tile.ImageCssClass), ExtractTileImages(imagesFolder, tile.ImageUrl), true);
                 }
             }
             catch (TileException ex)
             {
                 View.DisplayMessage(View.IdTileCommunity, Service.ServiceModuleID(), idTile, action, ex.ErrorType);
             }
             catch (Exception ex)
             {
                 View.DisplayMessage(View.IdTileCommunity, Service.ServiceModuleID(), idTile, action);
             }
         }
     }
 }
Пример #12
0
 public void VirtualDelete(long idTile, Boolean delete)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = (delete) ? ModuleDashboard.ActionType.TileVirtualDelete : ModuleDashboard.ActionType.TileVirtualUndelete;
         Tile item = Service.TileVirtualDelete(idTile, delete);
         if (item == null)
         {
             action = (delete) ? ModuleDashboard.ActionType.TileUnableToVirtualDelete : ModuleDashboard.ActionType.TileUnableToUndelete;
         }
         View.DisplayMessage(View.IdTileCommunity, Service.ServiceModuleID(), idTile, action);
         View.UpdateStatus(item.Deleted, item.Status);
     }
 }
Пример #13
0
 public void SetStatus(long idTile, AvailableStatus status, dtoFilters filters, Int32 idCommunity, Int32 pageIndex, Int32 pageSize)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = (status == AvailableStatus.Available) ? ModuleDashboard.ActionType.TileEnable : ModuleDashboard.ActionType.TileDisable;
         Tile item = Service.TileSetStatus(idTile, status);
         if (item == null || item.Status != status)
         {
             action = (status == AvailableStatus.Available) ? ModuleDashboard.ActionType.TileUnableToEnable : ModuleDashboard.ActionType.TileUnableToDisable;
         }
         View.DisplayMessage(action);
         View.SendUserAction((filters.DashboardType == DashboardType.Community) ? idCommunity : 0, CurrentIdModule, idTile, action);
         LoadTiles(filters, idCommunity, 0, pageSize);
     }
 }
Пример #14
0
 public void VirtualDelete(long idTile, Boolean delete, dtoFilters filters, Int32 idCommunity, Int32 pageIndex, Int32 pageSize)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = (delete) ? ModuleDashboard.ActionType.TileVirtualDelete : ModuleDashboard.ActionType.TileVirtualUndelete;
         Tile item = Service.TileVirtualDelete(idTile, delete);
         if (item == null)
         {
             action = (delete) ? ModuleDashboard.ActionType.TileUnableToVirtualDelete : ModuleDashboard.ActionType.TileUnableToUndelete;
         }
         View.DisplayMessage(action);
         View.SendUserAction((filters.DashboardType == DashboardType.Community) ? idCommunity : 0, CurrentIdModule, idTile, action);
         LoadTiles(filters, idCommunity, 0, pageSize);
     }
 }
Пример #15
0
 public void Clone(long idDashboard, String cloneOf, DashboardType type, Int32 idCommunity, Boolean loadFromRecycleBin, OrderSettingsBy orderBy, Boolean ascending)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = ModuleDashboard.ActionType.DashboardSettingsClone;
         DashboardSettings          item   = Service.DashboardSettingsClone(idDashboard, cloneOf);
         if (item == null)
         {
             action = ModuleDashboard.ActionType.DashboardSettingsUnableToClone;
         }
         View.DisplayMessage(action);
         View.SendUserAction(idCommunity, CurrentIdModule, idDashboard, action);
         LoadSettings(type, idCommunity, loadFromRecycleBin, orderBy, ascending);
     }
 }
Пример #16
0
 public void SetStatus(long idTile, AvailableStatus status)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = (status == AvailableStatus.Available) ? ModuleDashboard.ActionType.TileEnable : ModuleDashboard.ActionType.TileDisable;
         Tile item = Service.TileSetStatus(idTile, status);
         if (item == null || item.Status != status)
         {
             action = (status == AvailableStatus.Available) ? ModuleDashboard.ActionType.TileUnableToEnable : ModuleDashboard.ActionType.TileUnableToDisable;
         }
         View.DisplayMessage(View.IdTileCommunity, Service.ServiceModuleID(), idTile, action);
         if (item != null)
         {
             View.UpdateStatus(item.Deleted, item.Status);
         }
     }
 }
Пример #17
0
 public void UploadTileImage(String path, String sourcefile, String extension)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleDashboard.ActionType action = ModuleDashboard.ActionType.TileImageNotUploaded;
         System.Guid uniqueId = System.Guid.NewGuid();
         if (!lm.Comol.Core.File.Exists.Directory(path))
         {
             lm.Comol.Core.File.Create.Directory(path);
         }
         if (lm.Comol.Core.File.Create.CopyFile(sourcefile, path + uniqueId.ToString() + extension))
         {
             action = ModuleDashboard.ActionType.TileImageUploaded;
             View.LoadImages(ExtractTileImages(path, uniqueId.ToString() + extension));
             lm.Comol.Core.File.Delete.File(sourcefile);
         }
         View.DisplayMessage(View.IdTileCommunity, Service.ServiceModuleID(), View.IdTile, action);
     }
 }
Пример #18
0
        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);
            }
        }
Пример #19
0
        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);
            }
        }
Пример #20
0
        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 EnrollTo(List <dtoCommunityToEnroll> sCommunities, Boolean applyToAll, Int32 itemsForPage, RangeSettings range, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsToSubscribeBy orderBy, Boolean ascending, Int32 pageIndex)
        {
            Int32 idPerson = UserContext.CurrentUserID;

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                ModuleDashboard.ActionType dAction = ModuleDashboard.ActionType.None;
                Boolean reloadCommunities          = false;

                List <dtoCommunityToEnroll> cCommunities = View.CurrentSelectedItems;
                if (sCommunities.Where(i => !i.Selected).Any())
                {
                    cCommunities = cCommunities.Where(c => !sCommunities.Where(s => s.Id == c.Id).Any() || sCommunities.Where(s => s.Selected && s.Id == c.Id).Any()).ToList();
                }
                if (sCommunities.Where(i => i.Selected).Any())
                {
                    List <Int32> idCommunities = cCommunities.Select(c => c.Id).ToList();
                    cCommunities.AddRange(sCommunities.Where(s => s.Selected && !idCommunities.Contains(s.Id)).ToList());
                }

                List <dtoCommunityInfoForEnroll> items = Service.GetEnrollingItems(idPerson, cCommunities);
                if (items != null && items.Where(i => i.Id > 0).Any())
                {
                    if (!items.Where(i => i.AllowEnroll).Any())
                    {
                        dAction = ModuleDashboard.ActionType.EnrollNotAllowed;
                        if (items.Count == 1)
                        {
                            View.DisplayEnrollMessage(items.FirstOrDefault(), dAction);
                        }
                        else
                        {
                            View.DisplayEnrollMessage(items.Count, dAction);
                        }
                    }
                    else
                    {
                        reloadCommunities = true;
                        litePerson           person           = CurrentManager.GetLitePerson(idPerson);
                        String               profileType      = Service.GetTranslatedProfileType(person);
                        String               organizationName = CurrentManager.GetUserDefaultOrganizationName(idPerson);
                        List <dtoEnrollment> enrollments      = new List <dtoEnrollment>();
                        foreach (dtoCommunityInfoForEnroll cm in items.Where(i => i.AllowEnroll && !i.HasConstraints))
                        {
                            dtoEnrollment enrollment = Service.EnrollTo(idPerson, cm);
                            if (enrollment != null)
                            {
                                enrollments.Add(enrollment);
                            }
                        }
                        if (enrollments.Where(e => e.Status == EnrolledStatus.Available || e.Status == EnrolledStatus.NeedConfirm).Any())
                        {
                            lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(lm.Comol.Core.BaseModules.CommunityManagement.Domain.CacheKeys.UserCommunitiesTree(idPerson));
                            enrollments.Where(e => e.Status == EnrolledStatus.Available || e.Status == EnrolledStatus.NeedConfirm).ToList().ForEach(e => View.NotifyEnrollment(e, person, profileType, organizationName));
                        }
                        if ((enrollments.Any() && enrollments.Where(s => s.Status == EnrolledStatus.NotAvailable || s.Status == EnrolledStatus.UnableToEnroll).Any()) ||
                            items.Where(i => i.HasConstraints || !i.AllowUnsubscribe).Any())
                        {
                            UpdateSelectedItems(enrollments.Where(e => e.Status == EnrolledStatus.Available || e.Status == EnrolledStatus.NeedConfirm || e.Status == EnrolledStatus.PreviousEnrolled || e.Status == EnrolledStatus.UnableToEnroll).Select(e => e.IdCommunity).ToList());
                            View.DisplayConfirmMessage(enrollments.Where(e => e.Status != EnrolledStatus.NotAvailable && e.Status != EnrolledStatus.UnableToEnroll).ToList(),
                                                       enrollments.Where(e => e.Status == EnrolledStatus.NotAvailable || e.Status == EnrolledStatus.UnableToEnroll).ToList(),
                                                       items.Where(i => !enrollments.Where(e => e.IdCommunity == i.Id).Any()).ToList(), person, profileType, organizationName);
                            View.SendUserAction(0, CurrentIdModule, items.Where(i => !enrollments.Where(e => e.IdCommunity == i.Id).Any()).Select(c => c.Id).ToList(), ModuleDashboard.ActionType.RequireEnrollConfirm);
                        }
                        else
                        {
                            if (enrollments.Where(e => e.Status == EnrolledStatus.Available).Any())
                            {
                                View.SendUserAction(0, CurrentIdModule, enrollments.Where(e => e.Status == EnrolledStatus.Available).Select(c => c.IdCommunity).ToList(), ModuleDashboard.ActionType.EnrollToCommunities);
                            }
                            if (enrollments.Where(e => e.Status == EnrolledStatus.NeedConfirm).Any())
                            {
                                View.SendUserAction(0, CurrentIdModule, enrollments.Where(e => e.Status == EnrolledStatus.NeedConfirm).Select(c => c.IdCommunity).ToList(), ModuleDashboard.ActionType.EnrollToCommunitiesWaitingConfirm);
                            }
                            UpdateSelectedItems(enrollments.Where(e => e.Status == EnrolledStatus.Available || e.Status == EnrolledStatus.NeedConfirm || e.Status == EnrolledStatus.PreviousEnrolled || e.Status == EnrolledStatus.UnableToEnroll).Select(e => e.IdCommunity).ToList());
                            if (enrollments.Any() && enrollments.Count == items.Count)
                            {
                                View.DisplayEnrollMessage(enrollments);
                            }
                            else
                            {
                                View.DisplayEnrollMessage(enrollments, items.Where(i => !enrollments.Where(e => e.IdCommunity == i.Id).Any()).Select(c => c.Name).ToList());
                            }
                        }
                    }
                }
                else
                {
                    View.SendUserAction(0, CurrentIdModule, sCommunities.Select(c => c.Id).ToList(), ModuleDashboard.ActionType.UnableToEnroll);
                }
                if (reloadCommunities)
                {
                    InternalLoadCommunities(itemsForPage, range, filters, orderBy, ascending, true, pageIndex, ModuleDashboard.ActionType.EnrollPageLoadcommunitiesAfterEnrolling);
                }
            }
        }
        public void EnrollTo(Int32 idCommunity, String name, String path, Int32 itemsForPage, RangeSettings range, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsToSubscribeBy orderBy, Boolean ascending, Int32 pageIndex)
        {
            Int32 idPerson = UserContext.CurrentUserID;

            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                Boolean reloadCommunities          = false;
                ModuleDashboard.ActionType dAction = ModuleDashboard.ActionType.None;
                dtoCommunityInfoForEnroll  item    = Service.GetEnrollingItem(idPerson, idCommunity, path);
                litePerson person = CurrentManager.GetLitePerson(idPerson);
                if (item != null && item.Id > 0 && person != null && person.Id > 0)
                {
                    if (!item.AllowEnroll)
                    {
                        dAction = ModuleDashboard.ActionType.EnrollNotAllowed;
                        View.DisplayEnrollMessage(item, dAction);
                    }
                    else
                    {
                        if (!item.HasConstraints && item.AllowUnsubscribe)
                        {
                            dtoEnrollment enrollment = Service.EnrollTo(idPerson, item);
                            if (enrollment == null)
                            {
                                dAction = ModuleDashboard.ActionType.UnableToEnroll;
                                View.DisplayEnrollMessage(item, dAction);
                            }
                            else
                            {
                                View.DisplayEnrollMessage(enrollment, enrollment.IdCommunity, person, Service.GetTranslatedProfileType(person), CurrentManager.GetUserDefaultOrganizationName(idPerson));
                                UpdateSelectedItems(new List <Int32>()
                                {
                                    enrollment.IdCommunity
                                });
                                reloadCommunities = true;
                                dAction           = (enrollment.Status == EnrolledStatus.NeedConfirm) ? ModuleDashboard.ActionType.EnrollToCommunityWaitingConfirm : ModuleDashboard.ActionType.EnrollToCommunity;
                                lm.Comol.Core.DomainModel.Helpers.CacheHelper.PurgeCacheItems(lm.Comol.Core.BaseModules.CommunityManagement.Domain.CacheKeys.UserCommunitiesTree(idPerson));
                            }
                        }
                        else
                        {
                            dAction = ModuleDashboard.ActionType.RequireEnrollConfirm;
                            View.DisplayConfirmMessage(item);
                        }
                    }
                }
                else
                {
                    dAction = ModuleDashboard.ActionType.UnableToEnroll;
                    View.DisplayUnknownCommunity(name);
                }
                View.SendUserAction(0, CurrentIdModule, idCommunity, dAction);
                if (reloadCommunities)
                {
                    InternalLoadCommunities(itemsForPage, range, filters, orderBy, ascending, true, pageIndex, ModuleDashboard.ActionType.EnrollPageLoadcommunitiesAfterEnrolling);
                }
            }
        }
        private void InternalLoadCommunities(Int32 itemsForPage, RangeSettings range, lm.Comol.Core.BaseModules.CommunityManagement.dtoCommunitiesFilters filters, OrderItemsToSubscribeBy orderBy, Boolean ascending, Boolean useCache, Int32 pageIndex, ModuleDashboard.ActionType action = ModuleDashboard.ActionType.EnrollPageApplyFilters, Boolean applyFilters = false)
        {
            View.CurrentFilters = filters;
            List <dtoItemFilter <OrderItemsToSubscribeBy> > orderItems = GetOrderByItems(filters.IdcommunityType, orderBy);

            View.InitializeOrderBySelector(orderItems);
            List <dtoEnrollingItem> items = Service.GetCommunitiesToEnroll(UserContext.CurrentUserID, filters, useCache);
            Int32 itemsCount = (items == null) ? 0 : items.Count;
            Int32 pageSize   = CalculatePageSize(itemsForPage, range, itemsCount);

            View.CurrentPageSize = pageSize;
            InitializeColumns(filters, items);

            if (items == null)
            {
                View.DisplayErrorFromDB();
                View.CurrentOrderBy   = orderBy;
                View.CurrentAscending = ascending;
            }
            else
            {
                if (pageSize == 0)
                {
                    pageSize = View.DefaultPageSize;
                }
                PagerBase pager = new PagerBase();
                pager.PageSize  = pageSize;
                pager.Count     = (itemsCount > 0) ? itemsCount - 1 : 0;
                pager.PageIndex = pageIndex;
                View.Pager      = pager;
                List <dtoCommunityToEnroll> cItems = null;
                if (applyFilters)
                {
                    cItems = new List <dtoCommunityToEnroll>();
                }
                else
                {
                    cItems = View.CurrentSelectedItems;
                    List <dtoCommunityToEnroll> sItems = View.GetSelectedItems();
                    if (sItems.Where(i => !i.Selected).Any())
                    {
                        cItems = cItems.Where(c => !sItems.Where(s => s.Id == c.Id).Any() || sItems.Where(s => s.Selected && s.Id == c.Id).Any()).ToList();
                    }
                    if (sItems.Where(i => i.Selected).Any())
                    {
                        List <Int32> idCommunities = cItems.Select(c => c.Id).ToList();
                        cItems.AddRange(sItems.Where(s => s.Selected && !idCommunities.Contains(s.Id)).ToList());
                    }
                }
                View.CurrentSelectedItems = cItems;
                View.KeepOpenBulkActions  = (cItems.Count > 0);
                View.InitializeBulkActions(itemsCount > pageSize, cItems);
                items = Service.GetCommunities(UserContext.CurrentUserID, items, pageIndex, pageSize, orderBy, ascending);

                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 (dtoEnrollingItem 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 <dtoEnrollingItem>(), orderBy, ascending);
                }
            }
        }
Пример #24
0
        public void GenerateCommunityTypeTiles(dtoFilters filters, Int32 idCommunity, Int32 pageIndex, Int32 pageSize)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                ModuleDashboard.ActionType action = ModuleDashboard.ActionType.TileAutoGenerateForCommunityTypes;
                Int32 count = Service.GetCommunityTypesWithoutTilesCount();
                if (count == 0)
                {
                    action = ModuleDashboard.ActionType.TileAlreadyGeneratedForCommunityTypes;
                }
                else
                {
                    List <Tile> tiles = Service.GenerateCommunityTypesTile();
                    if (tiles == null || tiles.Count != count)
                    {
                        action = ModuleDashboard.ActionType.TileUnableAutoGenerateForCommunityTypes;
                    }
                    else
                    {
                        View.HideCommunityTypesTileAutoGenerate(Service.GetCommunityTypesWithoutTilesCount() == 0);
                    }
                }
                View.DisplayMessage(action);
                View.SendUserAction((filters.DashboardType == DashboardType.Community) ? idCommunity : 0, CurrentIdModule, action);


                Dictionary <searchFilterType, long> defaultValues = (from searchFilterType n in Enum.GetValues(typeof(searchFilterType)).AsQueryable() where n != searchFilterType.none select n).ToDictionary(t => t, t => (long)-1);
                if (filters.IdTileType != (long)TileType.CommunityType && filters.IdTileType != -1)
                {
                    filters.IdTileType   = (long)TileType.CommunityType;
                    filters.StartWith    = "";
                    filters.IdModifiedBy = UserContext.CurrentUserID;
                    filters.Status       = AvailableStatus.Available;
                }
                defaultValues[searchFilterType.type]       = filters.IdTileType;
                defaultValues[searchFilterType.status]     = (long)filters.Status;
                defaultValues[searchFilterType.modifiedby] = (long)filters.IdModifiedBy;

                long letter = -1;
                switch (filters.StartWith)
                {
                case "#":
                    letter = -9;
                    break;

                case "":
                    break;

                default:
                    letter = (long)filters.StartWith[0];
                    break;
                }
                defaultValues[searchFilterType.letters] = letter;
                List <lm.Comol.Core.DomainModel.Filters.Filter> nfilters = Service.GetDefaultFilters(DashboardType.Portal, UserContext.CurrentUserID, idCommunity, -1, idCommunity, false, defaultValues).OrderBy(f => f.DisplayOrder).ToList();
                View.LoadDefaultFilters(nfilters);

                LoadTiles(filters, idCommunity, 0, pageSize);
            }
        }
Пример #25
0
        public void LoadTiles(ModuleDashboard permissions, dtoFilters filters, Int32 idCommunity, Int32 pageIndex, Int32 pageSize, long idTile = 0)
        {
            if (UserContext.isAnonymous)
            {
                View.DisplaySessionTimeout();
            }
            else
            {
                if (filters.DashboardType == DashboardType.Portal)
                {
                    View.LoadTilesInfo(Service.GetCommunityTypesWithoutTilesCount(), Service.GetUntranslatedTilesCount(filters));
                }
                else
                {
                    View.LoadTilesInfo(Service.GetUntranslatedTilesCount(filters));
                }
                List <dtoTileItem> items = Service.GetTiles(UserContext.CurrentUserID, permissions, filters, View.GetUnknownUserName(), View.GetTranslatedTileTypes());
                if (items == null)
                {
                    View.DisplayErrorLoadingFromDB();
                }
                else
                {
                    Int32     itemsCount = items.Count();
                    PagerBase pager      = new PagerBase();
                    pager.PageSize = pageSize;
                    pager.Count    = (itemsCount > 0) ? itemsCount - 1 : 0;

                    if (pageIndex == 0 && idTile > 0 && items.Where(i => i.Id == idTile).Any())
                    {
                        while (items.Skip(pageIndex * pageSize).Take(pageSize).Any() && !items.Skip(pageIndex * pageSize).Take(pageSize).Where(i => i.Id == idTile).Any())
                        {
                            pageIndex++;
                        }
                        if (pageIndex > pager.LastPage - 1)
                        {
                            pageIndex = 0;
                        }
                        else if (pageIndex == pager.LastPage - 1 && !items.Skip(pageIndex * pageSize).Take(pageSize).Where(i => i.Id == idTile).Any())
                        {
                            pageIndex = 0;
                        }
                    }

                    pager.PageIndex = pageIndex;
                    View.Pager      = pager;
                    String dCode     = View.GetDefaultLanguageCode();
                    String dLanguage = View.GetDefaultLanguageName();

                    if (pageIndex == 0 && idTile > 0)
                    {
                        items = items.Skip(pager.PageIndex * pageSize).Take(pageSize).ToList();
                    }
                    else
                    {
                        items = items.Skip(pager.PageIndex * pageSize).Take(pageSize).ToList();
                    }


                    View.AllowApplyFilters(!(View.FirstLoad && !items.Any()));
                    items.ForEach(i => i.Translations.Insert(0, new lm.Comol.Core.DomainModel.Languages.dtoLanguageItem()
                    {
                        IdLanguage = -1, IsMultiLanguage = true, LanguageCode = dCode, LanguageName = dLanguage
                    }));

                    ModuleDashboard.ActionType action = ModuleDashboard.ActionType.TilesPortalDashboardList;
                    switch (filters.DashboardType)
                    {
                    case DashboardType.AllCommunities:
                        action = ModuleDashboard.ActionType.TilesAllCommunitiesList;
                        break;

                    case DashboardType.Community:
                        action = ModuleDashboard.ActionType.TilesCommunityList;
                        break;
                    }
                    View.LoadTiles(items, filters.IdSelectedLanguage);
                    View.SendUserAction((filters.DashboardType == DashboardType.Community) ? idCommunity : 0, CurrentIdModule, action);
                    View.FirstLoad = false;
                    View.FirstLoadForLanguages[filters.IdSelectedLanguage] = false;
                }
            }
        }