Exemplo n.º 1
0
        public void OwnerWebStats(BookReservationRequest request, BookReservationResponse reservationResponse)
        {
            try
            {
                OwnerWebStatsRequest ownerRequest = new OwnerWebStatsRequest();
                string           cursession       = string.Empty;
                string           ownerID          = string.Empty;
                var              searchtabvalue   = string.Empty;
                var              SearchTab        = "Dest";
                BlueGreenContext bgContext        = new BlueGreenContext();
                //if (searchtype = "2")
                //{
                //    SearchTab = "Dest";
                //    SearchTabSubVal = Session("SearchCity")
                //    }
                //else if searchtype = "3" Then
                //    SearchTab = "Exp"
                //    SearchTabSubVal = Session("SearchCity")
                //    searchtabvalue = Session("experience")

                //End If
                if (HttpContext.Session != null)
                {
                    cursession = HttpContext.Session.SessionID;
                    ownerID    = bgContext.OwnerId;
                }

                ownerRequest.WebSessionID    = cursession;
                ownerRequest.SiteID          = "7";
                ownerRequest.OwnerID         = request.OwnerID.ToString();
                ownerRequest.SearchTab       = "";
                ownerRequest.SearchTabSubVal = "";
                ownerRequest.SearchTabValue  = "";
                ownerRequest.ResortID        = request.ResortID.ToString();
                ownerRequest.BGOUnitType     = request.UnitTypeCode;
                ownerRequest.ProjectNumber   = request.ReservationProjectNumber;
                ownerRequest.UnitType        = request.UnitTypeCode;

                DateTime checkinDate = DateTime.Parse(request.CheckInDate);
                ownerRequest.CheckInDate  = checkinDate.ToString("MM/dd/yyyy");
                ownerRequest.CheckOutDate = checkinDate.AddDays(request.LengthOfStay).ToString();

                ownerRequest.NumberOfGuests    = request.NumberOfAdults.ToString();
                ownerRequest.SumBal            = request.Points.ToString();
                ownerRequest.PPPEligible       = "";
                ownerRequest.PPPFee            = "";
                ownerRequest.ReservationNumber = reservationResponse.ConfirmReservation.ReservationNumber.ToString();
                ownerRequest.Phase             = "3";
                ownerRequest.RecordReturnCode  = "";
                ownerRequest.ExtendedResort    = "0";
                ownerRequest.ExtendedStay      = "0";
                ownerRequest.Handycap          = "";
                ownerRequest.QryTime           = "";
                ownerRequest.CreatedDate       = DateTime.Now.Date.ToString("MM/dd/yyyy");
                ownerRequest.CreatedBy         = "Web";


                ownerRequest.UnitType = request.UnitTypeCode;


                ProfileService profileService = new ProfileService();

                profileService.OwnerWebStats(ownerRequest);
            }
            catch (Exception ex)
            {
                Sitecore.Diagnostics.Log.Error("Unexpected exception calling OwnerWebStats", ex, "reservationcontroller.OwnerWebStats");
            }
        }
