public void AddEvent(Event @event)
        {
            var   data = @event.Data;
            Int64 id   = data.Id;

            switch (@event.Name)
            {
            case "ITEM-CREATED":
                string title        = data.Title;
                bool   isCompleted1 = data.IsCompleted;
                OnEventAdded.Invoke(this,
                                    new TodoItemCreatedArgs(id, title, isCompleted1));
                break;

            case "ITEM-COMPLETED":
                bool isCompleted2 = data.IsCompleted;
                OnEventAdded.Invoke(this,
                                    new TodoItemCompletedArgs(id, isCompleted2));
                break;

            case "ITEM-DELETED":
                OnEventAdded.Invoke(this,
                                    new TodoItemDeletedArgs(id));
                break;

            default:
                OnEventAdded.Invoke(this, new EventArgs());
                break;
            }
            _ctx.Events.Add(@event);
            _ctx.SaveChanges();
        }
示例#2
0
        private void RaiseOnEventAdded(string eventName)
        {
            var handler = OnEventAdded;

            if (handler != null)
            {
                OnEventAdded?.Invoke(this, eventName);
            }
        }
        void AddSubscription(Type handlerType, string eventName, Type eventType = null)
        {
            if (!HasSubscriptions(eventName))
            {
                _eventHandlers.Add(eventName, new List <Subscription>());
                OnEventAdded?.Invoke(this, eventName);
            }

            if (_eventHandlers[eventName].Any(s => s.HandlerType == handlerType))
            {
                throw new ArgumentException($"Handler {handlerType.Name} already register for '{eventName}'", nameof(handlerType));
            }
            _eventHandlers[eventName].Add(Subscription.Create(handlerType, eventType));
        }
示例#4
0
        private void AddSubscription(Type handlerType, string eventName, Type eventType = null)
        {
            if (!HasSubscriptionsForEvent(eventName))
            {
                _handlers.Add(eventName, new List <Subscription>());
                OnEventAdded?.Invoke(this, new EventEventArgs(eventName));
            }

            if (((List <Subscription>)_handlers[eventName]).Any(s => s.HandlerType == handlerType))
            {
                throw new ArgumentException(
                          $"Handler Type {handlerType.Name} already registered for '{eventName}'", nameof(handlerType));
            }

            _handlers[eventName].Add(Subscription.New(
                                         handlerType, eventType)
                                     );
        }
示例#5
0
 public void AddEvent(ScheduledEvent ev)
 {
     if (!listofevents.Any(item => item.Name == ev.Name))
     {
         if ((Email == null) && (ev.Notifications.Contains(NotificationType.Email)))
         {
             try
             {
                 Email = NotiFactory.Default.GetEmail();
             }
             catch
             {
                 MessageBoxResult result = System.Windows.MessageBox.Show(String.Join(Environment.NewLine, "Retry?",
                                                                                      "Press No if you don't need Email Noptification"),
                                                                          "Authentication error", MessageBoxButton.YesNo,
                                                                          MessageBoxImage.Error);
                 if (result == MessageBoxResult.Yes)
                 {
                     Email = null;
                     if (Directory.Exists(".credentials"))
                     {
                         Directory.Delete(".credentials", true);
                     }
                     Email = NotiFactory.Default.GetEmail();
                 }
                 ;
             }
         }
         int index = listofevents.FindIndex(e => e.DateTime > ev.DateTime);
         if (index >= 0)
         {
             listofevents.Insert(index, ev);
         }
         else
         {
             listofevents.Add(ev);
         }
         OnEventAdded?.Invoke(ev);
     }
     else
     {
         throw new ArgumentException("The event witn such method had been already added");
     }
 }
示例#6
0
        private void AddSubscription(Type handlerType, string eventName, Type eventType)
        {
            if (!HasSubscriptionsForEvent(eventName))
            {
                _handlers.Add(eventName, new List <Subscription>());
                if (OnEventAdded != null)
                {
                    OnEventAdded.Invoke(this, new EventEventArgs(eventName));
                }
            }

            if (((List <Subscription>)_handlers[eventName]).Any(s => s.HandlerType == handlerType))
            {
                throw new ArgumentException(
                          string.Format("Handler Type {0} already registered for '{1}'", handlerType.Name, eventName), "handlerType");
            }

            _handlers[eventName].Add(Subscription.New(
                                         handlerType, eventType)
                                     );
        }
示例#7
0
        private void DoAddSubscription(Type handlerType, string eventName, bool isDynamic)
        {
            if (!HasSubscriptionsForEvent(eventName))
            {
                _handlers.Add(eventName, new List <SubscriptionInfo>());
                OnEventAdded?.Invoke(this, eventName);
            }

            if (_handlers[eventName].Any(s => s.HandlerType == handlerType))
            {
                throw new ArgumentException(
                          $"Handler Type {handlerType.Name} already registered for '{eventName}'", nameof(handlerType));
            }

            if (isDynamic)
            {
                _handlers[eventName].Add(SubscriptionInfo.Dynamic(handlerType));
            }
            else
            {
                _handlers[eventName].Add(SubscriptionInfo.Typed(handlerType));
            }
        }
示例#8
0
        /// <summary>
        /// Adds a subscription for a given event of type T (IntegrationEvent)
        /// with its handler of type TH (IntegrationEventHandler<T>) and
        /// raises OnEventAdded so EventBus can handle its queue creation.
        /// </summary>
        /// <typeparam name="T">Integration event type</typeparam>
        /// <typeparam name="TH">Integration event handler type</typeparam>
        public void AddSubscription <T, TH>()
            where T : IntegrationEvent
            where TH : IIntegrationEventHandler <T>
        {
            var eventName   = GetEventKey <T>();
            var handlerType = typeof(TH);

            if (!HasSubscriptionsForEvent(eventName))
            {
                _eventHandlers.Add(eventName, new List <Subscription>());
                OnEventAdded?.Invoke(this, eventName);
            }

            if (_eventHandlers[eventName].Any(s => s.HandlerType == handlerType))
            {
                throw new ArgumentException(
                          $"Handler Type {handlerType.Name} already registered for '{eventName}'", nameof(handlerType));
            }

            _eventHandlers[eventName].Add(Subscription.New(typeof(T), handlerType));

            OnEventAdded?.Invoke(this, eventName);
        }
        private async Task AddEventToSelectedDay()
        {
            // Convert the time to the a new date within the selected day
            model.StartDate = new DateTime(SelectedDay.Date.Year,
                                           SelectedDay.Date.Month,
                                           SelectedDay.Date.Day,
                                           model.StartDate.Hour,
                                           model.StartDate.Minute,
                                           0);

            model.EndDate = new DateTime(SelectedDay.Date.Year,
                                         SelectedDay.Date.Month,
                                         SelectedDay.Date.Day,
                                         model.EndDate.Hour,
                                         model.EndDate.Minute,
                                         0);

            if (SelectedDay.Events == null)
            {
                SelectedDay.Events = new List <CalendarEvent>();
            }

            var calendarEvent = new CalendarEvent
            {
                Subject   = model.Subject,
                StartDate = model.StartDate,
                EndDate   = model.EndDate
            };

            SelectedDay.Events.Add(calendarEvent);
            OnEventAdded.Invoke();

            Console.WriteLine($"Total Events in Day {SelectedDay.Events.Count} | {model.Subject} | {model.StartDate} | {model.EndDate}");

            model = new CalendarEvent();
        }
示例#10
0
 public void AddEvent(EventLogMessage evt)
 {
     _eventRecord.Add(evt);
     OnEventAdded?.Invoke(evt);
 }