コード例 #1
0
        public async Task <ActionResult <ReservationItem> > PostReservationItem(ReservationItem item)
        {
            _context.ReservationItems.Add(item);
            await _context.SaveChangesAsync();

            return(CreatedAtAction(nameof(GetReservationItem), new { id = item.Id }, item));
        }
コード例 #2
0
        /// <summary>
        /// Manages the reservation workflow for the entire park
        /// </summary>
        /// <param name="park">The park information the reservtion is for</param>
        private void DisplayParkWideReservation(ParkItem park)
        {
            ReservationInfo reservationInfo = new ReservationInfo();
            List <SiteInfo> siteInfos       = new List <SiteInfo>();

            try
            {
                reservationInfo = GetReservationInfo(reservationInfo);
                var campgrounds = _db.GetCampgrounds(park.Id);
                foreach (var campground in campgrounds)
                {
                    reservationInfo.CampgroundId = campground.Id;
                    var sites = _db.GetSites(reservationInfo);
                    foreach (var site in sites)
                    {
                        siteInfos.Add(site.CreateSiteInfo(campground.DailyFee, campground.Name));
                    }
                }

                ReservationItem item = new ReservationItem();
                item.SiteId = GetSiteSelection(siteInfos, reservationInfo, "", true);
                DisplayCompleteReservation(reservationInfo, item);
                throw new ExitToMainException();
            }
            catch (ExitException)
            {
                // do nothing, the user cancelled the reservation process
            }
        }
コード例 #3
0
        public void Create(ReservationItem newReservationItem)
        {
            var entry = db.Add(newReservationItem);

            entry.State = EntityState.Added;
            db.SaveChanges();
        }
コード例 #4
0
        public void Edit(ReservationItem editedReservationItem)
        {
            var entry = db.Attach(editedReservationItem);

            entry.State = EntityState.Modified;
            db.SaveChanges();
        }
コード例 #5
0
        public void Delete(int reservationItemToRemoveReservationId, int reservationItemToRemoveItemId)
        {
            ReservationItem toDelete = Get(reservationItemToRemoveReservationId, reservationItemToRemoveItemId);
            var             entry    = db.Remove(toDelete);

            entry.State = EntityState.Deleted;
            db.SaveChanges();
        }
コード例 #6
0
 public async Task <bool> PostReservation(ReservationItem reservationItem)
 {
     if (reservationItem.Id == null)
     {
         return(false);
     }
     return(await ReservationService(reservationItem.Id).AddAsync(reservationItem));
 }
コード例 #7
0
        public void CanCreateCheck()
        {
            LogIn(1301);

            // in the past
            DateTime sd       = DateTime.Parse("2017-01-17 08:00:00");
            DateTime ed       = DateTime.Parse("2017-01-17 08:30:00");
            TimeSpan duration = ed - sd;

            var rsv = new ReservationItem()
            {
                ResourceID             = 41010,
                ClientID               = 1301,
                AccountID              = 67,
                ActivityID             = 6,
                BeginDateTime          = sd,
                EndDateTime            = ed,
                ApplyLateChargePenalty = true,
                AutoEnd             = false,
                ChargeMultiplier    = 1,
                CreatedOn           = DateTime.Now,
                LastModifiedOn      = DateTime.Now,
                Duration            = duration.TotalMinutes,
                HasInvitees         = false,
                HasProcessInfo      = false,
                IsActive            = true,
                IsStarted           = false,
                KeepAlive           = false,
                IsUnloaded          = false,
                MaxReservedDuration = duration.TotalMinutes,
                Notes = string.Empty
            };

            var mgr = ServiceProvider.Current.Use <IReservationManager>();

            try
            {
                mgr.CanCreateCheck(rsv);
            }
            catch (Exception ex)
            {
                Assert.AreEqual("Your reservation was not created. Cannot create a reservation in the past.", ex.Message);
            }

            // end before begin
            rsv.BeginDateTime = DateTime.Now.Date.AddDays(1).AddHours(8); //tomorrow at 8 am
            rsv.EndDateTime   = rsv.BeginDateTime.AddMinutes(-15);        //tomorrow at 7:45 am

            try
            {
                mgr.CanCreateCheck(rsv);
            }
            catch (Exception ex)
            {
                Assert.AreEqual("Your reservation was not created. Cannot create a reservation that ends before it starts.", ex.Message);
            }
        }
