public ScheduleDto GetSchedule(ScheduleRequest request)
        {
            string url = rootUrl + "/conferences/" + request.conferenceSlug + "/schedule/" + request.userSlug;

              var client = new WebClient { Encoding = System.Text.Encoding.UTF8 };
              client.Headers[HttpRequestHeader.Accept] = "application/json";
              var returnString = client.DownloadString(new Uri(url));
              var schedule = JsonSerializer.DeserializeFromString<ScheduleDto>(returnString);
              return schedule;
        }
Beispiel #2
0
        public static bool GetScheduleEventForTVProgramme(CommonEPG.TVProgramme tvp, ref ScheduleEvent matchingEvent, ref ScheduleRequest matchingRequest)
        {
            CommonEPG.TVService tvc = EPGManager.TVServiceWithIDOrNull(tvp.ServiceID);
            if (tvc == null)
            {
                return(false);
            }

            return(GetScheduleEventAtExactTimeOnChannel(tvp.StartTimeDT(), tvc.Callsign, false, "", ref matchingEvent, ref matchingRequest));
        }
Beispiel #3
0
 public IActionResult GetShedules([FromQuery] ScheduleRequest request)
 {
     request.BranchId = BranchId;
     return(Ok(_customerScheduleService.GetShedules(request)));
 }
Beispiel #4
0
        public void AddScheduleToValidationServerVerificationWorks(IValidatorRunner validatorRunner, IScheduleCallback scheduleCallbacker, IValidationScheduler validatorScheduler, IValidatorProvider validatorProvider, IList <IValidatorInstance> validatorInstancesToReturn, string unknownInstanceId, string includedAndNotScheduledValidatorIdInstanceId,
                                                                   string includedAndScheduledValidatorIdInstanceId, string includedAndScheduledValidatorId, string includedAndNotScheduledValidatorId, string unknownProxyId, IList <IValidatorProxy> validatorProxiesToReturn, IValidationResultHandler[] notificationHandler, IPublishEndpoint publishEndpoint)
        {
            var includedProxy    = Substitute.For <IValidatorProxy>();
            var includedInstance = Substitute.For <IValidatorInstance>();

            includedProxy.ValidatorId.ReturnsForAnyArgs(includedAndNotScheduledValidatorId);
            includedInstance.ValidatorInstanceId.ReturnsForAnyArgs(includedAndNotScheduledValidatorIdInstanceId);

            var includedAndScheduledProxy    = Substitute.For <IValidatorProxy>();
            var includedAndScheduledInstance = Substitute.For <IValidatorInstance>();

            includedAndScheduledProxy.ValidatorId.ReturnsForAnyArgs(includedAndScheduledValidatorId);
            includedAndScheduledInstance.ValidatorInstanceId.ReturnsForAnyArgs(includedAndScheduledValidatorIdInstanceId);

            validatorProvider.GetValidatorProxy(includedProxy.ValidatorId).Returns(includedProxy);
            validatorProvider.GetValidatorProxy(includedAndScheduledProxy.ValidatorId).Returns(includedAndScheduledProxy);

            validatorProvider.GetValidatorInstance(includedAndScheduledValidatorId, includedAndScheduledValidatorIdInstanceId).Returns(includedAndScheduledInstance);

            validatorProvider.GetValidatorInstance(includedAndNotScheduledValidatorId, includedAndNotScheduledValidatorIdInstanceId).Returns(includedInstance);

            validatorScheduler.IsValidationScheduled(includedAndNotScheduledValidatorId, includedAndNotScheduledValidatorIdInstanceId).Returns(false);

            validatorScheduler.IsValidationScheduled(includedAndScheduledValidatorId, includedAndScheduledValidatorIdInstanceId).Returns(true);


            validatorProvider.When(x => x.GetValidatorProxy(Arg.Is <string>(d => d != includedAndNotScheduledValidatorId && d != includedAndScheduledValidatorId))).Do(g => { throw new Exception(); });

            validatorProvider.When(x => x.GetValidatorInstance(Arg.Any <string>(), Arg.Is <string>(d => d != includedAndNotScheduledValidatorIdInstanceId && d != includedAndScheduledValidatorIdInstanceId))).Do(g => { throw new Exception(); });

            var vs = new ValidationServer(validatorProvider, validatorRunner, validatorScheduler, scheduleCallbacker, publishEndpoint, notificationHandler);

            ScheduleRequest validRequest = new ScheduleRequest(includedProxy.ValidatorId, includedInstance.ValidatorInstanceId, "* * * * *");
            ScheduleRequest requestWithInValidInstance = new ScheduleRequest(includedProxy.ValidatorId, unknownInstanceId, "* * * * *");
            ScheduleRequest requestWithInValidProxy    = new ScheduleRequest(unknownProxyId, unknownInstanceId, "* * * * *");
            ScheduleRequest alreadyScheduledRequest    = new ScheduleRequest(includedAndScheduledValidatorId, includedAndScheduledValidatorIdInstanceId, "* * * * *");

            //This do not throw - Pass Verification
            vs.AddValidationsToSchedule(new List <ScheduleRequest>()
            {
                validRequest
            });

            //This throw cause proxy is not available
            Assert.ThrowsAny <Exception>(() => vs.AddValidationsToSchedule(new List <ScheduleRequest>()
            {
                requestWithInValidInstance
            }));

            //This throws cause instance is not available
            Assert.ThrowsAny <Exception>(() => vs.AddValidationsToSchedule(new List <ScheduleRequest>()
            {
                requestWithInValidInstance
            }));

            //This throws cause item is already scheduled is not available
            Assert.ThrowsAny <Exception>(() => vs.AddValidationsToSchedule(new List <ScheduleRequest>()
            {
                alreadyScheduledRequest
            }));
        }
        public void HangFireItemScheduledCronTabInvalid(string validatorId, string validatorInstanceId, string cronTabExpressionInvalid)
        {
            IScheduleRequest scheduleRequest = new ScheduleRequest(validatorId, validatorInstanceId, cronTabExpressionInvalid);

            Assert.ThrowsAny <Exception>(() => this._hangFireScheduler.AddValidationToSchedule(scheduleRequest));
        }
 public IActionResult Post([FromBody] ScheduleRequest scheduleRequest)
 {
     appointmentManager.CreateAppointment(scheduleRequest);
     return(Ok());
 }
 /// <summary>
 /// Enqueues a task on the target taskprocessor object
 /// </summary>
 /// <param name="task">the task selected for execution</param>
 protected void EnqueueTaskOnTarget(ScheduleRequest task)
 {
     task.Target.TaskScheduled(new TaskContainer {
         Request = task, Task = task.Task
     });
 }
 /// <summary>
 /// Executes a task that was previously scheduled if appropriate
 /// </summary>
 /// <param name="task">the task that was requested for execution</param>
 /// <param name="action">the action that is performed to the provided task</param>
 public virtual bool RunScheduledTask(ScheduleRequest task, Action <ITask> action)
 {
     action(task.Task);
     return(true);
 }
