示例#1
0
        //private Dictionary<Int32, ModuleTags> GetPermissions(Person person, Boolean forOrganization)
        //{
        //    Dictionary<Int32, ModuleTags> permissions = new Dictionary<Int32, ModuleTags>();
        //    List<Organization> organizations = ServiceCommunityManagement.GetAvailableOrganizations(person.Id, SearchCommunityFor.Subscribed);
        //    permissions.Add(-3, ModuleTags.CreatePortalmodule(person.TypeID));

        //    if (organizations != null && organizations.Any())
        //    {
        //        if (person.TypeID == (int)UserTypeStandard.SysAdmin || person.TypeID == (int)UserTypeStandard.Administrator)
        //            organizations.ForEach(o => permissions.Add(o.Id, permissions[-3]));
        //        else
        //        {
        //            List<Int32> communities = (from c in Manager.GetIQ<liteCommunityInfo>()
        //                                       where c.IdFather == 0
        //                                           && organizations.Where(o => o.Id == c.IdOrganization).Any()
        //                                       select c.Id).ToList();
        //            communities.ForEach(c => permissions.Add(c., GetPermission(c)));
        //        }
        //    }
        //    return permissions;
        //}

        public TagItem SetStatus(long idTag, lm.Comol.Core.Dashboard.Domain.AvailableStatus status)
        {
            TagItem item = null;

            try
            {
                litePerson person = Manager.GetLitePerson(UC.CurrentUserID);
                if (person != null && person.TypeID != (int)UserTypeStandard.Guest && person.TypeID != (int)UserTypeStandard.PublicUser)
                {
                    item = Manager.Get <TagItem>(idTag);
                    item.UpdateMetaInfo(person, UC.IpAddress, UC.ProxyIpAddress);
                    Manager.BeginTransaction();
                    item.Status = status;
                    Manager.Commit();
                    if (item.Type == TagType.Community)
                    {
                        CacheHelper.PurgeCacheItems(CacheKeys.AllCommunityTags);
                        CacheHelper.PurgeCacheItems(CacheKeys.AllUserCommunitiesTags);
                    }
                    CacheHelper.PurgeCacheItems(CacheKeys.Tags(item.Type));
                    if (item.MyTile.Status != Dashboard.Domain.AvailableStatus.Available && status != Dashboard.Domain.AvailableStatus.Draft)
                    {
                        ServiceDashboard.TileSetStatus(item.MyTile, status);
                    }
                }
            }
            catch (Exception ex)
            {
                Manager.RollBack();
            }
            return(item);
        }
示例#2
0
 public void SetStatus(long idTag, lm.Comol.Core.Dashboard.Domain.AvailableStatus status, dtoFilters filters, Int32 idCommunity, Int32 pageIndex, Int32 pageSize)
 {
     if (UserContext.isAnonymous)
     {
         View.DisplaySessionTimeout();
     }
     else
     {
         ModuleTags.ActionType action = (status == lm.Comol.Core.Dashboard.Domain.AvailableStatus.Available) ? ModuleTags.ActionType.EnableTag : ModuleTags.ActionType.DisableTag;
         TagItem item = ServiceTags.SetStatus(idTag, status);
         if (item == null || item.Status != status)
         {
             action = (status == lm.Comol.Core.Dashboard.Domain.AvailableStatus.Available) ? ModuleTags.ActionType.UnableToEnableTag : ModuleTags.ActionType.UnableToDisableTag;
         }
         View.DisplayMessage(action);
         View.SendUserAction((filters.ForOrganization) ? idCommunity : 0, CurrentIdModule, idTag, action);
         LoadTags(filters, idCommunity, 0, pageSize);
     }
 }