コード例 #8
0
        public void Delete(int reservationItemToRemoveReservationId, int reservationItemToRemoveItemId)
        {
            ReservationItem toDelete = Get(reservationItemToRemoveReservationId, reservationItemToRemoveItemId);

            if (toDelete != null)
            {
                ReservationItems.Remove(toDelete);
            }
        }
コード例 #9
0
 public static ReservationItemDTO ConvertReservationItem(ReservationItem item)
 {
     return(new ReservationItemDTO()
     {
         ID = item.ID,
         ItemName = item.ItemName,
         QuantityOrdered = item.QuantityOrdered,
         RemainingUnreserved = item.RemainingUnreserved
     });
 }
コード例 #10
0
        public ReservationItemDetail(IItemData itemData, IReservationItemData reservationItemData, int reservationId, int itemId)
        {
            ReservationItem reservationItem = reservationItemData.Get(reservationId, itemId);

            ReservationId = reservationId;
            ItemId        = itemId;
            Name          = itemData.Get(itemId).Name;
            Amount        = reservationItem.Amount;
            Price         = reservationItem.Price;
        }
コード例 #11
0
ファイル: reserve.aspx.cs プロジェクト: ismaeljaycarpio/UBCSR
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Page.Validate("vgPrimaryAdd");
            if(Page.IsValid)
            {
                Reservation r = new Reservation();
                r.UserId = Guid.Parse(Membership.GetUser().ProviderUserKey.ToString());
                r.SubjectId = Convert.ToInt32(ddlSubject.SelectedValue);
                r.ExperimentNo = txtExpNo.Text;
                r.DateRequested = DateTime.Now;
                r.DateFrom = Convert.ToDateTime(txtDateNeeded.Text);
                r.DateTo = Convert.ToDateTime(txtDateNeededTo.Text);
                r.LabRoom = txtLabRoom.Text;
                r.ApprovalStatus = "Pending";
                r.IsReleased = false;
                r.IsReturned = false;


                db.Reservations.InsertOnSubmit(r);
                db.SubmitChanges();

                int reserveId = r.Id;

                gvInv.AllowPaging = false;
                gvInv.DataBind();

                //reserve selected items
                foreach (GridViewRow row in gvInv.Rows)
                {
                    string quantity = "";
                    string quantityByGroup = "";
                    int invId = Convert.ToInt32(((Label)row.FindControl("lblRowId")).Text);

                    if (
                        (quantity = ((TextBox)row.FindControl("txtQuantityToBorrow")).Text) != String.Empty &&
                        (quantityByGroup = ((TextBox)row.FindControl("txtQuantityToBorrowByGroup")).Text) != String.Empty
                       )
                    {
                        ReservationItem ri = new ReservationItem();
                        ri.InventoryId = invId;
                        ri.Quantity = Convert.ToInt32(quantity);
                        ri.ReservationId = reserveId;
                        ri.QuantityByGroup = Convert.ToInt32(quantityByGroup);

                        db.ReservationItems.InsertOnSubmit(ri);
                        db.SubmitChanges();
                    }
                }

                gvInv.AllowPaging = true;
                gvInv.DataBind();

                Response.Redirect("~/reserve/default.aspx");
            }
        }
コード例 #12
0
 public void Edit(ReservationItem editedReservationItem)
 {
     for (int i = 0; i < ReservationItems.Count; i++)
     {
         if (ReservationItems[i].ReservationId == editedReservationItem.ReservationId && ReservationItems[i].ItemId == editedReservationItem.ItemId)
         {
             ReservationItems[i] = editedReservationItem;
             return;
         }
     }
 }
