Пример #1
0
        public IEnumerable <CommonFreeTimesViewModel> GetBestCommonFreeTimesViewModels(
            CreateEventTimeSlotsViewModel commonFreeTimesViewModel)
        {
            var commonFreeTimes = _eventCore.GetCommonFreeTimes(commonFreeTimesViewModel);

            return(commonFreeTimes);
        }
Пример #2
0
        public IEnumerable <CommonFreeTimesViewModel> GetCommonFreeTimes(
            CreateEventTimeSlotsViewModel commonFreeTimesViewModel)
        {
            var ids             = commonFreeTimesViewModel.UserIds;
            var date            = commonFreeTimesViewModel.Date;
            var commonFreeTimes = new List <TimeSlot>();

            var timeSlot      = new TimeSlot();
            var availableTime = new TimeSlot();
            var iteration     = 0;

            foreach (var id in ids)
            {
                var tempCommonFreeTimes = new List <TimeSlot>();

                //todo: user event end time
                availableTime.StartTime = ChangeTime(date, 0, 0, 0);
                availableTime.EndTime   = ChangeTime(date, 23, 59, 59);

                var even   = UserEventsWtihIdDate(id, date).ToList();
                var events = even.OrderBy(o => o.StartDateTime.ToLocalTime());

                var isItEndOfAvailableTime = false;
                foreach (var userEvent in events)
                {
                    if (userEvent.StartDateTime.ToLocalTime() == availableTime.StartTime)
                    {
                    }
                    else
                    {
                        timeSlot.StartTime = availableTime.StartTime;
                        timeSlot.EndTime   = userEvent.StartDateTime.ToLocalTime();

                        //add timeslot in a list
                        if (iteration > 0)
                        {
                            tempCommonFreeTimes = FindBestTime(commonFreeTimes, timeSlot, tempCommonFreeTimes);
                        }
                        else
                        {
                            commonFreeTimes.Add(new TimeSlot()
                            {
                                StartTime = timeSlot.StartTime, EndTime = timeSlot.EndTime
                            });
                        }
                    }

                    var @event   = _atomicEventWork.GetEventDetails(userEvent.EventId);
                    var tempTime = Convert.ToDateTime(@event.EndDatetime);

                    availableTime.StartTime = tempTime;

                    if (tempTime == availableTime.EndTime)
                    {
                        isItEndOfAvailableTime = true;
                    }
                }
                if (isItEndOfAvailableTime == false)
                {
                    timeSlot.StartTime = availableTime.StartTime;
                    timeSlot.EndTime   = availableTime.EndTime;

                    if (iteration > 0)
                    {
                        tempCommonFreeTimes = FindBestTime(commonFreeTimes, timeSlot, tempCommonFreeTimes);
                    }
                    else
                    {
                        commonFreeTimes.Add(new TimeSlot()
                        {
                            StartTime = timeSlot.StartTime, EndTime = timeSlot.EndTime
                        });
                    }
                }
                if (iteration > 0)
                {
                    commonFreeTimes = tempCommonFreeTimes;
                }

                iteration = 1;
            }

            return(ToBestCommonFreeTimesViewModel(commonFreeTimes));
        }
Пример #3
0
        public PartialViewResult GetCommonFreeTime(CreateEventTimeSlotsViewModel commonFreeTimesViewModel)
        {
            var bestCommonFreeTimes = _eventFacade.GetBestCommonFreeTimesViewModels(commonFreeTimesViewModel);

            return(PartialView("CreateEventTwo/_CreateEventTimeCityPartialPage", bestCommonFreeTimes));
        }