public async Task <Booking> PostCreate(BookingNew booking) { var client = new Unknowntype(); var heroes = await client.Heroes.PostHeroesWithOperationResponseAsync(new ApiHeroSearch { StartTime = booking.StartTime, EndTime = booking.EndTime, Text = booking.Description }); var hero = heroes.Body.FirstOrDefault(); var apiBooking = new ApiBooking { Id = 0, CustomerId = booking.UserId, StartTime = booking.StartTime, EndTime = booking.EndTime, Description = booking.Description, Heroes = new List <ApiHeroBasic> { new ApiHeroBasic { Id = hero.Id, Name = hero.Name } }, Location = string.Empty, City = string.Empty, Country = string.Empty, Status = string.Empty }; try { var created = await client.Bookings.PostBookingWithOperationResponseAsync(apiBooking); } catch (Exception ex) {} return(new Booking()); }
public IHttpActionResult GetBookingNew(int id) { BookingNew bookingNew = db.BookingNews.Find(id); if (bookingNew == null) { return(NotFound()); } return(Ok(bookingNew)); }
public IHttpActionResult DeleteBookingNew(int id) { BookingNew bookingNew = db.BookingNews.Find(id); if (bookingNew == null) { return(NotFound()); } db.BookingNews.Remove(bookingNew); db.SaveChanges(); return(Ok(bookingNew)); }
public IHttpActionResult PostBookingNew(BookingNew bookingNew) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } TimeZoneInfo indiaZone = TimeZoneInfo.FindSystemTimeZoneById("India Standard Time"); DateTime indianTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, indiaZone); bookingNew.BookingTime = indianTime; var temp = db.BookingNews.Where(x => x.StartDate == bookingNew.StartDate && x.RoomNumber == bookingNew.RoomNumber).ToList(); TimeRange range = new TimeRange(bookingNew.StartTime, bookingNew.EndTime); string ErrorInvalidDateTime = "Select valid date and/or times"; string ErrorRestriction = "You are not allowed to book room for more than 2 hours."; foreach (var item in temp) { string ErrorClash = "Booking timings are clashing with a meeting. Booking Id: " + item.BookingId + " | Start Time:" + item.StartTime + " | End Time:" + item.EndTime + " | Booked By:" + item.EmpId; TimeRange rangeItem = new TimeRange(item.StartTime, item.EndTime); if (rangeItem.Clashes(range, true)) { return(BadRequest(ErrorClash)); } } if ((bookingNew.StartTime < indianTime.TimeOfDay || bookingNew.EndTime <= indianTime.TimeOfDay) && bookingNew.StartDate <= indianTime) { return(BadRequest(ErrorInvalidDateTime)); } if (bookingNew.EndTime > bookingNew.StartTime.Add(new TimeSpan(2, 0, 0))) { return(BadRequest(ErrorRestriction)); } db.BookingNews.Add(bookingNew); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = bookingNew.BookingId }, bookingNew)); }