コード例 #13
0
        /// <summary>
        /// Displays park / campground / site availability
        /// </summary>
        private void DisplayEntireParkAvailability()
        {
            List <CampgroundItem> campgrounds = _db.GetCampgroundItemsByPark(_selectedPark.Id);

            (DateTime FromDate, DateTime ToDate) = CLIHelper.GetValidReservationWindow();

            Console.Clear();

            foreach (var campground in campgrounds)
            {
                Console.WriteLine(campground.Id + ") " + campground.Name);
                Console.WriteLine();
                DisplaySiteDetail(campground.Id, _db.GetAvailableSiteItems(campground.Id, FromDate, ToDate));
                Console.WriteLine("-------------------------------------------------------------------------");
            }

            // make a campground selection

            int selectedCampground = SelectCampground(campgrounds);

            if (selectedCampground != 0)
            {
                List <SiteItem> selectedSites = _db.GetAvailableSiteItems(selectedCampground, FromDate, ToDate);
                int             siteSelection = SelectSite(selectedSites);
                if (siteSelection != 0)
                {
                    if (siteSelection != 0)
                    {
                        string reservationName = CLIHelper.GetString("What name should the reservation be made under? ");

                        ReservationItem reservation = new ReservationItem();
                        reservation.SiteId     = siteSelection;
                        reservation.Name       = reservationName;
                        reservation.FromDate   = FromDate;
                        reservation.ToDate     = ToDate;
                        reservation.CreateDate = DateTime.Now;

                        int userId = _userMgr.User.Id;

                        int reservationId = -1;

                        try
                        {
                            reservationId = _db.MakeReservation(reservation, userId);
                            SuccessFulReservation(reservationName, reservationId);
                        }
                        catch (Exception)
                        {
                            Console.WriteLine("There was an error in your request, returning to previous screen.");
                        }
                    }
                }
            }
        }
コード例 #14
0
        public void FromSeatToItemRequest_CorrectlyMapped()
        {
            var seat = new ReservationItem
            {
                AggregateReference = "reference",
                AreaName           = "E",
            };

            var result = seat.Map <ReservationItem, ReservationItemParameters>();

            result.ShouldBeEquivalentToObjectWithMoreProperties(seat);
        }
コード例 #15
0
        public async Task <bool> TryAddReservationToShowAsync(ReservationItem reservation)
        {
            var show = await GetByIdAsync(reservation.ShowItemId);

            if (IsInvalidShow(reservation, show))
            {
                return(false);
            }

            show.Reservations.TryAdd(reservation.Id, reservation);
            return(await _showRepository.UpdateAsync(show.Id, show));
        }
コード例 #16
0
        private ReservationItem GetReservationItemFromReader(SqlDataReader reader)
        {
            ReservationItem item = new ReservationItem();

            item.Id         = Convert.ToInt32(reader["reservation_id"]);
            item.SiteId     = Convert.ToInt32(reader["site_id"]);
            item.Name       = Convert.ToString(reader["name"]);
            item.FromDate   = Convert.ToDateTime(reader["from_date"]);
            item.ToDate     = Convert.ToDateTime(reader["to_date"]);
            item.CreateDate = Convert.ToDateTime(reader["create_date"]);

            return(item);
        }
コード例 #17
0
        /// <summary>
        /// Creates a reservation in the reservation table and associates it with a user
        /// </summary>
        /// <param name="item">The reservation item to be saved</param>
        /// <param name="userId">The id of the user to associate with the reservation</param>
        /// <returns>The autogenerated primary key for the reservation</returns>
        public int MakeReservation(ReservationItem reservation, int userId)
        {
            int reservationId = BaseItem.InvalidId;

            using (TransactionScope scope = new TransactionScope())
            {
                reservationId = AddReservation(reservation);
                AddUserReservation(reservationId, userId);
                scope.Complete();
            }

            return(reservationId);
        }
コード例 #18
0
        public async Task <bool> TryRemoveReservationFromShowAsync(ReservationItem item)
        {
            var show = await GetByIdAsync(item.ShowItemId);

            if (show.Reservations.ContainsKey(item.Id))
            {
                if (show.Reservations.TryRemove(item.Id, out _))
                {
                    return(await _showRepository.UpdateAsync(show.Id, show));
                }
            }
            return(false);
        }
コード例 #19
0
        /// <summary>
        /// Creates a reservation database object
        /// </summary>
        /// <param name="site">The site to be reserved</param>
        /// <param name="fromDate">The start date of the reservation</param>
        /// <param name="toDate">The end date of the reservation</param>
        /// <returns>A complete reservation database object</returns>
        private ReservationItem CreateReservation(SiteItem site, DateTime fromDate, DateTime toDate)
        {
            var reservation = new ReservationItem()
            {
                SiteId      = site.Id,
                CreatedDate = DateTime.UtcNow,
                FromDate    = fromDate,
                ToDate      = toDate,
                Name        = "Jones"
            };

            return(reservation);
        }
