コード例 #1
0
        public IActionResult Reservation()
        {
            //Getting a list of sittings from the db
            List <Sitting> s = _reservationServices.GetListSitting();
            //checking UserID
            var UserID = _userManager.GetUserId(HttpContext.User);

            //If the UserID is not null, in other words if the user is logged in.
            if (UserID != null)
            {
                //We assign the User based on their Id to the "user" variable
                var user = _context.Users.Where(r => r.Id == UserID).FirstOrDefault();
                //putting the data in the "m" viewmodel
                ReservationCreateModel m = new ReservationCreateModel
                {
                    //customer details
                    FirstName   = user.FirstName,
                    LastName    = user.LastName,
                    Email       = user.Email,
                    PhoneNumber = user.PhoneNumber,
                    //sittings details
                    AllSittings = s
                };
                //Return the view with the data from the view model.
                return(View(m));
            }
            else
            {
                //Otherwise we only return the sittings
                ReservationCreateModel model = new ReservationCreateModel {
                    AllSittings = s
                };
                return(View(model));
            }
        }
コード例 #2
0
        public IActionResult Reservation(ReservationCreateModel model)
        {
            if (ModelState.IsValid)
            {
                //setting default values for reservation
                ReservationCreateModel m = model;
                m.Status  = "Pending";
                m.Source  = "WebSite";
                m.EndTime = model.StartTime.AddHours(1);

                Customer        c  = _reservationServices.GetCustomerByEmail(model.Email);
                List <Customer> Cs = _reservationServices.GetAllRCustomers();

                if (Cs.Contains(c))
                {
                    model.CustomerID = c.CustomerID;
                    _reservationServices.AddReservationOnly(m);
                    return(RedirectToAction("Done"));
                }
                else
                {
                    _reservationServices.AddCustomerReservation(m);
                    return(RedirectToAction("Done"));
                }
            }
            else
            {
                return(View(model));
            }
        }
コード例 #3
0
        public void AddCustomerReservation(ReservationCreateModel command)          // creates a new Reservation and a new Customer
        {
            Customer Customer = new Customer()
            {
                FirstName   = command.FirstName,
                LastName    = command.LastName,
                PhoneNumber = command.PhoneNumber,
                Email       = command.Email
            };
            Reservation Reservation = new Reservation()
            {
                NumberOfGuests         = command.NumberOfGuests,
                AdditionalRequirements = command.AdditionalRequirements,
                Date      = command.Date,
                StartTime = command.StartTime,
                EndTime   = command.EndTime,
                Status    = command.Status,
                Source    = command.Source,
                //Customer
                CustomerID = Customer.CustomerID,
                Customer   = Customer,
                //sitting
                SittingID = command.SittingID
            };

            _context.Reservations.Add(Reservation);
            _context.SaveChanges();
        }
コード例 #4
0
 public ActionResult Create(ReservationCreateModel model)
 {
     if (ModelState.IsValid)
     {
         var reservation = _reservationCreateCommand.Execute(model);
         return(RedirectToAction("Details", new { id = reservation.Id }));
     }
     return(View(model));
 }
コード例 #5
0
 public ActionResult Create(ReservationCreateModel model)
 {
     if (ModelState.IsValid)
     {
         var reservation = _reservationCreateCommand.Execute(model);
         return RedirectToAction("Details", new { id = reservation.Id });
     }
     return View(model);
 }
コード例 #6
0
 public ActionResult Create()
 {
     var model = new ReservationCreateModel()
     {
         ArrivalDate = DateTime.Now,
         DepartureDate = DateTime.Now
     };
     return View(model);
 }
コード例 #7
0
        public ActionResult Create()
        {
            var model = new ReservationCreateModel()
            {
                ArrivalDate   = DateTime.Now,
                DepartureDate = DateTime.Now
            };

            return(View(model));
        }
コード例 #8
0
        //----------------------------------------------------------------------------- CREATE Section:

        public void AddReservationOnly(ReservationCreateModel command)                  // creates a new Reservation
        {
            Reservation Reservation = new Reservation()
            {
                NumberOfGuests         = command.NumberOfGuests,
                AdditionalRequirements = command.AdditionalRequirements,
                Date      = command.Date,
                StartTime = command.StartTime,
                EndTime   = command.EndTime,
                Status    = command.Status,
                Source    = command.Source,
                //Customer
                CustomerID = command.CustomerID,
                //sitting
                SittingID = command.SittingID
            };

            _context.Reservations.Add(Reservation);
            _context.SaveChanges();
        }
