예제 #1
0
        private void FilterEventsByDate()
        {
            var filteredEvents = Events.Where(t => t.StartDateTime.Date <= selDate.Date && t.FinishDateTime.Date >= selDate.Date);

            filteredEvents.OrderBy(t => t.StartDateTime.Date);

            CurrentEvents.Clear();
            foreach (var i in filteredEvents)
            {
                CurrentEvents.Add(i);
            }
        }
예제 #2
0
        public async Task <TwilioResponse> SetSigninEvent(TwilioRequest request)
        {
            var response = new TwilioResponse();

            using (var db = dbFactory())
            {
                var signin = await GetMembersLatestSignin(db, session.MemberId);

                await RosterController.AssignInternal(signin, session.EventId, db, this.config);

                var name = CurrentEvents.Where(f => f.Id == session.EventId).Select(f => f.Name).SingleOrDefault();
                response.SayVoice(Speeches.ChangeEventTemplate, name);
            }

            response.Redirect(Url.Content("~/api/Voice/Menu") + session.ToQueryString());

            return(LogResponse(response));
        }
예제 #3
0
        private static List <IEvent> SendInput_Flatten(this IEnumerable <IEvent> This, SendInputOptions Options)
        {
            var MaxItemsPerBatch = Math.Max(1, Options.BatchSize);
            var BatchDelay       = Options.BatchDelay > TimeSpan.Zero ? Options.BatchDelay : TimeSpan.Zero;
            var BatchDelayItem   = BatchDelay > TimeSpan.Zero ? new Wait(BatchDelay) : default;

            var Linear = new List <IEvent>();

            var CurrentEvents = new List <IEvent>();
            var CurrentInputs = new List <IReadOnlyCollection <INPUT> >();

            void WrapUp()
            {
                if (CurrentEvents.Count > 0)
                {
                    var InputList = CurrentInputs.SelectMany(x => x).ToArray();

                    Linear.Add(new RawInputAggregate(CurrentEvents, InputList));
                    CurrentEvents = new List <IEvent>();
                    CurrentInputs = new List <IReadOnlyCollection <INPUT> >();
                }
            }

            foreach (var CurrentEvent in This)
            {
                if (CurrentEvent is IEnumerable <IEvent> E)
                {
                    var RecursiveChildren = E.RecursiveChildren().ToList();
                    if (RecursiveChildren.TrueForAll(x => x is RawInput))
                    {
                        CurrentEvents.Add(CurrentEvent);

                        foreach (var RecursiveChild in RecursiveChildren.OfType <RawInput>().Select(x => x.Data))
                        {
                            CurrentInputs.Add(RecursiveChild);

                            if (CurrentInputs.Count >= MaxItemsPerBatch)
                            {
                                WrapUp();
                                CurrentEvents.Add(CurrentEvent);

                                if (BatchDelayItem is { })