コード例 #20
0
        public async Task <IHttpActionResult> CreateReservation(string showId)
        {
            var reservation = new ReservationItem
            {
                ShowItemId = new ItemId(new Guid(showId))
            };
            var id = reservation.Id;

            if (await ReservationService(id).AddAsync(reservation))
            {
                return(Ok(id));
            }
            return(BadRequest());
        }
コード例 #21
0
        /// <summary>
        /// Displays the reservation info to the user
        /// </summary>
        /// <param name="reservation">The reservation info used to filter the campsite selection options</param>
        /// <param name="item">The reservation details</param>
        private void DisplayCompleteReservation(ReservationInfo reservation, ReservationItem item)
        {
            item.Name = CLIHelper.GetString("What name should the reservation be made under?");

            item.FromDate    = reservation.FromDate;
            item.ToDate      = reservation.ToDate;
            item.CreatedDate = DateTime.UtcNow;

            var confirmationId = _db.MakeReservation(item, _userMgr.User.Id);

            Console.WriteLine();
            Console.WriteLine($"The reservation has been made and the confirmation id is {confirmationId}");
            Console.WriteLine(Message_PressKeyContinue);
            Console.ReadKey();
        }
コード例 #22
0
        public void InitializeReservation()
        {
            _db   = new ParkDAO("Data Source=localhost\\sqlexpress;Initial Catalog=npcampground;Integrated Security=True");
            _tran = new TransactionScope();

            ReservationItem item = new ReservationItem()
            {
                SiteId     = TEST_SITE_ID,
                Name       = "Henry Family Vacation",
                FromDate   = DateTime.Parse("2019/07/22"),
                ToDate     = DateTime.Parse("2019/07/29"),
                CreateDate = DateTime.Parse("2019/06/25"),
            };

            _reservation_id = _db.AddReservationItem(item);
        }
コード例 #23
0
        public async Task <ActionResult <ReservationItem> > Approve([FromBody] ReservationItem reservation)
        {
            var stored = await Context.Reservations
                         .SingleOrDefaultAsync(r => r.Id == reservation.Id);

            if (stored == null)
            {
                return(BadRequest("No reservation with that Id."));
            }
            else
            {
                stored.Status = ReservationStatus.Approved;
                await Context.SaveChangesAsync();

                return(NoContent()); // Fine.
            }
        }
コード例 #24
0
        /// <summary>
        /// 最新予約取得を実行する
        /// </summary>
        /// <returns></returns>
        public CheckReservationResult Execute()
        {
            var ret = default(CheckReservationResult);

            // ドライバ初期化
            using (var driver = WebDriverFactory.CreateInstance(AppSettings.BrowserName.Chrome))
            {
                // アクセス
                driver.Url = String.Format("{0}mypage/reservation/?lcl_id=ja", SiteConfig.BASE_URL);

                // ログイン試行
                if (!TryLogin(driver))
                {
                    // ログイン失敗
                    ret = CheckReservationResult.LoginFailed;
                    _reservationItem = null;
                }
                else
                {
                    try
                    {
                        // ホテル名
                        string name = driver.FindElement(By.XPath(SiteConfig.XPATH_RESERVATION_NAME)).Text;
                        // チェックイン日時
                        string date = driver.FindElement(By.XPath(SiteConfig.XPATH_RESERVATION_DATE)).Text.Split(new string[] { "\r\n" }, StringSplitOptions.None)[0];

                        // 予約あり
                        ret = CheckReservationResult.Found;
                        _reservationItem = new ReservationItem()
                        {
                            Name = name,
                            Date = date
                        };
                    }
                    catch (NoSuchElementException)
                    {
                        // 予約なし
                        ret = CheckReservationResult.NotFound;
                        _reservationItem = null;
                    }
                }
            }
            return(ret);
        }
