示例#1
0
        public async Task <ActionResult> Edit(int id)
        {
            try
            {
                var cabinReservation = await _service.GetCabinReservation(User, id);

                // Dont allow edit if ReservationStartDate is earlier than tomorrow
                if (cabinReservation.ReservationStartDate < DateTime.Now.AddDays(1))
                {
                    ViewBag.ErrorMessage = "Muokkaus ei sallittua, varauksen alkamispäivämäärä on huomenna tai aiemmin";
                    return(View("ErrorPage"));
                }

                // Adding empty ActivityReservations in CabinReservation until there is 9 total
                ActivityReservation activityReservation = new ActivityReservation();
                int activityReservationsToAdd           = 9 - cabinReservation.ActivityReservations.Count();
                for (int i = 0; i < activityReservationsToAdd; i++)
                {
                    cabinReservation.ActivityReservations.Add(activityReservation);
                }

                ViewBag.Cabin = await _service.GetCabin(cabinReservation.CabinId);

                if (cabinReservation == null)
                {
                    return(View("ErrorPage"));
                }

                return(View(cabinReservation));
            }
            catch
            {
                return(View("ErrorPage"));
            }
        }
        //------------------------------------------------------------------------------------ ActivityReservation URL:s

        // Returns Url by ActivityReservation
        // CabinReservation.Cabin.Resort.ResortName, Activity.ActivityName, Activity.ActivityProvider, CabinReservation.Person.LastName, Starting for and Ending for
        // Sets parametres to - if parameter is null
        public static string ActivityReservationsByConditions(ActivityReservation activityReservation)
        {
            var startDate = activityReservation.CabinReservation.ReservationStartDate.ToString("MM'-'dd'-'yyyy");
            var endDate   = activityReservation.CabinReservation.ReservationEndDate.ToString("MM'-'dd'-'yyyy");

            if (activityReservation.CabinReservation.Cabin.Resort.ResortName == null)
            {
                activityReservation.CabinReservation.Cabin.Resort.ResortName = "-";
            }
            if (activityReservation.Activity.ActivityName == null)
            {
                activityReservation.Activity.ActivityName = "-";
            }
            if (activityReservation.Activity.ActivityProvider == null)
            {
                activityReservation.Activity.ActivityProvider = "-";
            }
            if (activityReservation.CabinReservation.Person.LastName == null)
            {
                activityReservation.CabinReservation.Person.LastName = "-";
            }
            if (activityReservation.CabinReservation.ReservationStartDate == DateTime.MinValue)
            {
                startDate = "-";
            }
            if (activityReservation.CabinReservation.ReservationEndDate == DateTime.MinValue)
            {
                endDate = "-";
            }
            return($"api/ActivityReservations/{activityReservation.CabinReservation.Cabin.Resort.ResortName}/{activityReservation.Activity.ActivityName}/{activityReservation.Activity.ActivityProvider}/{activityReservation.CabinReservation.Person.LastName}/{startDate}/{endDate}");
        }
示例#3
0
        public async Task <ActionResult> Create(int id)
        {
            ViewBag.Cabin = await _service.GetCabin(id);

            if (User.IsInRole("Administrator"))
            {
                // Getting persons in dropdownmenu
                var persons = await _service.GetPersons(User, "-", "-");

                List <SelectListItem> Persons = new List <SelectListItem>();
                foreach (var item in persons)
                {
                    Persons.Add(new SelectListItem {
                        Value = item.PersonId.ToString(), Text = item.FirstName + " " + item.LastName
                    });
                }
                ViewBag.Persons = Persons;
            }

            // Creating empty Model to view
            CabinReservation cabinReservation = new CabinReservation();

            // Adding 9 empty ActivityReservations in CabinReservation
            List <ActivityReservation> activityReservations = new List <ActivityReservation>();
            ActivityReservation        activityReservation  = new ActivityReservation();

            for (int i = 0; i < 9; i++)
            {
                activityReservations.Add(activityReservation);
            }
            cabinReservation.ActivityReservations = activityReservations;

            return(View(cabinReservation));
        }
示例#4
0
        public async Task <IActionResult> PutActivityReservation(int id, ActivityReservation activityReservation)
        {
            if (id != activityReservation.ActivityReservationId)
            {
                return(BadRequest());
            }

            _context.Entry(activityReservation).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ActivityReservationExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
示例#5
0
        public async Task <IActionResult> Index(ActivityReservation activityReservation, int pageNumber)
        {
            var activityReservations = await _service.GetActivityReservations(User, activityReservation);

            ViewBag.FirstEntry = false;

            var pageNumbers = 1;
            var pageSize    = 10;

            if (activityReservations != null)
            {
                // Counting page numbers
                if (activityReservations.Count() > pageSize)
                {
                    pageNumbers += activityReservations.Count() / pageSize;
                    if (activityReservations.Count() % pageSize == 0)
                    {
                        pageNumbers--;
                    }
                }

                if (pageNumber == 0)
                {
                    pageNumber = 1;
                }

                activityReservations = activityReservations.Skip((pageNumber - 1) * pageSize)
                                       .Take(pageSize);

                ViewBag.PageNumbers = pageNumbers;
                ViewBag.PageNumber  = pageNumber;

                // Getting CabinReservations in ActivityReservations, because JsonIgnore-attribute in ActivityReservation.CabinReservation
                foreach (var item in activityReservations)
                {
                    item.CabinReservation = await _service.GetCabinReservation(User, item.CabinReservationId);
                }

                ViewBag.ActivityReservations = activityReservations;
            }

            if (activityReservation.CabinReservation.ReservationStartDate != DateTime.MinValue)
            {
                ViewBag.Starting = activityReservation.CabinReservation.ReservationStartDate.ToString("dd'.'MM'.'yyyy");
            }
            if (activityReservation.CabinReservation.ReservationEndDate != DateTime.MinValue)
            {
                ViewBag.Ending = activityReservation.CabinReservation.ReservationEndDate.ToString("dd'.'MM'.'yyyy");
            }

            return(View());
        }
示例#6
0
        //-------------------------------------------------------------------------------------------------- PostalCodes End

        //-------------------------------------------------------------------------------------------------- ActivityReservations

        // Returns ActivityReservations by ClaimsPrincipal and ActivityReservation
        // User must be role Administrator to execute API-call
        public async Task <IEnumerable <ActivityReservation> > GetActivityReservations(ClaimsPrincipal user, ActivityReservation activityReservation)
        {
            var token = GenerateToken(user);

            defaultClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);

            string url = ApiUrls.ActivityReservationsByConditions(activityReservation);

            var response = await defaultClient.GetAsync(url);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                using var responseStream = await response.Content.ReadAsStreamAsync();

                return(await JsonSerializer.DeserializeAsync <IEnumerable <ActivityReservation> >(responseStream, caseInsensitiveOptions));
            }
            return(null);
        }
示例#7
0
        public async Task <ActionResult <ActivityReservation> > PostActivityReservation(ActivityReservation activityReservation)
        {
            try
            {
                _context.ActivityReservation.Add(activityReservation);
                await _context.SaveChangesAsync();

                return(CreatedAtAction("GetActivityReservation", new { id = activityReservation.ActivityReservationId }, activityReservation));
            }
            catch
            {
                return(StatusCode(500));
            }
        }