public int SetExpirationsCommunity( IList <Domain.dtoExpirationConfig> config, int CommunityId) { if (!Manager.IsInTransaction()) { Manager.BeginTransaction(); } try { IList <Domain.ExpirationConfig> actualConfig = Manager.GetAll <Domain.ExpirationConfig>(c => c.CommunityId == CommunityId); foreach (Domain.ExpirationConfig conf in actualConfig) { Domain.dtoExpirationConfig newCfg = config.FirstOrDefault(c => c.RoleId == conf.RoleId); if (newCfg != null && newCfg.Duration != conf.Duration) { conf.UpdateMetaInfo(Manager.GetLitePerson(UC.CurrentUserID), UC.IpAddress, UC.ProxyIpAddress); conf.Duration = newCfg.Duration; Manager.SaveOrUpdate <Domain.ExpirationConfig>(conf); } } IList <int> OldRoleId = actualConfig.Select(c => c.RoleId).ToList(); foreach (Domain.dtoExpirationConfig newCfg in config.Where(c => c.Id == 0 || !OldRoleId.Contains(c.RoleId))) { Domain.ExpirationConfig conf = new Domain.ExpirationConfig(); conf.CreateMetaInfo(Manager.GetLitePerson(UC.CurrentUserID), UC.IpAddress, UC.ProxyIpAddress); conf.CommunityId = CommunityId; conf.CommunityTypeId = 0; conf.Duration = newCfg.Duration; conf.RoleId = newCfg.RoleId; Manager.SaveOrUpdate <Domain.ExpirationConfig>(conf); actualConfig.Add(conf); } Manager.SaveOrUpdateList <Domain.ExpirationConfig>(actualConfig); Manager.Commit(); CacheHelper.CommunityRoleReset(CommunityId); } catch { Manager.RollBack(); return(-1); } return(0); }
public IList <Domain.dtoExpirationConfig> GetPortalExpirationConfig( int CommunityTypeId, int LangId, string LangCode) { List <Domain.ExpirationConfig> oldconfiguration = (from Domain.ExpirationConfig conf in Manager.GetIQ <Domain.ExpirationConfig>() where conf.CommunityId == 0 && conf.CommunityTypeId == CommunityTypeId select conf ).ToList(); List <Domain.dtoExpirationConfig> config = oldconfiguration.Select(c => new Domain.dtoExpirationConfig(c)) .ToList(); IList <int> idRoles = Manager.GetAvailableRolesByType(CommunityTypeId); IList <int> oldRoles = (from Domain.dtoExpirationConfig conf in config select conf.RoleId).ToList(); IList <int> newRoles = idRoles.Except(oldRoles).ToList(); if (newRoles != null && newRoles.Any()) { foreach (int newroleId in newRoles) { Domain.dtoExpirationConfig newcfg = new Domain.dtoExpirationConfig(); newcfg.Duration = -1; newcfg.RoleId = newroleId; config.Add(newcfg); } } if (config != null && config.Any()) { config.ForEach(c => { c.RoleName = Manager.GetTranslatedRole(c.RoleId, LangId); c.DurationName = settings.GetValidityName(LangCode, c.Duration); } ); } return(config); }
public IList <Domain.dtoExpirationConfig> GetCommunityExpirationConfig( int CommunityId, int LangId, string LangCode) { Language defLang = Manager.GetDefaultLanguage(); if (defLang == null) { defLang = new Language(); defLang.Code = "us-EN"; defLang.Id = 1; } if (LangId <= 0) { LangId = defLang.Id; } if (string.IsNullOrWhiteSpace(LangCode)) { LangCode = defLang.Code; } List <Domain.ExpirationConfig> oldcfg = (from Domain.ExpirationConfig conf in Manager.GetIQ <Domain.ExpirationConfig>() where conf.CommunityId == CommunityId select conf ).ToList(); List <Domain.dtoExpirationConfig> config = oldcfg.Select(c => new Domain.dtoExpirationConfig(c)).ToList(); IList <int> idCommunityRoles = Manager.GetAvailableRoles(CommunityId); IList <int> oldRoles = (from Domain.dtoExpirationConfig conf in config select conf.RoleId).ToList(); IList <int> newRoles = idCommunityRoles.Except(oldRoles).ToList(); if (newRoles != null && newRoles.Any()) { int ComTypeId = Manager.GetIdCommunityType(CommunityId); List <Domain.ExpirationConfig> oldsysConf = (from Domain.ExpirationConfig conf in Manager.GetIQ <Domain.ExpirationConfig>() where conf.CommunityId == 0 && conf.CommunityTypeId == ComTypeId select conf ).ToList(); List <Domain.dtoExpirationConfig> SysConfig = oldsysConf.Select(c => new Domain.dtoExpirationConfig(c)) .ToList(); foreach (int newroleId in newRoles) { Domain.dtoExpirationConfig newcfg = new Domain.dtoExpirationConfig(); newcfg.RoleId = newroleId; Domain.dtoExpirationConfig sysConf = SysConfig.FirstOrDefault(c => c.RoleId == newroleId); if (sysConf != null && sysConf.RoleId > 0) { newcfg.Duration = sysConf.Duration; } else { newcfg.Duration = -1; } config.Add(newcfg); } } if (config != null && config.Any()) { config.ForEach(c => { c.RoleName = Manager.GetTranslatedRole(c.RoleId, LangId); c.DurationName = settings.GetValidityName(LangCode, c.Duration); } ); } return(config); }