コード例 #25
0
 public async Task <IEnumerable <ReservationItem> > CreateAsync(ReservationItem reservation)
 {
     using (var conn = await GetOpenConnectionAsync())
     {
         return(await conn.QueryAsync <ReservationItem>(
                    param : new {
             Id = reservation.Id,
             ClientId = reservation.ClientId,
             CarId = reservation.CarId,
             RentalStartDate = reservation.RentalStartDate,
             RentalEndDate = reservation.RentalEndDate,
             PickUpLocation = reservation.PickUpLocation,
             DropOffLocation = reservation.DropOffLocation,
             TotalPrice = reservation.TotalPrice
         },
                    sql : SpCreate,
                    commandType : CommandType.StoredProcedure));
     }
 }
コード例 #26
0
        /// <summary>
        /// Adds a row to the reservation table
        /// </summary>
        /// <param name="item">The reservation item containing the data to add</param>
        /// <returns>The autogenerated primary key</returns>
        private int AddReservation(ReservationItem item)
        {
            const string sql = "INSERT [reservation] (site_id, name, from_date, to_date, create_date) " +
                               "VALUES (@SiteId, @Name, @FromDate, @ToDate, @CreateDate);";

            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                SqlCommand cmd = new SqlCommand(sql + _getLastIdSQL, conn);
                cmd.Parameters.AddWithValue("@SiteId", item.SiteId);
                cmd.Parameters.AddWithValue("@Name", item.Name);
                cmd.Parameters.AddWithValue("@FromDate", item.FromDate);
                cmd.Parameters.AddWithValue("@ToDate", item.ToDate);
                cmd.Parameters.AddWithValue("@CreateDate", item.CreatedDate);
                item.Id = (int)cmd.ExecuteScalar();
            }

            return(item.Id);
        }
コード例 #27
0
        private IList <ReservationItem> ConvertToReservationItem(IDictionary <int, Reservation> reservations)
        {
            IList <ReservationItem> reservationItems = new List <ReservationItem>();

            foreach (Reservation reservation in reservations.Values)
            {
                ReservationItem reservationItem = new ReservationItem()
                {
                    From = reservation.From,
                    To   = reservation.To,
                    Id   = reservation.Id,
                    LectureHallNumber = reservation.Hall.Number,
                    Lecturer          = $"{reservation.Lecturer.Title} {reservation.Lecturer.Name} {reservation.Lecturer.Surname}"
                };

                reservationItems.Add(reservationItem);
            }

            return(reservationItems);
        }
コード例 #28
0
 public TimeReservationContentViewModel(IInteractionRequestAware viewModel, ReservationItem item)
 {
     _reservationService = ServiceLocator.Current.GetInstance <ReservationService>();
     StartAt             = new ReactiveProperty <string>(item?.StartAt?.ToString() ?? "").AddTo(this);
     RepetitionType      = new ReactiveProperty <EnumWrap <Repetition> >(new EnumWrap <Repetition>(Repetition.None)).AddTo(this);
     StartAt.SetValidateNotifyError(w => _dtValidator.Validate(w)).AddTo(this);
     RegisterCommand = StartAt.ObserveHasErrors.Select(w => !w).ToReactiveCommand().AddTo(this);
     RegisterCommand.Subscribe(w =>
     {
         if (item == null)
         {
             _reservationService.InsertTimeReservaion(DateTime.Parse(StartAt.Value),
                                                      RepetitionType.Value.EnumValue);
         }
         else
         {
             item.TimeReservation.StartAt = DateTime.Parse(StartAt.Value);
             item.Update();
         }
         viewModel.FinishInteraction.Invoke();
     }).AddTo(this);
 }
コード例 #29
0
        /// <summary>
        /// Prompts user to select a campsite then displays the completed reservation info
        /// </summary>
        /// <param name="reservation">Information about the reservation filters</param>
        /// <param name="dailyFee">The daily fee for the campground for the sites being reserved</param>
        /// <param name="campgroundName">The name of the campground the sites belong to</param>
        private void DisplayCampsiteSelection(ReservationInfo reservation, decimal dailyFee, string campgroundName)
        {
            var sites = _db.GetSites(reservation);

            if (sites.Count > 0)
            {
                var siteInfos = new List <SiteInfo>();
                foreach (var site in sites)
                {
                    siteInfos.Add(site.CreateSiteInfo(dailyFee, campgroundName));
                }
                Dictionary <string, SiteInfo> menu = new Dictionary <string, SiteInfo>();

                ReservationItem item = new ReservationItem();
                item.SiteId = GetSiteSelection(siteInfos, reservation, campgroundName);
                DisplayCompleteReservation(reservation, item);
            }
            else
            {
                throw new NoAvailableCampsitesException();
            }
        }