Beispiel #9
0
 public IEnumerable <BillModel> Filter(IEnumerable <BillModel> billModels, ScheduleRequest request)
 {
     return(scheduleFilters.Aggregate(billModels, (current, filter) => filter.Filter(current, request)));
 }
        public async Task <int> Schedule(ScheduleRequest request)
        {
            //Lấy toàn bộ những lớp học phần theo học kỳ & năm học
            var lopHocPhans = _context.LopHocPhans.Where(
                x => x.HK_HocKy.Equals(request.HocKy) &&
                x.HK_NamHoc.Equals(request.NamHoc))
                              .ToList();

            //Tạo biến random để random buổi & ngày học
            Random random = new Random();

            //Random ngày học và buổi học của lớp đầu tiên
            int randomBuoiHoc = random.Next(1, 3);

            lopHocPhans[0].BuoiHoc = RandomBuoiHoc(randomBuoiHoc);
            int randomNgayHoc = random.Next(2, 8);

            lopHocPhans[0].NgayHoc = RandomNgayHoc(randomNgayHoc);

            //Tạo danh sách lớp học phần đã tạo lịch thành công
            var scheduledLopHocPhan = new List <LopHocPhan>();

            scheduledLopHocPhan.Add(lopHocPhans[0]);

            for (int current = 1; current < lopHocPhans.Count(); current++)
            {
                //Kiểm tra giảng viên tại row hiện tại có tồn tại trong list đã sắp xếp chưa, và kiểm tra gv có bận buổi dạy đó chưa
                //true là đã bận
                bool checkGiangVien = true;

                //Kiểm tra phòng học tại row hiện tại có tồn tại trong list đã sắp xếp chưa, và kiểm tra phòng đã có lớp khác sự dụng không
                //true là đã bận
                bool checkPhong = true;

                //Điều kiện ngừng lặp
                int loopCount = 1;

                //Nếu giảng viên hoặc phòng học tại row hiện tại đã bận, random 1 buổi khác
                //loopCount = lặp qua số lượng phòng được request * 21 buổi để tìm buổi trống
                while ((checkGiangVien || checkPhong) && loopCount <= request.RoomCount * 21)
                {
                    //Random ngày học và buổi học cho row hiện tại
                    int randomBuoi = random.Next(1, 4);
                    lopHocPhans[current].BuoiHoc = RandomBuoiHoc(randomBuoi);
                    int randomNgay = random.Next(2, 9);
                    lopHocPhans[current].NgayHoc = RandomNgayHoc(randomNgay);

                    //Kiểm tra giảng viên tại row hiện tại có tồn tại trong list đã sắp xếp chưa, và kiểm tra gv có bận buổi dạy đó chưa
                    checkGiangVien = scheduledLopHocPhan.Any(
                        x => x.ID_GiangVien == lopHocPhans[current].ID_GiangVien &&
                        x.BuoiHoc == lopHocPhans[current].BuoiHoc &&
                        x.NgayHoc == lopHocPhans[current].NgayHoc);

                    //Random phòng mới cho ngày học của row hiện tại
                    var listPhong   = _context.Phongs.ToList();
                    var randomPhong = random.Next(request.RoomCount);
                    lopHocPhans[current].ID_Phong = listPhong[randomPhong].ID;

                    //Kiểm tra phòng học tại row hiện tại có tồn tại trong list đã sắp xếp chưa, và kiểm tra phòng đã có lớp khác sự dụng không
                    checkPhong = scheduledLopHocPhan.Any(
                        x => x.ID_Phong == lopHocPhans[current].ID_Phong &&
                        x.BuoiHoc == lopHocPhans[current].BuoiHoc &&
                        x.NgayHoc == lopHocPhans[current].NgayHoc);

                    loopCount++;
                }


                //Thêm lớp học phần vào list cần check
                scheduledLopHocPhan.Add(lopHocPhans[current]);
            }

            return(await _context.SaveChangesAsync());
        }
