Esempio n. 1
0
 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);
           }
         });
 }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 4
0
        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");
                    //}
                }
            }
        }