public async Task <IActionResult> OnPost([FromQuery] int year, [FromQuery] int month, [FromQuery] int day) { if (!ModelState.IsValid) { ErrorMessage = "入力に誤りがあります。"; return(PageResult(year, month, day)); } if (!SelectedDates.Any()) { ErrorMessage = "対象の日を1日以上は設定してください。"; return(PageResult(year, month, day)); } var startTime = LocalTimePattern.Create("HH:mm", CultureInfo.CurrentCulture).Parse(StartTime !); if (!startTime.Success) { ErrorMessage = "入力に誤りがあります。"; return(PageResult(year, month, day)); } var dates = SelectedDates .Select(str => LocalDatePattern.CreateWithInvariantCulture("yyyy-MM-dd").Parse(str)) .ToList(); if (dates.Any(r => !r.Success)) { ErrorMessage = "入力に誤りがあります。"; return(PageResult(year, month, day)); } var result = await _service.CreateMultipleAppointmentSlotsAsync(dates.Select(d => d.Value).OrderBy(d => d).ToList(), startTime.Value, Period.FromMinutes(DurationMinutesForEachSlot !.Value), CountOfSlotForEachSlot !.Value, CountOfSlotsToCreate !.Value); if (!result.Succeeded) { ErrorMessage = result.ErrorMessage; return(PageResult(year, month, day)); } return(RedirectToPage("Index", new { year, month, day })); }