Exemplo n.º 1
0
        public async Task <ActionResult <IEnumerable <DateTime> > > GetTutorCalendarAsync(
            [FromQuery] CalendarEventRequest model,
            CancellationToken token)
        {
            try
            {
                var query = new CalendarEventsQuery(model.TutorId, model.From.GetValueOrDefault(DateTime.UtcNow), model.To.GetValueOrDefault(DateTime.UtcNow.AddMonths(1)));
                var res   = await _queryBus.QueryAsync(query, token);

                return(res.BusySlot.ToList());
            }
            catch (NotFoundException)
            {
                return(StatusCode(555, new { massege = "permission denied" }));
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Lädt die Termine eines Kalendars
        /// </summary>
        /// <param name="cInfo">Die Information über den Kalendar</param>
        /// <param name="request">The request</param>
        public void LoadCalendarData(CalendarCalDavInfo cInfo, CalendarEventRequest request = null)
        {
            this.BeginHttpRequest(Address.CombineServerAddress(cInfo.Url));

            ContentTypeXml();
            this.SetMethod("REPORT");

            Request.Headers["Depth"]  = "1";
            Request.Headers["Prefer"] = "return-minimal";

            if (request == null)
            {
                request = new CalendarEventRequest();
            }

            Request.BeginGetRequestStream(CalendarDataWriteRequest, request);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> SetTutorCalendarAsync(
            [FromBody] CalendarEventRequest model,
            CancellationToken token)
        {
            try
            {
                var userId = _userManager.GetLongUserId(User);

                Debug.Assert(model.From != null, "model.From != null");
                Debug.Assert(model.To != null, "model.To != null");

                var command = new AddTutorCalendarEventCommand(userId, model.TutorId, model.From.Value, model.To.Value);
                await _commandBus.DispatchAsync(command, token);

                return(Ok());
            }
            catch (ArgumentException)
            {
                ModelState.AddModelError("x", "slot taken");
                return(BadRequest(ModelState));
            }
        }