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); } } }
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); } }
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); } }
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); } }
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); } } }
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); } }
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); } } }
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); } }
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); } } } }
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); } }
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); } }
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); } }
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); } }
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); } } }
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); } }
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); } }
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); } }
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); } } }
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); } }
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; } } }