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());
        }
Пример #2
0
        public IHttpActionResult GetBookingNew(int id)
        {
            BookingNew bookingNew = db.BookingNews.Find(id);

            if (bookingNew == null)
            {
                return(NotFound());
            }

            return(Ok(bookingNew));
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }