public async Task <ActionResult> BookServiceConfirmed(int inBookingSystemId, int inServiceId, BookingSystemServiceBookingViewModel model)
        {
            try {
                BookingSystemServiceBookingViewModel getService = new BookingSystemServiceBookingViewModel();
                HttpClient client = new HttpClient();

                //Hämtar servicen med ett api-anrop för bokningen som tillhör ett bokningssystem och service id:et
                var result = client.GetAsync("http://localhost:55341/api/GetService/" + inBookingSystemId + "/" + inServiceId).Result;
                if (result.IsSuccessStatusCode)
                {
                    getService = await result.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator");
                }

                //Tilldelar parametervärdet-model den tjänsten som väljs i bokningsflödet
                model.service = getService.service;

                BookingSystemServiceBookingViewModel getSystem = null;
                HttpClient client1 = new HttpClient();

                //Hämtar bokningssystemet med ett api-anrop för bokningen som tillhör ett specifikt bokningssystem
                var result1 = client1.GetAsync("http://localhost:55341/api/GetBookingSystem/" + inBookingSystemId).Result;
                if (result1.IsSuccessStatusCode)
                {
                    getSystem = await result1.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                }

                //Tilldelar parametervärdet-model det bokningssystemet som väljs i bokningsflödet.
                model.bookingSystem = getSystem.bookingSystem;

                //Om man nyligen har bokat en tjänst läggs det till ett klick på relationen eller så skapas den
                if (model.branchAId != 0 && model.branchAId != null)
                {
                    await UpdateBranchRelationAsync(model.branchAId ?? default(int), model.service.Branch.BranchId);
                }

                //Tilldelar parametervärdet-model branchA Id:et som den tillhör
                model.branchAId = model.service.Branch.BranchId;
                var url = "http://localhost:55341/api/PostBooking";

                //Gör ett metodanrop till APIContact-metoden som kontrollerar url och model-värden som passeras in.
                if (await APIContact(url, model))
                {
                    //Returnerar bokningsinformation genom att anropa på metoden Details
                    return(RedirectToAction("Details",
                                            new { inBookingSystemId, inServiceId }));
                }
            } catch (DataException) {
                ModelState.AddModelError("", "Unable to save changes, please try again");
            }
            return(View(model));
        }
        public async Task <IHttpActionResult> GetMaxId()
        {
            BookingSystemServiceBookingViewModel model = new BookingSystemServiceBookingViewModel();
            var maxId = await uw.Bookings.GetBookings();

            model.booking = maxId.OrderByDescending(i => i.BookingId).Take(1).Single();
            return(Ok(model));
        }
        public async Task <IHttpActionResult> GetBooking(int inBookingId)
        {
            BookingSystemServiceBookingViewModel bsSBVM = new BookingSystemServiceBookingViewModel();

            bsSBVM.booking = await uw.Bookings.Get(inBookingId);

            bsSBVM.bookingSystems = await uw.BookingSystems.GetAll();

            bsSBVM.bookings = await uw.Bookings.GetAll();

            if (bsSBVM == null)
            {
                return(NotFound());
            }
            return(Ok(bsSBVM));
        }
        public async Task <IHttpActionResult> GetService(int inBookingSystemId, int inServiceId)
        {
            //Anropar på GetBookingSystem() från repository för att hämta det specifika bokningssystemet
            var bs = await uw.BookingSystems.GetBookingSystem(inBookingSystemId);

            BookingSystemServiceBookingViewModel bsSBVM = new BookingSystemServiceBookingViewModel();

            bsSBVM.bookingSystem = bs;
            //Tilldelar service-objektet ett värde på en tjänst som tillhör ett specifikt bokningssystem
            bsSBVM.service = bsSBVM.bookingSystem.Services.Single(x => x.ServiceId == inServiceId);

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

            return(Ok(bsSBVM));
        }
