Ejemplo n.º 1
0
        public IActionResult Index(ResourceBooking model)
        {
            //check booking is available

            var existingBookings = _context.ResourceBookings
                                   .Where(b => b.ResourceId == model.ResourceId)
                                   .Where(b => b.ResourceBookingStart >= DateTimeOffset.Now)
                                   .ToList();

            if (existingBookings.Count > 0)
            {
                foreach (var booking in existingBookings)
                {
                    if (booking.ResourceBookingStart <= booking.ResourceBookingEnd && booking.ResourceBookingStart <= booking.ResourceBookingEnd)
                    {
                        ModelState.AddModelError("Duplicate Booking", "Sorry - already booked at this time");
                        return(View());
                    }
                }
            }

            model.UserId = Convert.ToInt32(GetEncryptedGenericCookie("USER_ID"));
            model.ResourceBookingTimeCreated = DateTimeOffset.Now;
            _context.ResourceBookings.Add(model);
            _context.SaveChanges();
            return(RedirectToAction("Index", "User"));
        }
Ejemplo n.º 2
0
        public ActionResult AddTimeSlot(ResourceBooking resourceBooking)
        {
            SetSessionVariables();

            resourceBooking.CreatedBy       = GetSessionObject().UserID;
            resourceBooking.CreatedDateTime = DateTime.Now;

            try
            {
                using (HttpClient client = new HttpClient())
                {
                    client.BaseAddress = new Uri(Common.Instance.ApiResourceBookingControllerName);

                    var postTask = client.PostAsJsonAsync <ResourceBooking>(Common.Instance.ApiResourceBookingAdd, resourceBooking);
                    postTask.Wait();

                    var result = postTask.Result;

                    if (result.IsSuccessStatusCode)
                    {
                        var readTask = result.Content.ReadAsAsync <ServiceResult <ResourceBooking> >().Result;
                    }
                }
            }
            catch
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator");
            }
            return(RedirectToAction("List"));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Get(int ID)
        {
            SetSessionVariables();

            ServiceResult <ResourceBooking> result = null;

            ResourceBooking resource = null;

            try
            {
                using (HttpClient client = new HttpClient())
                {
                    client.BaseAddress = new Uri(Common.Instance.ApiResourceBookingControllerName);
                    var readTask = await client.GetAsync(Common.Instance.ApiResourceBookingGet + "/" + ID);

                    result = await readTask.Content.ReadAsAsync <ServiceResult <ResourceBooking> >();

                    resource = result.Result;
                }
            }
            catch
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator");
            }
            return(View(resource));
        }
Ejemplo n.º 4
0
        public ActionResult AddTimeSlot()
        {
            SetSessionVariables();

            ResourceBooking resource = new ResourceBooking();

            return(View(resource));
        }
        public ResourceBooking GetObject()
        {
            ResourceBooking resource = new ResourceBooking();

            this.ID         = resource.ID;
            this.ResourceID = resource.ResourceID;
            this.FromDate   = resource.FromDate;
            this.ToDate     = resource.ToDate;
            this.StartTime  = resource.UsageStartTime;
            this.EndTime    = resource.UsageEndTime;
            this.IsActive   = resource.IsActive;
            return(resource);
        }