internal SubscriptionModule() { Log.Info("Creating"); PrevSubValue = null; this.SubTypes = new List <SubType>(); SubTypes.Add(new SubType { Description = "$3.00 per month", Name = "silver" }); SubTypes.Add(new SubType { Description = "$33.00 per year", Name = "gold" }); CheckTimer = new Timer(TimeSpan.FromMinutes(5).TotalMilliseconds); CheckTimer.Elapsed += CheckTimerOnElapsed; CheckTimer.Start(); BroadcastTimer = new Timer(TimeSpan.FromMinutes(3).TotalMilliseconds); BroadcastTimer.Elapsed += BroadcastTimerOnElapsed; BroadcastTimer.Start(); Log.Info("Created"); Task.Factory.StartNew(() => CheckTimerOnElapsed(null, null)).ContinueWith( x => { if (x.Exception != null) { Log.Info("Get Is Subbed Failed", x.Exception); } }); }
internal SubscriptionModule() { Log.Info("Creating"); PrevSubValue = null; this.SubTypes = new List <SubType>(); SubTypes.Add(new SubType { Description = "$3.00 per month", Name = "silver" }); SubTypes.Add(new SubType { Description = "$33.00 per year", Name = "gold" }); CheckTimer = new Timer(TimeSpan.FromMinutes(5).TotalMilliseconds); CheckTimer.Elapsed += CheckTimerOnElapsed; CheckTimer.Start(); BroadcastTimer = new Timer(TimeSpan.FromMinutes(3).TotalMilliseconds); BroadcastTimer.Elapsed += BroadcastTimerOnElapsed; BroadcastTimer.Start(); Log.Info("Created"); Task.Factory.StartNew(() => CheckTimerOnElapsed(null, null)).ContinueWith( x => { if (x.Exception != null) { Log.Info("Get Is Subbed Failed", x.Exception); } }); Program.LobbyClient.OnLoginComplete += LobbyClientOnOnLoginComplete; var sti = Application.GetResourceStream(new Uri("pack://application:,,,/Resources/subscriberbenefits.txt")); var benifits = new List <string>(); using (var sr = new StreamReader(sti.Stream)) { var l = sr.ReadLine(); while (l != null) { benifits.Add(l); l = sr.ReadLine(); } } Benefits = benifits; }
protected void BuildTypesCollections() { var textInfo = CultureInfo.CurrentCulture.TextInfo; Types.Clear(); Types.Add(Strings.GetMoreModsViewModel_AllTypes); foreach (var type in from m in TrovesaurusMods group m by m.DataObject.Type into g orderby g.First().DataObject.Type select textInfo.ToTitleCase(g.First().DataObject.Type.ToLower())) { Types.Add(type); } SubTypes.Clear(); SubTypes.Add(Strings.GetMoreModsViewModel_AllSubTypes); foreach (var subtype in from m in TrovesaurusMods where !string.IsNullOrEmpty(m.DataObject.SubType) group m by m.DataObject.SubType into g orderby g.First().DataObject.SubType select textInfo.ToTitleCase(g.First().DataObject.SubType.ToLower())) { SubTypes.Add(subtype); } Formats.Clear(); Formats.Add(Strings.GetMoreModsViewModel_AllFormats); //var formats = TrovesaurusMods.SelectMany(m => m.DataObject.Downloads).GroupBy(d => d.Format); foreach (var format in from d in TrovesaurusMods.SelectMany(m => m.DataObject.Downloads) group d by d.Format into g orderby g.First().Format select g.First().Format) { Formats.Add(format); } }
private void PopulateEventList() { lock (Lock) { if (EventList.Count > 0) { return; } //var curDir = System.Web.HttpRuntime.AppDomainAppPath; //var dlls = Directory.GetFiles(curDir, "*.dll", SearchOption.AllDirectories); var types = new List <Type>(); var allAssemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (var assembly in allAssemblies) { var tmpBaseTypes = assembly.GetTypes() .Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(typeof(Event))) .ToList(); types.AddRange(tmpBaseTypes); } // This seems to work better than loading all dlls in current domain path. //var appDomain = AppDomain.CreateDomain("tmpDomainForWebTemplate"); //foreach (var dll in dlls) //{ // if (dll.Contains("\\roslyn\\")) // { // continue; // } // try // { // var assembly = appDomain.Load(File.ReadAllBytes(dll)); // var eventTypes = assembly.GetTypes() // .Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(typeof(Event))) // .ToList(); // if (eventTypes.Count > 0) // { // types.AddRange(eventTypes); // } // } // catch (BadImageFormatException ex) // { // Console.WriteLine(ex.Message); // } // catch (ReflectionTypeLoadException ex) // { // Console.WriteLine(ex.Message); // } // catch (FileNotFoundException ex) // { // Console.WriteLine(ex.Message); // } //} //AppDomain.Unload(appDomain); foreach (var type in types) { //if (type.IsClass && !type.IsAbstract && type.IsSubclassOf(typeof(Event))) //{ if (type == typeof(BasicCrudModify <>)) { continue; } if (type == typeof(BasicCrudView <>)) { continue; } if (type == typeof(BasicCrudDelete <>)) { continue; } if (type.GetInterface("IBasicCrudMenuItem") != null) { var subType = (IBasicCrudMenuItem)Container.Resolve(type); var d1 = typeof(BasicCrudView <>); Type[] typeArgs1 = { subType.InnerType }; var viewType = d1.MakeGenericType(typeArgs1); var viewInstance = (IBasicCrudView)Container.Resolve(viewType); viewInstance.Id = subType.GetBaseMenuId(); viewInstance.ItemName = subType.GetBaseItemName(); viewInstance.ColumnsToShowInView = subType.GetColumnsToShowInView(); viewInstance.OrderQuery = subType.OrderQueryInternal; var columnConfig = new ColumnConfiguration(); subType.ConfigureAdditionalColumns(columnConfig); viewInstance.AdditionalColumns = columnConfig.GetColumns(); if (!EventList.ContainsKey(viewInstance.GetId())) { EventList.Add(viewInstance.GetId(), viewInstance.GetType()); EventDescriptions.Add(viewInstance.GetId(), viewInstance.Description); EventMenuList.Add(viewInstance.GetId(), viewInstance); SubTypes.Add(viewInstance.GetId(), type); } var d2 = typeof(BasicCrudModify <>); Type[] typeArgs2 = { subType.InnerType }; var modifyType = d2.MakeGenericType(typeArgs2); var modifyInstance = (IBasicCrudModify)Container.Resolve(modifyType); modifyInstance.Id = subType.GetBaseMenuId() + 1; modifyInstance.ItemName = subType.GetBaseItemName(); modifyInstance.InputProperties = subType.GetInputProperties(); modifyInstance.UniquePropertyName = subType.UniquePropertyName; modifyInstance.OnModifyInternal = subType.OnModifyInternal; if (!EventList.ContainsKey(modifyInstance.GetId())) { EventList.Add(modifyInstance.GetId(), modifyInstance.GetType()); EventDescriptions.Add(modifyInstance.GetId(), modifyInstance.Description); EventMenuList.Add(modifyInstance.GetId(), modifyInstance); SubTypes.Add(modifyInstance.GetId(), type); } var d3 = typeof(BasicCrudDelete <>); Type[] typeArgs3 = { subType.InnerType }; var deleteType = d3.MakeGenericType(typeArgs2); var deleteInstance = (IBasicCrudDelete)Container.Resolve(deleteType); deleteInstance.Id = subType.GetBaseMenuId() + 2; deleteInstance.ItemName = subType.GetBaseItemName(); deleteInstance.OnDeleteInternal = subType.OnDeleteInternal; if (!EventList.ContainsKey(deleteInstance.GetId())) { EventList.Add(deleteInstance.GetId(), deleteInstance.GetType()); EventDescriptions.Add(deleteInstance.GetId(), deleteInstance.Description); EventMenuList.Add(deleteInstance.GetId(), deleteInstance); SubTypes.Add(deleteInstance.GetId(), type); } } else if (type != typeof(BasicCrudMenuItem <>)) { //if (System.Diagnostics.Debugger.IsAttached == false) System.Diagnostics.Debugger.Launch(); var instance = (IEvent)Container.Resolve(type); if (!(instance is BackgroundEvent) && !EventList.ContainsKey(instance.GetId())) { EventList.Add(instance.GetId(), instance.GetType()); EventDescriptions.Add(instance.GetId(), instance.Description); EventMenuList.Add(instance.GetId(), instance); } else if (instance is BackgroundEvent && !BackgroundEventList.ContainsKey(instance.GetId())) { BackgroundEventList.Add(instance.GetId(), instance as BackgroundEvent); } } //} //else //{ // Console.WriteLine("X"); //} } } }