Example #1
0
        }                                               //是否是结构体
        public GenerateScorpioClass(Type type)
        {
            m_Type           = type;
            IsStruct         = !type.IsClass;
            FullName         = ScorpioReflectUtil.GetFullName(m_Type);
            ScorpioClassName = "ScorpioClass_" + ScorpioReflectUtil.GetGenerateClassName(type);
            AllFields.AddRange(m_Type.GetFields(ScorpioReflectUtil.BindingFlag));
            AllEvents.AddRange(m_Type.GetEvents(ScorpioReflectUtil.BindingFlag));
            var propertys = m_Type.GetProperties(ScorpioReflectUtil.BindingFlag);

            foreach (var property in propertys)
            {
                //如果是 get 则参数是0个  set 参数是1个  否则就可能是 [] 的重载
                if ((property.CanRead && property.GetGetMethod().GetParameters().Length == 0) ||
                    (property.CanWrite && property.GetSetMethod().GetParameters().Length == 1))
                {
                    AllPropertys.Add(property);
                }
            }
            var methods = (m_Type.IsAbstract && m_Type.IsSealed) ? m_Type.GetMethods(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy) : m_Type.GetMethods(ScorpioReflectUtil.BindingFlag);

            foreach (var method in methods)
            {
                //屏蔽掉 模版函数 模板函数只能使用反射
                if (!ScorpioReflectUtil.CheckGenericMethod(method))
                {
                    continue;
                }
                AllMethods.Add(method);
            }
        }