コード例 #30
0
        /// <summary>
        /// This Method Trys to Add the Reservation to the corresponding show
        /// in the show service. If success -> Add the Reservation
        /// </summary>
        public async Task <bool> AddAsync(ReservationItem item)
        {
            if (item.ShowItemId == null) // ShowItemId is invalid
            {
                return(false);
            }

            if (!item.ReservationDateTime.HasValue) // DateTime missing
            {
                item.ReservationDateTime = DateTime.UtcNow;
            }

            bool isAddedOnShow =
                await ShowService(item).TryAddReservationToShowAsync(item);

            if (!isAddedOnShow) // show was not added to show
            {
                return(false);
            }

            return(await _reservationRepository.AddAsync(item));
        }
コード例 #31
0
        public async Task <ActionResult <ReservationItem> > AddReservation([FromBody] PostReservationRequest item)
        {
            var reservation = new Reservation
            {
                For    = item.For,
                Books  = item.Books,
                Status = ReservationStatus.Pending
            };

            Context.Reservations.Add(reservation);
            await Context.SaveChangesAsync();

            var response = new ReservationItem
            {
                Id     = reservation.Id,
                For    = reservation.For,
                Books  = reservation.Books,
                Status = reservation.Status
            };

            // Write it to the Queue for the background worker (Coming Soon!) to process!
            Queue.SendReservation(response);
            return(Ok(response));
        }
コード例 #32
0
ファイル: CheckoutModels.cs プロジェクト: mkhj/EcoHotels
 public CheckoutCompleteRoomInformationModel(ReservationItem reservationItem)
 {
     NameOfPrimaryGuest = reservationItem.NameOfPrimaryGuest;
     Description = reservationItem.Description;
     Adults = reservationItem.TotalNumberOfGuests;
     TotalPrice = reservationItem.TotalPriceWithoutDiscount;
     AddonsSummary = reservationItem.AddonsSummary;
     RatesPerDay = reservationItem.PricePerDate.Select(x => new CheckoutCompleteRoomRatesPerDay(x));
 }
コード例 #33
0
ファイル: CheckoutModels.cs プロジェクト: mkhj/EcoHotels
        //public CheckoutRoomInformationModel(ReservationItem reservationItem)
        //{
        //    //Id = reservationItem.Id;
        //    NameOfPrimaryGuest = reservationItem.NameOfPrimaryGuest;
        //    ItemType = reservationItem.Description;
        //    Adults = reservationItem.TotalNumberOfGuests;
        //}
        public CheckoutRoomInformationModel(ReservationItem reservationItem, SearchResultRoom roomtype, IEnumerable<Addon> addons)
        {
            Id = Guid.NewGuid();

            Addons = addons.Select(x =>
                new CheckoutAddonItemModel(
                    x.Id,
                    x.Name.GetText(LanguageTypeEnum.English),
                    x.Description.GetText(LanguageTypeEnum.English),
                    x.Price,
                    x.PostingRhythm,
                    x.CalculationRule)
            ).ToList();

            NameOfPrimaryGuest = reservationItem.NameOfPrimaryGuest;
            ItemType = reservationItem.Description;
            Adults = reservationItem.TotalNumberOfGuests;

            Adults = (roomtype.MaxCapacity == 1) ? 1 : 0;

            TotalPrice = roomtype.TotalPrice;

            Guests = Enumerable.Range(1, roomtype.MaxCapacity).Select(x => new SelectListItem { Selected = (x == roomtype.MaxCapacity && x == 1), Text = x.ToString(), Value = x.ToString() }).ToList();
            if (roomtype.MaxCapacity > 1)
            {
                Guests.Insert(0, new SelectListItem { Selected = false, Text = "0", Value = string.Empty });
            }
        }