コード例 #9
0
        public async Task <ActionResult> Create()
        {
            List <CourseDto>     courses;
            List <InstructorDto> instructors;
            List <RoomDto>       rooms;
            RoomListVm           roomsList;
            InstructorListVm     instructorsList;
            CoursesListVm        coursesList;

            using (var httpClient = new HttpClient())
            {
                using var res1 = await httpClient.GetAsync(_configuration.GetSection ("apiUrl").Value + "/courses/GetAll");

                string apiResponse = await res1.Content.ReadAsStringAsync();

                coursesList    = JsonConvert.DeserializeObject <CoursesListVm>(apiResponse);
                courses        = coursesList.Courses;
                using var res2 = await httpClient.GetAsync(_configuration.GetSection ("apiUrl").Value + "/rooms/GetAll");

                apiResponse = await res2.Content.ReadAsStringAsync();

                roomsList      = JsonConvert.DeserializeObject <RoomListVm>(apiResponse);
                rooms          = roomsList.Rooms;
                using var res3 = await httpClient.GetAsync(_configuration.GetSection ("apiUrl").Value + "/instructors/GetAll");

                apiResponse = await res3.Content.ReadAsStringAsync();

                instructorsList = JsonConvert.DeserializeObject <InstructorListVm>(apiResponse);
                instructors     = instructorsList.Instructors;
            }

            ReservationCreateModel model = new ReservationCreateModel()
            {
                Reservation = new ReservationDto(),
                Courses     = courses,
                Rooms       = rooms,
                Instructors = instructors
            };

            return(View(model));
        }
コード例 #10
0
        public ActionResult CreateReservation()
        {
            var semester = SemesterService.GetSemester(DateTime.Today);

            var memberService = new MemberService(Db, UserManager);
            var roomService   = new MyStik.TimeTable.Web.Services.RoomService();

            var org = GetMyOrganisation();

            var userRight = GetUserRight(User.Identity.Name, org.ShortName);

            // Alle Räume, auf die der Veranstalter Zugriff hat
            var rooms = roomService.GetRooms(org.Id, userRight.IsRoomAdmin);

            var now     = DateTime.Now;
            var minute  = DateTime.Now.Minute;
            var quarter = minute / 15;
            var time    = now.AddMinutes(-minute + quarter * 15);

            var model = new ReservationCreateModel
            {
                NewDate     = DateTime.Today.ToShortDateString(),
                NewBegin    = time.TimeOfDay.ToString(),
                NewEnd      = time.TimeOfDay.ToString(),
                DailyEnd    = DateTime.Today.ToShortDateString(),
                WeeklyEnd   = DateTime.Today.ToShortDateString(),
                IsDaily     = false,
                IsWeekly    = false,
                Rooms       = rooms,
                OrganiserId = org.Id
            };

            ViewBag.Organiser = Db.Organisers.OrderBy(x => x.ShortName).Select(c => new SelectListItem
            {
                Text  = c.ShortName,
                Value = c.Id.ToString(),
            });


            return(View(model));
        }
コード例 #11
0
        public JsonResult CreateReservation(ReservationCreateModel model)
        {
            // Doppelungen von Namen pro Organiser vermeiden
            var org = GetMyOrganisation();

            var reservation =
                Db.Activities.OfType <Reservation>().SingleOrDefault(r => r.Organiser.Id == org.Id &&
                                                                     r.Name.ToLower().Equals(model.Name.ToLower()));

            if (reservation == null)
            {
                var user = AppUser;

                reservation = new Reservation
                {
                    Name        = model.Name,
                    ShortName   = model.Name,
                    Description = model.Description,
                    UserId      = user.Id,
                    Organiser   = org
                };

                Db.Activities.Add(reservation);
            }

            // Termine hinzufügen
            var sDate  = DateTime.Parse(model.NewDate);
            var sBegin = TimeSpan.Parse(model.NewBegin);
            var sEnd   = TimeSpan.Parse(model.NewEnd);

            var sDateEndDaily  = DateTime.Parse(model.DailyEnd);
            var sDateEndWeekly = DateTime.Parse(model.WeeklyEnd);


            var semester = SemesterService.GetSemester(DateTime.Today);

            var dayOfWeek = sDate.DayOfWeek;

            var dayListDaily  = new List <DateTime>();
            var dayListWeekly = new List <DateTime>();

            // Erstellung der Datumsliste
            if (model.IsDaily)
            {
                // alle Tage von NewDate bis DailyDate
                // egal ob Wochenende / Feiertag
                var day = sDate;
                while (day <= sDateEndDaily)
                {
                    dayListDaily.Add(day);
                    day = day.AddDays(1);
                }
            }
            else
            {
                dayListDaily.Add(sDate);
            }


            if (model.IsWeekly)
            {
                foreach (var dailyDate in dayListDaily)
                {
                    var day = dailyDate;
                    while (day <= sDateEndWeekly)
                    {
                        dayListWeekly.Add(day);
                        day = day.AddDays(7);
                    }
                }
            }
            else
            {
                dayListWeekly.AddRange(dayListDaily);
            }


            foreach (var day in dayListWeekly)
            {
                var start = day.Add(sBegin);
                var end   = day.Add(sEnd);

                var date = new ActivityDate
                {
                    Begin = start,
                    End   = end,
                    //Occurrence = new Occurrence { Capacity = -1, IsAvailable = true, FromIsRestricted = false, UntilIsRestricted = false },
                };

                if (model.RoomIds != null)
                {
                    foreach (var roomId in model.RoomIds)
                    {
                        date.Rooms.Add(Db.Rooms.SingleOrDefault(r => r.Id == roomId));
                    }
                }

                if (model.DozIds != null)
                {
                    foreach (var dozId in model.DozIds)
                    {
                        date.Hosts.Add(Db.Members.SingleOrDefault(x => x.Id == dozId));
                    }
                }


                reservation.Dates.Add(date);
            }

            Db.SaveChanges();

            return(Json(new { result = "Redirect", url = Url.Action("Details", new { id = reservation.Id }) }));
        }