Exemplo n.º 2
0
        private BookReservationResponse ExecuteBook(ReservationParameters reservationContext)
        {
            // bool statusExecuteBook = false;
            BlueGreenContext       bgContext = new BlueGreenContext();
            BookReservationRequest request   = new BookReservationRequest();

            request.ReservationProjectNumber = reservationContext.ProjectNumber.ToString();

            request.OwnerID      = reservationContext.OwnerId;
            request.UnitTypeCode = reservationContext.UnitType;


            request.CheckInDate        = reservationContext.CheckInDate.ToString("MM/dd/yyyy");
            request.LengthOfStay       = Convert.ToInt16((reservationContext.CheckOutDate - reservationContext.CheckInDate).TotalDays);
            request.NumberOfAdults     = int.Parse(reservationContext.Guest_NumberOfGuest); //TODO get value from context
            request.AccountNumber      = bgContext.GetPrimaryAccountNumber();
            request.OwnerProjectNumber = bgContext.GetOwnerAccountProject().ToString();

            //Changed to Enclose Special Requests with Special Request for BGO only
            string specialCharacter = Sitecore.Configuration.Settings.GetSetting("IdentifierForSpecialRequestFromBGO");

            request.Comments = (reservationContext.text_SpecialRequests == null) ? "" : specialCharacter + reservationContext.text_SpecialRequests + specialCharacter;

            if (!string.IsNullOrEmpty(reservationContext.wheelchairaccessible) && reservationContext.wheelchairaccessible == "1")
            {
                request.HandicapAccessible = "Y";
                request.Comments           = "REQHANDICAP " + request.Comments;
            }

            if (reservationContext.ReservationType == SearchParameters.RESERVATION_TYPE_BONUSTIME)
            {
                request.ReservationType = "B";
                request.SiteName        = "BonusTime";
            }
            else
            {
                request.ReservationType = "P";
                request.SiteName        = "onlinepoints";
                request.Points          = reservationContext.PointsRequired;
            }
            if (reservationContext.hasCreditcard)
            {
                request.Payment = new Models.ResortService.BookReservationRequest.Payment();
                request.Payment.CreditCardAuthorization  = reservationContext.CreditCard_VerificationNumber;
                request.Payment.CreditCardName           = reservationContext.CreditCard_Name;
                request.Payment.CreditCardNumber         = reservationContext.CreditCard_Number;
                request.Payment.CreditCardType           = FormatUtils.ConvertCreditCard(reservationContext.CreditCard_Type);
                request.Payment.CreditCardExpirationDate = ReservationUtils.GetExpDate(reservationContext.CreditCard_ExpDateMonth, reservationContext.CreditCard_ExpDateYear);
                request.Payment.CreditCardTotal          = Convert.ToDouble(reservationContext.BT_TotalCost);
                request.Payment.NonTaxTotal = Convert.ToDouble(Convert.ToDecimal(reservationContext.DailyPrice) * reservationContext.NumberOfNightChanged);
            }

            if (reservationContext.hasGuest)
            {
                request.Guests = new List <Models.ResortService.BookReservationRequest.Guest>();

                var guestOld = new Models.ResortService.BookReservationRequest.Guest();
                guestOld.GuestType    = "Primary";
                guestOld.GuestID      = "";
                guestOld.FirstName    = reservationContext.Guest_FirstName;
                guestOld.LastName     = reservationContext.Guest_LastName;
                guestOld.Relationship = reservationContext.Guest_Relationship;
                request.Guests.Add(guestOld);


                if (!string.IsNullOrEmpty(reservationContext.Guest_Email))
                {
                    guestOld.EmailAddresses = new List <Models.ResortService.BookReservationRequest.EmailAddress>();
                    var email = new Models.ResortService.BookReservationRequest.EmailAddress();
                    email.AddressType = "Home";
                    email.Email       = reservationContext.Guest_Email;
                    guestOld.EmailAddresses.Add(email);
                }
                else
                {
                    guestOld.EmailAddresses = new List <Models.ResortService.BookReservationRequest.EmailAddress>();
                    var email = new Models.ResortService.BookReservationRequest.EmailAddress();
                    email.AddressType = "Home";
                    email.Email       = bgContext.bxgOwner.Email;
                    guestOld.EmailAddresses.Add(email);
                }

                if (reservationContext.Guest_AddNew != "AddNew")
                {
                    if (!string.IsNullOrEmpty(reservationContext.Guest_PhoneNumber))
                    {
                        guestOld.Phones = new List <Models.ResortService.BookReservationRequest.Phone>();
                        var phone = new Models.ResortService.BookReservationRequest.Phone();
                        phone.PhoneNumberType = "Home";
                        phone.PhoneNumber     = reservationContext.Guest_PhoneNumber;
                        guestOld.Phones.Add(phone);
                    }
                    if (!string.IsNullOrEmpty(reservationContext.Guest_City))
                    {
                        guestOld.Addresses = new List <Models.ResortService.BookReservationRequest.Address>();
                        var address = new Models.ResortService.BookReservationRequest.Address();
                        address.AddressLine1 = " ";
                        address.AddressLine2 = " ";
                        address.CountryCode  = " ";
                        address.PostalCode   = " ";
                        address.AddressType  = "Home";
                        address.City         = reservationContext.Guest_City;

                        // Here I'm assuming that no one will select state without city (they are both required fields anyway)
                        if (!string.IsNullOrEmpty(reservationContext.Guest_State))
                        {
                            address.ProvinceCode = reservationContext.Guest_State;
                        }

                        guestOld.Addresses.Add(address);
                    }
                }
                else
                {
                    var guest = new Models.ResortService.BookReservationRequest.Guest();
                    guest.GuestType    = "GuestOnPrimary";
                    guest.FirstName    = reservationContext.Guest_FirstName;
                    guest.LastName     = reservationContext.Guest_LastName;
                    guest.Relationship = reservationContext.Guest_Relationship;
                    guest.GuestID      = "";
                    if (!string.IsNullOrEmpty(reservationContext.Guest_Email))
                    {
                        guest.EmailAddresses = new List <Models.ResortService.BookReservationRequest.EmailAddress>();
                        var email = new Models.ResortService.BookReservationRequest.EmailAddress();
                        email.AddressType = "Home";

                        email.Email = reservationContext.Guest_Email;
                        guest.EmailAddresses.Add(email);
                    }

                    if (!string.IsNullOrEmpty(reservationContext.Guest_City))
                    {
                        guest.Addresses = new List <Models.ResortService.BookReservationRequest.Address>();
                        var address = new Models.ResortService.BookReservationRequest.Address();
                        address.AddressLine1 = " ";
                        address.AddressLine2 = " ";
                        address.CountryCode  = " ";
                        address.PostalCode   = " ";
                        address.AddressType  = "Home";
                        address.City         = reservationContext.Guest_City;

                        // Here I'm assuming that no one will select state without city (they are both required fields anyway)
                        if (!string.IsNullOrEmpty(reservationContext.Guest_State))
                        {
                            address.ProvinceCode = reservationContext.Guest_State;
                        }

                        guest.Addresses.Add(address);
                    }


                    if (!string.IsNullOrEmpty(reservationContext.Guest_PhoneNumber))
                    {
                        guest.Phones = new List <Models.ResortService.BookReservationRequest.Phone>();
                        var phone = new Models.ResortService.BookReservationRequest.Phone();
                        phone.PhoneNumberType = "Home";
                        phone.PhoneNumber     = reservationContext.Guest_PhoneNumber;
                        guest.Phones.Add(phone);
                    }

                    request.Guests.Add(guest);
                }
            }
            if (reservationContext.hasAddress)
            {
            }

            if (Session["AgentLoginID"] == null)
            {
                request.Agent = "OWNER";
            }
            else
            {
                request.Agent = (string)Session["AgentLoginID"];
            }

            ResortService resortService       = new ResortService();
            var           reservationResponse = resortService.BookReservation(request);

            OwnerWebStats(request, reservationResponse);

            return(reservationResponse);
        }