public async Task <List <Times> > CreateTimes(ArticleEntity article, BookingTableEntity bookingTable) { var listOfTimes = new List <Times>(); DateTime startTime = bookingTable.StartTime.AddMinutes(-article.Length); DateTime endTime = startTime.AddMinutes(article.Length); DateTime openingTime = SetOpeningTime(bookingTable.Date); DateTime closingTime = SetClosingTime(bookingTable.Date); var bookingSystem = await new BookingSystemRepo().GetBookingSystemAsync(article.BookingSystemId); var listOfBookingTables = await new BookingRepo().GetBookingTablesFromOneDayAndOneBookingSystem(bookingSystem.BookningSystemId, bookingTable.Date); for (int i = 0; i < 3; i++) { if (startTime != bookingTable.StartTime && startTime >= openingTime && endTime <= closingTime) { var time = new Times(); time.StartTime = startTime; time.EndTime = endTime; var checkIfTimeIsBookedModel = new CheckIfTimeIsBokedModel(); checkIfTimeIsBookedModel.Times = time; checkIfTimeIsBookedModel.ListOfBookingTables = listOfBookingTables; time.TimeBooked = await new BookingRepo().CheckIfTimeIsBookedAsync(checkIfTimeIsBookedModel); if (!time.TimeBooked) { listOfTimes.Add(time); } } if (i == 1) { var bookedArticle = await new ArticleRepo().GetArticleAsync(bookingTable.ArticleId); startTime = startTime.AddMinutes(bookedArticle.Length); endTime = endTime.AddMinutes(bookedArticle.Length); } else { startTime = startTime.AddMinutes(article.Length); endTime = endTime.AddMinutes(article.Length); } } return(listOfTimes); }
public async Task <bool> CheckIfTimeIsBookedAsync(CheckIfTimeIsBokedModel checkIfTimeIsBokedModel) { var timeBooked = false; foreach (var item in checkIfTimeIsBokedModel.ListOfBookingTables) { if (item.StartTime < checkIfTimeIsBokedModel.Times.EndTime && item.EndTime > checkIfTimeIsBokedModel.Times.StartTime) { timeBooked = true; } } return(timeBooked); }
public async Task <bool> CheckIfTimeIsBooked(CheckIfTimeIsBokedModel checkIfTimeIsBokedModel) { var url = "http://localhost:60295/api/checkiftimeisbooked/"; var content = new StringContent(JsonConvert.SerializeObject(checkIfTimeIsBokedModel), Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); string result = await response.Content.ReadAsStringAsync(); var booked = JsonConvert.DeserializeObject <bool>(result); if (response.IsSuccessStatusCode) { return(booked); } return(booked); }
public async Task <List <Times> > CreateTimes(DateTime date, int articleId) { var listOfTimes = new List <Times>(); var article = await new ArticleController().GetArticle(articleId); DateTime startTime = SetOpeningTime(date); DateTime endTime = startTime.AddMinutes(article.Length); var timesPerDay = SetTimesPerDay(article.Length); var bookingSystem = await new BookingSystemRepo().GetBookingSystemFromArticleAsync(articleId); var listOfBookingTables = await new BookingRepo().GetBookingTablesFromOneDayAndOneBookingSystem(bookingSystem.BookningSystemId, date); for (int i = 0; i < timesPerDay; i++) { var time = new Times(); time.StartTime = startTime; time.EndTime = endTime; var checkIfTimeIsBookedModel = new CheckIfTimeIsBokedModel(); checkIfTimeIsBookedModel.Times = time; checkIfTimeIsBookedModel.ListOfBookingTables = listOfBookingTables; time.TimeBooked = await CheckIfTimeIsBooked(checkIfTimeIsBookedModel); listOfTimes.Add(time); startTime = startTime.AddMinutes(article.Length); endTime = endTime.AddMinutes(article.Length); } return(listOfTimes); }
public async Task <IHttpActionResult> CheckIfTimeIsBooked(CheckIfTimeIsBokedModel checkIfTimeIsBokedModel) { var timeBooked = new BookingRepo().CheckIfTimeIsBooked(checkIfTimeIsBokedModel); return(Ok(timeBooked)); }