public Domain.dtoUserExpiration ComUserDurationGet(int CommunityId, int UserId, int RoleId = 0) { IDictionary <int, Domain.dtoUserExpiration> UserDuration = CacheHelper.UserDurationGet(UserId); //Se non c'è in cache if (UserDuration == null || !UserDuration.Keys.Any()) { UpdateUserCommunityCache(UserId); UserDuration = CacheHelper.UserDurationGet(UserId); } //Se c'è in cache if (UserDuration != null && UserDuration.ContainsKey(CommunityId)) { return(UserDuration[CommunityId]); } //Se non c'è in cache non è stato salvato (creato) = Controllo il ruolo. if (RoleId == 0) { RoleId = (from Subscription sub in Manager.GetIQ <Subscription>() where sub.Community != null && sub.Community.Id == CommunityId && sub.Person != null && sub.Person.Id == UserId && sub.Role != null select sub.Role.Id).Skip(0).Take(1).FirstOrDefault(); //RoleId = Manager.GetActiveSubscriptionIdRole(CommunityId, UserId); } int duration = -1; IDictionary <int, int> CRD = ComRoleDuration(CommunityId); if (CRD == null || !CRD.Keys.Any()) { CRD = new Dictionary <int, int>(); IList <Domain.dtoExpirationConfig> dtoExpCom = GetCommunityExpirationConfig(CommunityId, -1, ""); foreach (Domain.dtoExpirationConfig dtoexp in dtoExpCom) { if (!CRD.ContainsKey(dtoexp.RoleId)) { CRD.Add(dtoexp.RoleId, dtoexp.Duration); } } CacheHelper.CommunityRoleDurationSet(CommunityId, CRD); } if (CRD.ContainsKey(RoleId)) { duration = CRD[RoleId]; } return(new Domain.dtoUserExpiration(null, duration)); }
// Use this for initialization void Start() { StageConstructor Constructor = new StageConstructor(); Constructor.CreateStage(37, 40, true, "Dev"); Constructor.AddStreet(1, 1, 'h', 3, 5); Constructor.AddStreet(20, 1, 'h', 1, 3); Constructor.AddStreet(1, 1, 'v', 7, 5); //Constructor.AddStreet(16, 'v', 6, 4); MapElement elem = Constructor.GetMapElementById(23); Stage stage = Constructor.GetMapElementById(0) as Stage; stage.AddUndergroundRoom(new RCT(new CRD(1, 1), 5, 5)); Room undergroundRoom = stage.AddUndergroundRoom(new RCT(new CRD(29, 19), new CRD(35, 28))); undergroundRoom.CreateSubRoom(new RCT(new CRD(30, 23), 3, 3)); stage.AddUndergroundRoom(new RCT(new CRD(31, 5), new CRD(33, 23))); if (elem.GetType() == typeof(Area)) { Area area = elem as Area; Building building = area.CreateBuilding(new RCT(area.rct.Start, 9, 9)); RCT tbuilding = building.rct.Clone(); tbuilding.Thin(); CRD crd = StageConstructor.GetRandomCRD(tbuilding); RCT newRoom = new RCT(new CRD(34, 25), 4, 4); Room firstappended = building.AppendRoom(newRoom) as Room; tbuilding = building.rct.Clone(); tbuilding.Thin(); crd = StageConstructor.GetRandomCRD(tbuilding); newRoom = new RCT(new CRD(33, 21), area.rct.End.Clone().ReturnStepLT()); Room appended = building.AppendRoom(newRoom) as Room; appended.CreateDoor(new CRD(33, 34)); crd = building.rct.Start.Clone().ReturnStepRB(); newRoom = new RCT(crd, 2, 2); building.BaseRoom.CreateSubRoom(new RCT(new CRD(30, 22), 3, 3)).CreateWindow(new CRD(30, 23)); building.BaseRoom.CreateSubRoom(new RCT(new CRD(30, 20), 3, 2)); building.BaseRoom.CreateSubRoom(new RCT(new CRD(34, 22), 3, 2)).CreateDoor(new CRD(35, 23)); building.BaseRoom.CreateSubRoom(new RCT(new CRD(32, 20), 3, 2)); appended.CreateSubRoom(new RCT(new CRD(34, 30), 3, 3)); firstappended.CreateDoubleDoor(new CRD(34, 27)); firstappended.CreateDoubleDoorway(new CRD(37, 26)); firstappended.CreateColumn(new CRD(35, 27)); building.CreateRoom(new RCT(new CRD(29, 26), 3, 3)); building.CreateRoom(new RCT(new CRD(29, 33), 3, 3)).CreateDoorway(new CRD(31, 34)); building.CreateMainEntrance(new RCT(new CRD(31, 19), new CRD(31, 19)), "InnerWindow", "OuterWindow"); building.CreateMainEntrance(new RCT(new CRD(29, 23), new CRD(29, 23)), "InnerDoor", "OuterPortal"); building.BaseRoom.CreateDoubleDoorway(new CRD(33, 19)); building.BaseRoom.CreateDoubleDoor(new CRD(29, 21)); building.CreateColumn(new CRD(38, 19)); building.Addfloor(); } Constructor.Upgrade(); Constructor.RenderStage(); Constructor.RenderBackground(); //Constructor.GetMapElementById(0).DebugChildrens(); /*RCT rct = new RCT(new CRD(2, 3), 6, 4); * bool[,] nmap = StageConstructor.createPeraiodicalMap(rct, 'h', 1, 2); * for (int x = 0; x < nmap.GetLength(0); x++) * { * string row = "x: " + x + " "; * for (int z = 0; z < nmap.GetLength(1); z++) * { * row += nmap[x, z].ToString() + " + "; * } * Debug.Log(row); * }*/ //teams.Add (new Team ("Master", "Player")); //teams.Add (new Team ("Enemy", "AI")); //playerUnits.Add (new Unit ("Igor Svezdov-pezdof", teams.Find (x => x.title == "Master"), 10, 8)); //playerUnits.Add (new Unit ("Alexander Sukinsin", teams.Find (x => x.title == "Master"), 10, 8)); //UnitsGenerator.instance.playerUnits = playerUnits; //enemyUnits.Add (new Unit ("Angry Sailon", teams.Find (x => x.title == "Enemy"), 8, 7)); //UnitsGenerator.instance.enemyUnits = enemyUnits; }