Example #2
0
        private void GenerateCctor()
        {
            var allEvents = AllEvents
                            .Where(x => x.GetCustomAttribute <InvokeAttribute>() != null &&
                                   x.GetCustomAttribute <InvokeAttribute>().DispatchingStrategy == Dispatch.SerializePerType)
                            .ToList();

            if (allEvents.Count == 0)
            {
                return;
            }

            _perTypeScheduler = _typeBuilder.DefineField(
                "PerTypeScheduler",
                typeof(SerialTaskScheduler),
                FieldAttributes.Private | FieldAttributes.InitOnly | FieldAttributes.Static);

            var cctor = _typeBuilder.DefineTypeInitializer();
            var gen   = cctor.GetILGenerator();

            gen.Emit(OpCodes.Ldstr, InterfaceType.FullName);
            gen.Emit(OpCodes.Ldnull);

            var loc = gen.DeclareLocal(typeof(ulong?));

            gen.Emit(OpCodes.Ldloca, loc);
            gen.Emit(OpCodes.Initobj, typeof(ulong?));
            gen.Emit(OpCodes.Ldloc, loc);

            gen.Emit(OpCodes.Ldc_I4_0);
            gen.Emit(OpCodes.Newobj, Methods.SerialTaskSchedulerCtor);
            gen.Emit(OpCodes.Stsfld, _perTypeScheduler);
            gen.Emit(OpCodes.Ret);
        }
        /// <summary>
        /// Tries to find a disassembled entity, given a disassembled target.
        /// </summary>
        /// <param name="disassemblyTarget">The disassembly target.</param>
        /// <returns></returns>
        public DisassembledEntity FindDisassembledEntity(DisassemblyTarget disassemblyTarget)
        {
            //  If there's no target, we can't find anything.
            if (disassemblyTarget == null)
            {
                return(null);
            }

            switch (disassemblyTarget.TargetType)
            {
            case DisassemblyTargetType.Class:

                //  Find the class with the given name.
                return(AllClasses.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Enumeration:

                //  Find the enumeration with the given name.
                return(AllEnumerations.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Method:

                //  Find the entity with the given name.
                return(AllMethods.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Property:

                //  Find the entity with the given name.
                return(AllProperties.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Field:

                //  Find the entity with the given name.
                return(AllFields.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Structure:

                //  Find the structure with the given name.
                return(AllStructures.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Interface:

                //  Find the structure with the given name.
                return(AllInterfaces.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Event:

                //  Find the structure with the given name.
                return(AllEvents.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));

            case DisassemblyTargetType.Delegate:

                //  Find the structure with the given name.
                return(AllDelegates.FirstOrDefault(c => c.FullName == disassemblyTarget.FullName));


            default:
                throw new ArgumentOutOfRangeException();
            }
        }
 protected bool Equals(ProjectionSourceDefinition other)
 {
     return(AllEvents.Equals(other.AllEvents) && AllStreams.Equals(other.AllStreams) &&
            ByStream.Equals(other.ByStream) && ByCustomPartitions.Equals(other.ByCustomPartitions) &&
            Equals(Categories, other.Categories) && Equals(Events, other.Events) &&
            Equals(Streams, other.Streams) && string.Equals(CatalogStream, other.CatalogStream) &&
            LimitingCommitPosition == other.LimitingCommitPosition && Equals(Options, other.Options));
 }
Example #5
0
        public async Task DoLoadCalendarEventsGrouped(DateTime dStart, DateTime dEnd, int iMax = 0)
        {
            try
            {
                var newEvents = new SortedDictionary <DateTime, SortedDictionary <DateTime, CalendarEvent> >();

                await DoLoadCalendarEventsListed(dStart, dEnd, iMax);

                int iMs = 0;
                foreach (CalendarEvent calEvent in ListedDates)
                {
                    DateTime tFirstDay = calEvent.Start;
                    if (tFirstDay < dStart)
                    {
                        tFirstDay = dStart;
                    }
                    DateTime tLastDay = calEvent.End;
                    if (tFirstDay > dEnd)
                    {
                        tLastDay = dEnd;
                    }
                    for (DateTime tDay = tFirstDay.Date; tDay < tLastDay; tDay = tDay.AddDays(1))
                    {
                        iMs++;
                        if (!newEvents.ContainsKey(tDay))
                        {
                            newEvents.Add(tDay, new SortedDictionary <DateTime, CalendarEvent>());
                        }
                        newEvents[tDay].Add(calEvent.SortTime.AddMilliseconds(iMs), calEvent);
                    }
                }

                base.Clear();
                int iCount            = 0;
                var allEvents         = new List <CalendarEvent>();
                var allDatesAndEvents = new List <object>();
                foreach (DateTime d in newEvents.Keys)
                {
                    base[d] = newEvents[d].Values;
                    iCount += newEvents[d].Count;
                    allDatesAndEvents.Add(d);
                    allDatesAndEvents.AddRange(newEvents[d].Values);
                    allEvents.AddRange(newEvents[d].Values);
                }
                AllEvents.Clear();
                AllEvents.AddRange(allEvents);
                AllDatesAndEvents.Clear();
                AllDatesAndEvents.AddRange(allDatesAndEvents);
                allEvents.Clear();
                allDatesAndEvents.Clear();
            }
            catch (Exception ex)
            {
                base.Clear();
                ex.ToString();
                xLog.Debug("Error reading Calendar Events: " + ex.GetType().Name + ": " + ex.Message);
            }
        }
Example #6
0
        public ActionResult DeleteConfirmedFavorite(int id)
        {
            Event     @event      = db.Events.Find(id);
            var       currentUser = manager.FindById(User.Identity.GetUserId());
            AllEvents all         = new AllEvents();

            all._favorites = db.Favorites.Where(t => t.User.Id == currentUser.Id).ToList();
            db.Favorites.Remove(all.DeleteFavorite(@event));
            db.SaveChanges();
            return(RedirectToAction("Favorites"));
        }
Example #7
0
        public ActionResult MyFavorites()
        {
            AllEvents all         = new AllEvents();
            var       currentUser = manager.FindById(User.Identity.GetUserId());

            all._events    = db.Events.ToList();
            all._favorites = db.Favorites.Where(t => t.User.Id == currentUser.Id).ToList();
            var events = all.ReturnFavoriteEvents();

            return(PartialView(events));
        }
        private async void SetupSampleData()
        {
            var items = await SampleData.GetEventFeed();

            foreach (var item in items)
            {
                FeatureEvents.Add(item);
                MyEvents.Add(item);
                AllEvents.Add(item);
            }
        }
Example #9
0
 public override int GetHashCode()
 {
     unchecked {
         int hashCode = AllEvents.GetHashCode();
         hashCode = (hashCode * 397) ^ AllStreams.GetHashCode();
         hashCode = (hashCode * 397) ^ ByStream.GetHashCode();
         hashCode = (hashCode * 397) ^ ByCustomPartitions.GetHashCode();
         hashCode = (hashCode * 397) ^ LimitingCommitPosition.GetHashCode();
         hashCode = (hashCode * 397) ^ (Options != null ? Options.GetHashCode() : 0);
         return(hashCode);
     }
 }
Example #10
0
        //
        public List <AllEvents> GetAllEvents(int CollectionNo, int InstallatioNo, int Top)
        {
            List <AllEvents> LstAllEvents = new List <AllEvents>();

            try
            {
                BatchDataAccess                Batch = _ExchangeConst != string.Empty ? new BatchDataAccess(new SqlConnection(_ExchangeConst)) : new BatchDataAccess(_ExchangeConst);
                List <DoorEventRecord>         DoorEvents;
                IEnumerable <FaultEventRecord> FaultEvents;
                IEnumerable <PowerEventRecord> PowerEvents;
                DoorEvents  = Batch.GetDoorEventData(CollectionNo, InstallatioNo, Top).ToList();
                FaultEvents = Batch.GetFaultEventData(CollectionNo, InstallatioNo, Top).ToList();
                PowerEvents = Batch.GetPowerEventData(CollectionNo, InstallatioNo, Top).ToList();
                AllEvents Events;
                foreach (var item in DoorEvents)
                {
                    Events             = new AllEvents();
                    Events.Type        = "Door";
                    Events.Date        = item.Date.GetUniversalDateFormat();
                    Events.Time        = item.Date.GetUniversalTimeFormat();
                    Events.Duration    = HelperFunctions.GetDuration(item.Duration);
                    Events.Description = item.Error_Code_Description;//Door_Event_Type.Trim();// == "3" ? "Cash Door open by " : "Slot Door open by " ;
                    LstAllEvents.Add(Events);
                }
                foreach (var item in FaultEvents)
                {
                    Events             = new AllEvents();
                    Events.Type        = "Fault";
                    Events.Date        = item.Date.GetUniversalDateFormat();
                    Events.Time        = item.Date.GetUniversalTimeFormat();
                    Events.Duration    = "n/a";
                    Events.Description = item.Fault_Description;
                    LstAllEvents.Add(Events);
                }
                foreach (var item in PowerEvents)
                {
                    Events             = new AllEvents();
                    Events.Type        = "Power On";
                    Events.Date        = item.Date.GetUniversalDateFormat();
                    Events.Time        = item.Date.GetUniversalTimeFormat();
                    Events.Duration    = HelperFunctions.GetDuration(item.Duration);
                    Events.Description = "";
                    LstAllEvents.Add(Events);
                }
            }
            catch (Exception ex) { LogError(ex); }
            return(LstAllEvents);
        }
        public PopupWindowAllEventsViewModel()
        {
            _realTableNameDict = new Dictionary <string, string>()
            {
                { "事件记录表", "awms_events_dhl" },
                { "设备表", "awms_device_dhl" },
                { "灯信息表", "awms_lights_dhl" },
                { "灯任务表", "awms_lights_tasks_dhl" },
                { "LPN表", "awms_lpn_dhl" },
                { "订单表", "awms_orders_dhl" },
                { "发货单表", "awms_orders_tasks_dhl" },
                { "栈板表", "awms_pallets_dhl" },
                { "原始数据表", "awms_source_dhl" },
                { "库位表", "awms_storges_dhl" }
            };
            TableNames = new ObservableCollection <string>();
            foreach (var x in _realTableNameDict.Keys)
            {
                TableNames.Add(x);
            }
            SelectedTableName = TableNames[0];

            PageSize = 50;

            ViewRefresh();
            PageSizeChanged = new DelegateCommand(() =>
            {
                if (PageSize <= 0)
                {
                    MessageBox.Show("页数必须是大于0的整数", "错误");
                    return;
                }
                CurrentPage      = 1;
                string tableName = _realTableNameDict[SelectedTableName];
                TotalCount       = DbHelper.GetTabelRecordCount(tableName);
                //AllEvents = DbHelper.GetDataByPage(tableName, CurrentPage, PageSize);
                if (null != AllEvents)
                {
                    AllEvents.Dispose();
                    AllEvents = null;
                }
                AllEvents  = DbHelper.GetAllFromTableByName(tableName);
                TotalPages = (TotalCount + PageSize - 1) / PageSize;
            });
            ViewRefreshCommand = new DelegateCommand(ViewRefresh);
        }
        void ViewRefresh()
        {
            if (PageSize <= 0)
            {
                return;
            }
            string tableName = _realTableNameDict[SelectedTableName];

            TotalCount = DbHelper.GetTabelRecordCount(tableName);
            // AllEvents = DbHelper.GetDataByPage(tableName,CurrentPage, PageSize);
            if (null != AllEvents)
            {
                AllEvents.Dispose();
                AllEvents = null;
            }
            AllEvents  = DbHelper.GetAllFromTableByName(tableName);
            TotalPages = (TotalCount + PageSize - 1) / PageSize;
        }
Example #13
0
        public ActionResult EventPage(int?id)
        {
            if (id == null)
            {
                // возвращает экземпляр класса HttpNotFound
                return(HttpNotFound());
            }
            var currentUser = manager.FindById(User.Identity.GetUserId());

            AllEvents all = new AllEvents();

            all._events    = db.Events.ToList();
            all._favorites = db.Favorites.Where(t => t.User.Id == currentUser.Id).ToList();
            var   events  = all.ReturnFavoriteEvents();
            bool  check   = false;
            int   compare = 0;
            Event @event  = db.Events.FirstOrDefault(t => t.Id == id);

            if (events.Count != 0)
            {
                if (events.Contains(@event))
                {
                    check = true;
                }
                else
                {
                    check = false;
                }
            }

            if (currentUser.Equals(@event.User))
            {
                compare = 1;
            }
            ViewBag.Compare        = compare;
            ViewBag.CompareMessage = "Вы не можете добавить это событие в избранное так как вы являетесь его создателем";

            ViewBag.Check = check;

            ViewBag.MessageCheck = "Это событие уже находиться в ваших избранных";
            return(View(@event));
        }
        public async Task GetAllEvents()
        {
            var feedResultEntity =
                await
                _eventManager.GetEvents(Locator.ViewModels.MainPageVm.CurrentTokens, "eventStartDate",
                                        Locator.ViewModels.MainPageVm.CurrentUser.Region);

            var result = await ResultChecker.CheckSuccess(feedResultEntity);

            if (!result)
            {
                return;
            }
            var feedEntity = JsonConvert.DeserializeObject <EventsResponse>(feedResultEntity.ResultJson);

            foreach (var feed in feedEntity.Events)
            {
                AllEvents.Add(feed);
            }
        }
Example #15
0
 private void SendEventFromStatus(string statusFilePath)
 {
     lock (@lock)
     {
         var @event = FromJsonFile <StatusEvent>(statusFilePath);
         if (@event != null)
         {
             if ([email protected](_currentGameStatus))
             {
                 _currentGameStatus = @event;
                 GameEvents.InvokeEvent(@event);
                 AllEvents?.Invoke(this, new ProcessedEvent
                 {
                     EventName = @event.Event.ToLower(),
                     EventType = typeof(StatusEvent),
                     Event     = @event
                 });
             }
         }
     }
 }
        internal JournalEvent ExecuteEvent(string eventName, string json)
        {
            var rawEvent = new OriginalEvent {
                EventName = eventName, Source = json
            };

            BeforeEvent?.Invoke(this, rawEvent);
            if (rawEvent.Ignore)
            {
                return(null);
            }

            if (_cache.Value.TryGetValue(eventName, out var eventCacheItem))
            {
                JournalEvent @event = null;
                try
                {
                    @event = (JournalEvent)eventCacheItem.Execute.Invoke(null, new object[] { json, this });
                }
                catch (Exception exception)
                {
                    LogJournalException(new JournalRecordException(json, exception));
                }

                if (@event != null)
                {
                    AllEvents?.Invoke(this, new ProcessedEvent
                    {
                        EventName = eventCacheItem.Name,
                        EventType = eventCacheItem.Type,
                        Event     = @event
                    });
                }
                return(@event);
            }
            LogJournalWarning(new JournalEventNotFoundException(eventName, json));

            return(null);
        }
Example #17
0
        async Task ExecuteRefreshCommand()
        {
            if (IsBusy)
            {
                return;
            }
            IsBusy = true;

            try
            {
                var table = await CloudService.GetTableAsync <Event>();

                var list = await table.ReadAllEventsAsync();

                AllEvents.Clear();
                DatesWithEvents.Clear();
                foreach (var currentEvent in list)
                {
                    AllEvents.Add(currentEvent);
                    SpecialDate specialDate = new SpecialDate(currentEvent.Date);
                    specialDate.Selectable  = true;
                    specialDate.BorderColor = Color.White;
                    specialDate.BorderWidth = 2;
                    DatesWithEvents.Add(specialDate);
                }
                ShowEventsOfTheDay();
                await CloudService.SyncOfflineCacheAsync();
            }
            catch (Exception ex)
            {
                Debug.WriteLine($"[EventsViewModel] Error loading events: {ex.Message}");
            }
            finally
            {
                IsBusy = false;
            }
        }
Example #18
0
        ///
        /// <summary>
        /// This calculates row for each of event (makes sense only for main band).
        /// We try to place evens so that the do not overlap on the screen.</summary>
        ///
        public void CalculateEventRows(
            )
        {
            int count;
            int rowCount;
            int minIndex;

            DateTime[]    dates;
            DateTime      minDate;
            TimelineEvent e;
            int           overrideRowCount;

            Debug.Assert(m_assignRows);
            Debug.Assert(AllEvents != null);

            Utilities.Trace(this);

            rowCount = (int)((PixelHeight - TOP_MARGIN - BOTTOM_MARGIN) / m_maxEventHeight);

            if (AllEvents.Count > 0)
            {
                overrideRowCount = AllEvents.Max((s) => { return(s.RowOverride); }) + 1;
                rowCount         = Math.Max(rowCount, overrideRowCount);
            }

            if (rowCount == 0)
            {
                for (int i = 0; i < AllEvents.Count; ++i)
                {
                    e     = AllEvents[i];
                    e.Row = 0;
                }
            }
            else
            {
                dates = new DateTime[rowCount];

                for (int i = 0; i < rowCount; ++i)
                {
                    dates[i] = new DateTime();
                }

                count = AllEvents.Count;

                for (int i = 0; i < count; ++i)
                {
                    minDate  = dates[0];
                    minIndex = 0;
                    e        = AllEvents[i];

                    if (e.RowOverride == -1)
                    {
                        for (int k = 0; k < rowCount; ++k)
                        {
                            if (minDate > dates[k])
                            {
                                minIndex = k;
                                minDate  = dates[k];
                            }
                        }

                        dates[minIndex] = e.EndDate;
                        e.Row           = minIndex;
                    }
                    else
                    {
                        e.Row        = e.RowOverride;
                        dates[e.Row] = e.EndDate;
                    }
                }
            }
        }
Example #19
0
 public void TriggerEvent(string name)
 {
     AllEvents.First(x => x.guiName == name).Invoke();
 }
Example #20
0
 public bool HasEvent(string name)
 {
     return(AllEvents.Any(x => x.guiName == name));
 }
        private void Form1_Load(object sender, EventArgs e)
        {
            Random random = new Random();

            //Checks if the event database has already been created
            //This will take a short while to create all the different events and fill the database
            if (!File.Exists("Events.sqlite"))
            {
                //If its not created then create the database and add the table
                SQLiteConnection.CreateFile("Events.sqlite");

                dbConnect = new SQLiteConnection("Data Source=Events.sqlite;Version=3;");
                dbConnect.Open();

                SQLiteCommand commandLoggedIn = new SQLiteCommand("create table Events (user int, action varchar(10), latitude float, longitude float, date datetime)", dbConnect);
                commandLoggedIn.ExecuteNonQuery();

                //Runs loop 10,000 times to fill list with random events, locations and different users
                for (int i = 0; i < 10000; i++)
                {
                    AllEvents allEvents = new AllEvents();
                    allEvents.username = random.Next(100).ToString();
                    int actionNum = random.Next(5);

                    allEvents.action = GetAction();

                    allEvents.latitude  = GetRandomNumber(-90, 90);
                    allEvents.longitude = GetRandomNumber(-180, 180);

                    allEvents.date = GetRandomDate();

                    //Inserts data into SQL database
                    string eventString = "";
                    eventString += "insert into Events (user, action, latitude, longitude, date) values(@username, @act, @lat, @long, @date)";

                    SQLiteCommand eventInsert = new SQLiteCommand(eventString, dbConnect);

                    eventInsert.Parameters.AddWithValue("@username", allEvents.username);
                    eventInsert.Parameters.AddWithValue("@act", allEvents.action.ToString());
                    eventInsert.Parameters.AddWithValue("@lat", allEvents.latitude);
                    eventInsert.Parameters.AddWithValue("@long", allEvents.longitude);
                    eventInsert.Parameters.AddWithValue("@date", allEvents.date);

                    eventInsert.ExecuteNonQuery();
                }
            }
            else
            {
                //If database has been created then load it
                dbConnect = new SQLiteConnection("Data Source=Events.sqlite;Version=3;");
                dbConnect.Open();
            }

            //Add each event type to drop box
            foreach (Event events in Enum.GetValues(typeof(Event)))
            {
                ActionSelection.Items.Add(events.ToString());
            }

            ActionSelection.Text = "All";
        }
Example #22
0
        private void GenerateCtor()
        {
            var builder = _typeBuilder.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, new[]
            {
                typeof(ulong),
                typeof(IRemotingEndPoint),
                typeof(IEndPointChannel),
                typeof(ISerializer)
            });

            var gen = builder.GetILGenerator();

            gen.Emit(OpCodes.Ldarg_0);
            gen.Emit(OpCodes.Call, Methods.ObjectCtor);

            gen.Emit(OpCodes.Ldarg_0);
            gen.Emit(OpCodes.Ldarg_1);
            gen.Emit(OpCodes.Stfld, ObjectId);

            gen.Emit(OpCodes.Ldarg_0);
            gen.Emit(OpCodes.Ldarg_2);
            gen.Emit(OpCodes.Stfld, EndPoint);

            gen.Emit(OpCodes.Ldarg_0);
            gen.Emit(OpCodes.Ldarg_3);
            gen.Emit(OpCodes.Stfld, Channel);

            gen.Emit(OpCodes.Ldarg_0);
            gen.Emit(OpCodes.Ldarg, 4);
            gen.Emit(OpCodes.Stfld, Serializer);

            var perObjectEvents = AllEvents
                                  .Where(x => x.GetCustomAttribute <InvokeAttribute>() != null &&
                                         x.GetCustomAttribute <InvokeAttribute>().DispatchingStrategy == Dispatch.SerializePerObject)
                                  .ToList();

            if (perObjectEvents.Count > 0)
            {
                _perObjectScheduler = _typeBuilder.DefineField("_perObjectScheduler",
                                                               typeof(SerialTaskScheduler),
                                                               FieldAttributes.Private | FieldAttributes.InitOnly);

                gen.Emit(OpCodes.Ldarg_0);
                gen.Emit(OpCodes.Ldstr, InterfaceType.FullName);
                gen.Emit(OpCodes.Ldnull);
                gen.Emit(OpCodes.Ldarg_1);
                gen.Emit(OpCodes.Newobj, Methods.NullableUInt64Ctor);
                gen.Emit(OpCodes.Ldc_I4_0);
                gen.Emit(OpCodes.Newobj, Methods.SerialTaskSchedulerCtor);
                gen.Emit(OpCodes.Stfld, _perObjectScheduler);
            }

            var perMethodEvents = AllEvents
                                  .Where(x => x.GetCustomAttribute <InvokeAttribute>() != null &&
                                         x.GetCustomAttribute <InvokeAttribute>().DispatchingStrategy == Dispatch.SerializePerMethod)
                                  .ToList();

            foreach (var eventInfo in perMethodEvents)
            {
                var scheduler = _typeBuilder.DefineField(string.Format("_{0}", eventInfo.Name),
                                                         typeof(SerialTaskScheduler),
                                                         FieldAttributes.Private | FieldAttributes.InitOnly);

                gen.Emit(OpCodes.Ldarg_0);
                gen.Emit(OpCodes.Ldstr, InterfaceType.FullName);
                gen.Emit(OpCodes.Ldstr, eventInfo.Name);
                gen.Emit(OpCodes.Ldarg_1);
                gen.Emit(OpCodes.Newobj, Methods.NullableUInt64Ctor);
                gen.Emit(OpCodes.Ldc_I4_0);
                gen.Emit(OpCodes.Newobj, Methods.SerialTaskSchedulerCtor);
                gen.Emit(OpCodes.Stfld, scheduler);

                _perEventSchedulers.Add(eventInfo, scheduler);
            }

            gen.Emit(OpCodes.Ret);
        }
        private async Task SetEvents(ObservableCollection <Event> model)
        {
            try
            {
                if (model != null)
                {
                    var usermodel = await LocalStorage.ReadJsonFromFile <UserRegistrationPageViewModel>("registration");

                    if (usermodel != null)
                    {
                        var list = new ObservableCollection <Event>();

                        foreach (var ev in model)
                        {
                            try
                            {
                                if (usermodel.SelectedAudienceType.AudienceTypeName == "Student" &&
                                    (ev.EventType == "Firstparty_ProDev") && ev.EventRoles.Contains(usermodel.SelectedAudienceType.AudienceTypeName) == false)
                                {
                                    continue;
                                }
                                ev.Weightage = 1;

                                if (ev.GlobalEvent)
                                {
                                    ev.Weightage = 10;
                                    continue;
                                }

                                if (ev.EventType == "Webinar" &&
                                    ev.EventRoles.Contains(usermodel.SelectedAudienceType.AudienceTypeName))
                                {
                                    bool found = false;
                                    foreach (var tech in ev.EventTechnologies)
                                    {
                                        if (
                                            usermodel.SecondaryTechnologies.FirstOrDefault(
                                                x => x.IsSelected && x.PrimaryTechnologyName == tech) != null)
                                        {
                                            found = true;
                                            break;
                                        }
                                    }
                                    if (found)
                                    {
                                        ev.Weightage = 5;
                                    }
                                    else
                                    {
                                        ev.Weightage = 4;
                                    }
                                    continue;
                                }

                                if (ev.EventRoles.Contains(usermodel.SelectedAudienceType.AudienceTypeName) &&
                                    ev.CityName == usermodel.City.CityName)
                                {
                                    bool found = false;
                                    foreach (var tech in ev.EventTechnologies)
                                    {
                                        if (
                                            usermodel.SecondaryTechnologies.FirstOrDefault(
                                                x => x.IsSelected && x.PrimaryTechnologyName == tech) != null)
                                        {
                                            found = true;
                                            break;
                                        }
                                    }
                                    if (found)
                                    {
                                        ev.Weightage = 9;
                                    }
                                    else
                                    {
                                        ev.Weightage = 8;
                                    }
                                    continue;
                                }

                                if (ev.EventRoles.Contains(usermodel.SelectedAudienceType.AudienceTypeName))
                                {
                                    bool found = false;
                                    foreach (var tech in ev.EventTechnologies)
                                    {
                                        if (
                                            usermodel.SecondaryTechnologies.FirstOrDefault(
                                                x => x.IsSelected && x.PrimaryTechnologyName == tech) != null)
                                        {
                                            found = true;
                                            break;
                                        }
                                    }
                                    if (found)
                                    {
                                        ev.Weightage = 7;
                                    }
                                    else
                                    {
                                        ev.Weightage = 6;
                                    }
                                    continue;
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }

                        model = new ObservableCollection <Event>(model.OrderByDescending(x => x.Weightage));


                        this.AllEvents = model;

                        ObservableCollection <Event> recommendedmodel = null;

                        if (AllEvents.Count > 5)
                        {
                            recommendedmodel = new ObservableCollection <Event>(AllEvents.Take(5));
                            recommendedmodel.Add(new LoadMore());
                        }
                        else
                        {
                            recommendedmodel = AllEvents;
                        }
                        this.RecommendedEvents = recommendedmodel;
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Example #24
0
 void Init()
 {
     (m_Fields = new List <FieldInfo>(AllFields.Where(_ => Check(_)))).SortField();
     (m_Events = new List <EventInfo>(AllEvents.Where(_ => Check(_)))).SortEvent();
     (m_Propertys = new List <PropertyInfo>(AllPropertys.Where(_ => Check(_)))).SortProperty();
     m_Methods.Clear();
     foreach (var method in AllMethods)
     {
         if (!Check(method))
         {
             continue;
         }
         var valid        = true;
         var methodHandle = method.MethodHandle;
         //判断函数是不是 event add remove 函数
         foreach (var eventInfo in AllEvents)
         {
             if (eventInfo.GetAddMethod().MethodHandle == methodHandle || eventInfo.GetRemoveMethod().MethodHandle == methodHandle)
             {
                 if (!Check(eventInfo))
                 {
                     valid = false;
                 }
                 break;
             }
         }
         if (valid)
         {
             //判断函数是不是 get set 函数
             foreach (var propertyInfo in AllPropertys)
             {
                 //如果是struct 并且是 set 属性则屏蔽,强转结构体的set会报错
                 if (IsStruct && propertyInfo.GetSetMethod()?.MethodHandle == methodHandle)
                 {
                     valid = false;
                     break;
                 }
                 else if (propertyInfo.GetGetMethod()?.MethodHandle == methodHandle || propertyInfo.GetSetMethod()?.MethodHandle == methodHandle)
                 {
                     if (!Check(propertyInfo))
                     {
                         valid = false;
                     }
                     break;
                 }
             }
         }
         if (valid)
         {
             m_Methods.Add(method);
         }
     }
     m_Methods.SortMethod();
     m_ExtensionMethods.Clear();
     foreach (var extensionInfo in m_Extensions)
     {
         var nameSpace = extensionInfo.Namespace;
         var methods   = extensionInfo.GetMethods(Script.BindingFlag);
         foreach (var methodInfo in methods)
         {
             //非扩展函数
             if (!Util.IsExtensionMethod(methodInfo) || !Check(methodInfo))
             {
                 continue;
             }
             var paramterType = methodInfo.GetParameters()[0].ParameterType;
             //判断是模板函数
             if (paramterType.IsGenericParameter && paramterType.BaseType != null && paramterType.BaseType.IsAssignableFrom(m_Type))
             {
                 m_ExtensionMethods.Add(methodInfo);
             }
             else if (ScorpioReflectUtil.CheckGenericMethod(methodInfo) && paramterType.IsAssignableFrom(m_Type))
             {
                 m_ExtensionMethods.Add(methodInfo);
             }
             else
             {
                 continue;
             }
             if (!string.IsNullOrWhiteSpace(nameSpace))
             {
                 m_ExtensionUsing.Add(nameSpace);
             }
         }
     }
     m_ExtensionMethods.SortMethod();
     m_Methods.ForEach(_ => m_MethodNames.Add(_.Name));
     m_ExtensionMethods.ForEach(_ => m_MethodNames.Add(_.Name));
 }
Example #25
0
        public Task <IEnumerable <IEntityEvent <Guid> > > GetEvents(DateTime start, DateTime end)
        {
            var events = AllEvents.Where(e => e.Timestamp >= start && e.Timestamp <= end);

            return(Task.FromResult(events));
        }