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" })); } }
/// <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); }
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)); } }