示例#5
0
        //Returnerar tjänster som möjliggör en bokning i ett bokningsystem
        public async Task <ActionResult> BookService(int inBookingSystemId, int inServiceId)
        {
            BookingSystemServiceBookingViewModel bsSBVM = null;
            HttpClient client = new HttpClient();

            //Gör ett api-anrop för att hämta en tjänst för ett bokningssystem
            var result = client.GetAsync("http://localhost:55341/api/GetService/" + inBookingSystemId + "/" + inServiceId).Result;

            if (result.IsSuccessStatusCode)
            {
                bsSBVM = await result.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator");
            }
            return(View(bsSBVM));
        }
        public async Task <IHttpActionResult> GetBooking(int inBookingSystemId, int inServiceId)
        {
            //Hämtar bokningssystemet genom att anropa GetBookingSystem() metoden från repository
            var bs = await uw.BookingSystems.GetBookingSystem(inBookingSystemId);

            BookingSystemServiceBookingViewModel bsSBVM = new BookingSystemServiceBookingViewModel();

            bsSBVM.bookingSystem = bs;

            //Hämtar den specifika tjänsten som tillhör bokningssystemet
            bsSBVM.service = bs.Services.Single(x => x.ServiceId == inServiceId);

            if (bsSBVM == null)
            {
                return(NotFound());
            }
            return(Ok(bsSBVM));
        }
        public async Task <IHttpActionResult> PostBooking(BookingSystemServiceBookingViewModel inBooking)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid data"));
            }

            var booking = inBooking.booking;

            booking.StartTime = inBooking.startTime;
            booking.EndTime   = inBooking.startTime.AddMinutes(inBooking.service.Duration);

            /*Gör först ett anrop till AddBooking i repository som kräver en bokning och service id som parameter.
             * Tar in CreateBooking() metoden från repository som första parametervärde för bokningen och sedan service objektet
             * som andra parametervärde*/
            uw.Services.AddBooking(await uw.Bookings.CreateBooking(booking), inBooking.service.ServiceId);
            uw.Complete();

            return(Ok());
        }
        public async Task <ActionResult> BookService(int inBookingSystemId, int inServiceId, string inStartTime, int?branchAId)
        {
            BookingSystemServiceBookingViewModel bsSBVM = new BookingSystemServiceBookingViewModel();
            HttpClient client = new HttpClient();

            //Gör ett API-anrop för att hämta information om bokningen som tillhör till ett specifikt bokningssystem och tjänst
            var result = client.GetAsync("http://localhost:55341/api/GetBooking/" + inBookingSystemId + "/" + inServiceId).Result;

            if (result.IsSuccessStatusCode)
            {
                bsSBVM = await result.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator");
            }
            bsSBVM.branchAId = branchAId ?? default(int);
            bsSBVM.startTime = Convert.ToDateTime(inStartTime);
            return(View(bsSBVM));
        }
        //Returnerar bokningsbekräftelse på bokningen
        public async Task <ActionResult> Details(int inBookingSystemId, int inServiceId)
        {
            BookingSystemServiceBookingViewModel bsSBVM = new BookingSystemServiceBookingViewModel();
            HttpClient client = new HttpClient();

            BookingSystemServiceBookingViewModel getSystem = null;
            HttpClient client1 = new HttpClient();

            //Gör ett api-anrop för att hämta det valda bokningssystemet i bokningsflödet
            var result1 = client1.GetAsync("http://localhost:55341/api/GetBookingSystem/" + inBookingSystemId).Result;

            if (result1.IsSuccessStatusCode)
            {
                getSystem = await result1.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
            }

            //Tilldelar objektet värdet på bokningsystemet som är valt.
            bsSBVM.bookingSystem = getSystem.bookingSystem;

            BookingSystemServiceBookingViewModel getService = null;
            HttpClient client2 = new HttpClient();

            //Gör ett api-anrop för att hämta tjänsten som är valt i bokningsflödet för bokningssystemet
            var result2 = client2.GetAsync("http://localhost:55341/api/GetService/" + inBookingSystemId + "/" + inServiceId).Result;

            if (result2.IsSuccessStatusCode)
            {
                getService = await result2.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator");
            }

            //Tilldelar objektet värdet på tjänsten som är valt på bokningssystemet
            bsSBVM.service = getService.service;

            BookingSystemServiceBookingViewModel getBookingWithMaxId = null;
            HttpClient client3 = new HttpClient();

            //Gör ett api-anrop för att hämta det högsta id:et för bokningarna
            var result3 = client3.GetAsync("http://localhost:55341/api/GetBooking/GetMaxId").Result;

            if (result3.IsSuccessStatusCode)
            {
                getBookingWithMaxId = await result3.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
            }

            //Gör ett api-anrop och hämtar bokningen med det högsta id:et
            var result = client.GetAsync("http://localhost:55341/api/GetBooking/" + getBookingWithMaxId.booking.BookingId).Result;

            if (result.IsSuccessStatusCode)
            {
                getBookingWithMaxId = await result.Content.ReadAsAsync <BookingSystemServiceBookingViewModel>();
            }
            else
            {
                ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
            }
            bsSBVM.booking        = getBookingWithMaxId.booking;
            bsSBVM.bookings       = getBookingWithMaxId.bookings;
            bsSBVM.bookingSystems = getBookingWithMaxId.bookingSystems;

            return(View(bsSBVM));
        }