Beispiel #11
0
 public Task <ScheduleResponse> GetScheduleAsync(ScheduleRequest request, CancellationToken cancellationToken)
 {
     return(CallAsync <ScheduleRequest, CancellationToken, ScheduleResponse>(x => x.GetScheduleAsync, request, cancellationToken));
 }
Beispiel #12
0
 public EventSyncResponse CourseSchedule(ScheduleRequest model)
 {
Beispiel #13
0
 public string getData(ScheduleRequest request)
 {
     return(getWorkShiftOfEmp(request));
 }
 public List <Data.Model.Schedule> Get([FromQuery] ScheduleRequest request)
 {
     return(_service.Get(request));
 }
Beispiel #15
0
        public static bool GetScheduleEventAtExactTimeOnChannel(DateTime exactTime, string callsign, bool matchTitleStart, string txtTitleStartsWith, ref ScheduleEvent matchingEvent, ref ScheduleRequest matchingRequest)
        {
            // We have a channel to search for, what's the service ID
            string svcID = EPGManager.ServiceIDFromCallsign(callsign);

            // So now bother to get the events
            List <ScheduleEvent> theList = GetScheduleEventsAroundExactTime(exactTime, 3);

            foreach (ScheduleEvent se in theList)
            {
                if (matchTitleStart)
                {
                    string seTitle = (string)se.GetExtendedProperty("Title");
                    if (!seTitle.ToLowerInvariant().StartsWith(txtTitleStartsWith.ToLowerInvariant()))
                    {
                        continue;  // ie Do not match
                    }
                }

                if ((string)se.GetExtendedProperty("ServiceID") == svcID)
                {
                    matchingEvent = se;

                    // Match schedule request, if there is one
                    try
                    {
                        matchingRequest = se.GetScheduleRequest();
                    }
                    catch
                    {
                        matchingRequest = null;
                    }

                    return(true);
                }
            }

            return(false); // no match
        }
 /// <summary>
 /// Schedules a task for execution
 /// </summary>
 /// <param name="task">the task that needs to be executed</param>
 /// <returns>a value indicating whether the task was scheduled</returns>
 public virtual bool ScheduleTask(ScheduleRequest task)
 {
     EnqueueTaskOnTarget(task);
     return(true);
 }
Beispiel #17
0
        public async Task Load()
        {
            var userModel = await _userService.GetById <Data.Model.Users>(APIService.UserID);

            if (userModel != null)
            {
                var request = new ScheduleRequest()
                {
                    userName     = userModel.FirstName,
                    userLastName = userModel.LastName,
                    AdminSearch  = false
                };
                var list = await _userSchedulesService.Get <List <Data.Model.Schedule> >(request);

                userSchedulesList.Clear();
                foreach (var x in list)
                {
                    userSchedulesList.Add(x);
                }
            }
            userActiveScheduleList.Clear();
            foreach (var s in userSchedulesList)
            {
                if (s.ScheduleStatusID == 1)
                {
                    userActiveScheduleList.Add(s);
                }
            }
            if (userActiveScheduleList.Count() > 0)
            {
                ActiveSchedule = userActiveScheduleList.First();
            }


            if (ActiveSchedule != null)
            {
                ScheduleVM = await _scheduleService.GetById <Data.ViewModel.ScheduleVM>(ActiveSchedule.ScheduleID);

                var listOffer = await _offerService.Get <List <Data.ViewModel.OffersVM> >(new OfferSearchRequest()
                {
                    ScheduleID = ScheduleVM.ScheduleID
                });

                if (listOffer.Count() > 0)
                {
                    OfferVM = listOffer.First();
                }


                if (ScheduleVM.offerCreated)
                {
                    sendMessage = true;
                }

                if (OfferVM != null)
                {
                    if (OfferVM.partsSelected)
                    {
                        sendMessage = false;
                    }
                }
            }
        }
        /// <summary>
        /// Executes a task that was previously scheduled if appropriate
        /// </summary>
        /// <param name="task">the task that was requested for execution</param>
        /// <param name="action">the action that is performed to the provided task</param>
        public virtual async Task <bool> RunScheduledTaskAsync(ScheduleRequest task, Func <ITask, Task> action)
        {
            await action(task.Task);

            return(true);
        }
Beispiel #19
0
 public string getData(ScheduleRequest request)
 {
     return(getDataHisAttendance(request));
 }
 /// <summary>
 /// Integrates a task into the runtime environment.
 /// </summary>
 /// <param name="task">the Schedule - Request that needs to be re-integrated after deserialization</param>
 protected void IntegrateTaskOnTarget(ScheduleRequest task)
 {
     task.Target.IntegrateTask(task.Task);
     task.IntegrateRequest(this);
 }
Beispiel #21
0
 /// <summary>
 /// Gets the games by the request specified
 /// </summary>
 /// <param name="request">The options to retrieve games by</param>
 /// <returns>Games matching the request</returns>
 public async Task <List <Date> > GetSchedule(ScheduleRequest request)
 {
     return(JsonConvert.DeserializeObject <ScheduleResponse>(
                await DoRequest($"schedule?{request}")
                ).Dates);
 }
        public void HangFireItemEditNonExistingScheduleThrows(string validatorId, string validatorInstanceId)
        {
            IScheduleRequest scheduleRequest = new ScheduleRequest(validatorId, validatorInstanceId, CronTabExpressionRunHourly);

            Assert.ThrowsAny <Exception>(() => this._hangFireScheduler.EditValidationSchedule(scheduleRequest));
        }
        /// <summary>
        /// Create a meeting for selected time by user.
        /// </summary>
        /// <param name="meeting">Object containing details required for meeting creation.</param>
        /// <param name="token">User Active Directory access token.</param>
        /// <returns>Meeting response.</returns>
        public async Task <CreateEventResponse> CreateMeetingAsync(CreateEvent meeting, string token)
        {
            DateTime.TryParse(meeting.Time, out DateTime localTime);
            var startDateTime = localTime.AddMinutes(Constants.DurationGapFromNow.Minutes);
            var endDateTime   = startDateTime.AddMinutes(meeting.Duration);

            ScheduleRequest scheduleRequest = new ScheduleRequest
            {
                StartDateTime = new DateTimeAndTimeZone()
                {
                    DateTime = startDateTime, TimeZone = meeting.TimeZone
                },
                EndDateTime = new DateTimeAndTimeZone()
                {
                    DateTime = endDateTime, TimeZone = meeting.TimeZone
                },
                Schedules = new List <string>(),
            };

            scheduleRequest.Schedules.Add(meeting.RoomEmail);
            var roomScheduleResponse = await this.meetingProvider.GetRoomsScheduleAsync(scheduleRequest, token).ConfigureAwait(false);

            if (roomScheduleResponse.ErrorResponse != null)
            {
                // Graph API returned error message.
                return(new CreateEventResponse {
                    StatusCode = roomScheduleResponse.StatusCode, ErrorResponse = roomScheduleResponse.ErrorResponse
                });
            }

            if (roomScheduleResponse.Schedules?.FirstOrDefault()?.ScheduleItems?.Count == 0)
            {
                CreateEventRequest request = new CreateEventRequest()
                {
                    Attendees = new List <Attendee>(),
                    Body      = new Body {
                        Content = Strings.MeetingBody, ContentType = "HTML"
                    },
                    End = new DateTimeAndTimeZone {
                        DateTime = endDateTime, TimeZone = meeting.TimeZone
                    },
                    Start = new DateTimeAndTimeZone {
                        DateTime = startDateTime, TimeZone = meeting.TimeZone
                    },
                    Subject  = Strings.MeetingBody,
                    Location = new Location {
                        DisplayName = meeting.RoomName
                    },
                };

                request.Attendees.Add(new Attendee {
                    EmailAddress = new EmailAddress {
                        Address = meeting.RoomEmail, Name = meeting.RoomName
                    }, Type = "required"
                });
                return(await this.meetingProvider.CreateMeetingAsync(request, token).ConfigureAwait(false));
            }
            else
            {
                return(new CreateEventResponse
                {
                    ErrorResponse = new App.BookAThing.Common.Models.Error.ErrorResponse
                    {
                        Error = new App.BookAThing.Common.Models.Error.Error
                        {
                            StatusCode = "ScheduleExist",
                            ErrorMessage = "Schedule for room exist",
                        },
                    },
                });
            }
        }
 public Schedule CreateSchedule(string installedAppId, ScheduleRequest scheduleRequest)
 {
     return(_schedulesApi.CreateSchedule(installedAppId, _accessToken, scheduleRequest));
 }
Beispiel #25
0
        public async Task SendRequest()
        {
            var requestsList = await _requestByClientService.Get <List <Data.ViewModel.RequestVM> >(null);

            if (requestsList.Count() > 0)
            {
                foreach (var x in requestsList)
                {
                    if (x.UserID == APIService.UserID)
                    {
                        await Application.Current.MainPage.DisplayAlert("Upozorenje", "Imate već jedan aktivan zahtjev za termin servisiranja u nekom od auto servisa. Da bi poslali zahtjev za servisranjem nekom od auto servisa, ne smijete imati trenutno aktivnih zahtjeva(zahtjev koji je na čekanju i nije obrađen).", "OK");

                        return;
                    }
                }
            }
            var userModel = await _userService.GetById <Data.Model.Users>(APIService.UserID);


            ScheduleRequest schReq = new ScheduleRequest()
            {
                userName     = userModel.FirstName,
                userLastName = userModel.LastName
            };

            var schedulesList = await _scheduleService.Get <List <Data.Model.Schedule> >(schReq);

            if (schedulesList.Count() > 0)
            {
                foreach (var x in schedulesList)
                {
                    if (x.ScheduleStatusID == 1)
                    {
                        await Application.Current.MainPage.DisplayAlert("Upozorenje", "Trenutno imate aktivan termin u auto servisu: " + x.CarServiceName + ". Trenutni termin mora biti završen(okončan) da bi mogli poslati novi zahtjev za servisiranjem u ovaj ili neki drugi auto servis!", "OK");

                        return;
                    }
                }
            }
            var request = new RequestUpsert()
            {
                DateOfRequest   = DateTime.Now,
                UserID          = APIService.UserID,
                CarServiceID    = modelCS.CarServiceID,
                RequestStatusID = 1,
            };

            foreach (var x in SelectedServicesList)
            {
                request._selectedServicesList.Add(new Data.Model.Services()
                {
                    ServiceID = x.ServiceID
                });
            }

            var modelReq = await _requestService.Insert <Data.Model.Request>(request);

            if (modelReq != null)
            {
                await Application.Current.MainPage.DisplayAlert("Obrada uspješna.", "Uspješno ste poslali zahtjev za termin servisiranja.", "OK");

                return;
            }
        }