Esempio n. 1
0
        //constructor
        public UserAddReport(string Email, string PasswordHash) //this page if accesible only for logged users so it requested the datas of the
                                                                //logged users
        {
            try
            {
                this.Email        = Email;
                this.PasswordHash = PasswordHash;
                InitializeComponent();
                // Initializing Design
                BookingListComboBox.DropDownStyle = ComboBoxStyle.DropDownList;

                //initialize connection with the server
                this.bookingManager = new BookingManagerClient();
                bookings            = bookingManager.GetBookingsForUser(Email, Email, PasswordHash);
                //show all the bookings of the user so he can select the one to add the report
                foreach (Booking.Booking SingleBooking in bookings)
                {
                    BookingListComboBox.Items.Add(SingleBooking.ID.ToString() + " - " + SingleBooking.BookedCar.Make + " " + SingleBooking.BookedCar.Model);
                }
            }
            catch (Exception exc)
            {
                MessageBox.Show("Errore nella connessione al server.", "Proprio non riesco.", MessageBoxButtons.OK);
                this.cancelReport();
            }
        }
Esempio n. 2
0
 //overloaded constructor. in this case the admin add a report
 public AdminReportEdit(string Email, string PassHash, int BookingID)
 {
     InitializeComponent();
     this.Email           = Email;
     this.PassHash        = PassHash;
     this.ReportedBooking = new Report.Booking();
     this.newReport       = true;
     subjectTextbox.Text  = "";
     messageTextBox.Text  = "";
     DeleteButton.Visible = false;
     try
     {
         BookingManagerClient bookingManager = new BookingManagerClient();
         this.reportManager = new ReportManagerClient();
         Booking.Booking FetchedBooking = bookingManager.GetBookingByID(BookingID, this.Email, this.PassHash);
         ReportedBooking.ID                    = FetchedBooking.ID;
         ReportedBooking.BookedCar             = new Report.Car();
         ReportedBooking.BookedCar.PlateNumber = FetchedBooking.BookedCar.PlateNumber;
         ReportedBooking.Booker                = new Report.User();
         ReportedBooking.Booker.Email          = FetchedBooking.Booker.Email;
         ReportedBooking.End                   = FetchedBooking.End;
         ReportedBooking.Start                 = FetchedBooking.Start;
     }catch (Exception exc)
     {
         MessageBox.Show("Errore nella connessione al server.", "Proprio non riesco.", MessageBoxButtons.OK);
     }
 }
        public async Task <IActionResult> SellJourneys([FromBody] string[] journeyFareSellKeys)
        {
            var signature      = string.Empty;
            var sessionManager = new SessionManagerClient();
            var logonResponse  = await sessionManager.LogonAsync(new LogonRequest
            {
                logonRequestData = new LogonRequestData
                {
                    DomainCode = "DEF",
                    AgentName  = "sculthorpe070884",
                    Password   = "******"
                }
            });

            var client      = new BookingManagerClient();
            var sellKeyList = new SellKeyList[journeyFareSellKeys.Length];

            for (var i = 0; i < journeyFareSellKeys.Length; i++)
            {
                var split = journeyFareSellKeys[i].Split('|');
                sellKeyList[i] = new SellKeyList
                {
                    JourneySellKey = split[0],
                    FareSellKey    = split[1]
                };
            }

            var sellRequestData = new SellRequestData
            {
                SellBy = SellBy.JourneyBySellKey,
                SellJourneyByKeyRequest = new SellJourneyByKeyRequest
                {
                    SellJourneyByKeyRequestData = new SellJourneyByKeyRequestData
                    {
                        ActionStatusCode = "NN",
                        CurrencyCode     = "SAR",
                        JourneySellKeys  = sellKeyList,
                        PaxCount         = 1,
                        PaxPriceType     = new PaxPriceType[] { new PaxPriceType {
                                                                    PaxCount = 1, PaxType = "ADT"
                                                                } }
                    }
                }
            };
            var response = await client.SellAsync(348, false, "3.4.13", logonResponse.Signature, sellRequestData);

            return(new OkObjectResult(response));
        }
Esempio n. 4
0
        //constuctor
        public UserCarBooker(string Email, string PassHash) //this page if accesible only for logged users so it requested the datas of the
                                                            //logged users
        {
            InitializeComponent();
            try {
                //initialize connection with the server
                this.bookingManager = new BookingManagerClient();
                this.carManager     = new CarManagerClient();
                this.Email          = Email;
                this.PassHash       = PassHash;
                this.UpdateAvailableCars();

                bookingBox.DropDownStyle = ComboBoxStyle.DropDownList;
                carBox.DropDownStyle     = ComboBoxStyle.DropDownList;
            }
            catch (Exception exc)
            {
                MessageBox.Show("Errore nella connessione al server.", exc.ToString(), MessageBoxButtons.OK);
                this.StopEditing();
            }
        }
Esempio n. 5
0
        //constructor
        public AdminBookingList(string Email, string PassHash, string UserEmail = "")
        {
            this.Email    = Email;
            this.PassHash = PassHash;
            InitializeComponent();
            bookingsListView.Clear();
            this.UserEmail        = UserEmail;
            bookingsListView.View = View.Details;
            bookingsListView.Columns.Add("ID", 230, HorizontalAlignment.Left);
            bookingsListView.Columns.Add("Targa", 230, HorizontalAlignment.Left);
            bookingsListView.Columns.Add("Utente", 200, HorizontalAlignment.Left);
            bookingsListView.Columns.Add("Inizio", 150, HorizontalAlignment.Left);
            bookingsListView.Columns.Add("Fine", 50, HorizontalAlignment.Left);

            try
            {
                this.bookingManager = new BookingManagerClient();
                this.UpdateBookings();
            }catch (Exception exc)
            {
                MessageBox.Show("Errore nella connessione al server.", "Proprio non riesco.", MessageBoxButtons.OK);
            }
        }
Esempio n. 6
0
        public static void GetAvailability1(string source, string destination, string ddate, string returndate, string waytype, string noofPassenger)
        {
            IBookingManager         bookingManager = new BookingManagerClient();
            string                  signature      = Login();
            GetAvailabilityRequest  gar            = new GetAvailabilityRequest();
            TripAvailabilityRequest tar            = new TripAvailabilityRequest();
            AvailabilityRequest     ar             = new AvailabilityRequest();

            ar.DepartureStation = source;      // "DEL";// HttpContext.Current.Session["origin"].ToString();
            ar.ArrivalStation   = destination; // "BOM";// HttpContext.Current.Session["destination"].ToString();
            //string[] date = ddate.Split('/');// HttpContext.Current.Session["ddate"].ToString().Split('/');
            //int year = int.Parse(date[2]), month = int.Parse(date[1]), day = int.Parse(date[0]);
            int year = int.Parse(ddate.Substring(0, 4)), month = int.Parse(ddate.Substring(4, 2)), day = int.Parse(ddate.Substring(6));

            ar.BeginDate  = new DateTime(year, month, day); //Convert.ToDateTime("2015-07-07");
            ar.EndDate    = new DateTime(year, month, day);
            ar.FlightType = FlightType.Direct;
            //ar.FlightNumber = b.FlightNo.Length == 3 ? " " + b.FlightNo : b.FlightNo;
            int pax = Convert.ToInt16(noofPassenger);//+ Convert.ToInt16(page.child);

            ar.PaxCount                 = Convert.ToSByte(pax);
            ar.Dow                      = DOW.Daily;
            ar.CurrencyCode             = "INR";
            ar.AvailabilityType         = AvailabilityType.Default;   //change 15 oct 2015
            ar.MaximumConnectingFlights = 5;
            ar.AvailabilityFilter       = AvailabilityFilter.Default; //change
            ar.FareClassControl         = FareClassControl.LowestFareClass;
            ar.MinimumFarePrice         = 0;
            ar.MaximumFarePrice         = 0;
            ar.SSRCollectionsMode       = SSRCollectionsMode.None;
            ar.InboundOutbound          = InboundOutbound.None;
            ar.NightsStay               = 0;
            ar.IncludeAllotments        = false;
            ar.FareTypes                = new string[1];// change
            ar.FareTypes[0]             = "R";

            //ar.FareTypes = new string[1];// change
            //ar.FareTypes[0] = "BD";
            //ar.ProductClasses = new string[1];
            //ar.ProductClasses[0] = "BD";
            PaxPriceType[] priceTypes = new PaxPriceType[ar.PaxCount];
            for (int i = 0; i < ar.PaxCount; i++)
            {
                priceTypes[i]                 = new PaxPriceType();
                priceTypes[i].PaxType         = "ADT";
                priceTypes[i].PaxDiscountCode = String.Empty;
            }
            ar.PaxPriceTypes       = priceTypes;
            ar.IncludeTaxesAndFees = false;
            ar.FareRuleFilter      = FareRuleFilter.Default;
            ar.LoyaltyFilter       = LoyaltyFilter.MonetaryOnly;
            if (!string.IsNullOrEmpty(returndate))// for round trip
            {
                AvailabilityRequest rar = new AvailabilityRequest();
                rar.DepartureStation = destination; // "DEL";// HttpContext.Current.Session["origin"].ToString();
                rar.ArrivalStation   = source;      // "BOM";// HttpContext.Current.Session["destination"].ToString();
                //string[] date = ddate.Split('/');// HttpContext.Current.Session["ddate"].ToString().Split('/');
                //int year = int.Parse(date[2]), month = int.Parse(date[1]), day = int.Parse(date[0]);
                int ryear = int.Parse(returndate.Substring(0, 4)), rmonth = int.Parse(returndate.Substring(4, 2)), rday = int.Parse(returndate.Substring(6));
                rar.BeginDate  = new DateTime(ryear, rmonth, rday); //Convert.ToDateTime("2015-07-07");
                rar.EndDate    = new DateTime(ryear, rmonth, rday);
                rar.FlightType = FlightType.Direct;
                //ar.FlightNumber = b.FlightNo.Length == 3 ? " " + b.FlightNo : b.FlightNo;
                int rpax = Convert.ToInt16(noofPassenger);//+ Convert.ToInt16(page.child);
                rar.PaxCount                 = Convert.ToSByte(rpax);
                rar.Dow                      = DOW.Daily;
                rar.CurrencyCode             = "INR";
                rar.AvailabilityType         = AvailabilityType.Default;   //change 15 oct 2015
                rar.MaximumConnectingFlights = 5;
                rar.AvailabilityFilter       = AvailabilityFilter.Default; //change
                rar.FareClassControl         = FareClassControl.LowestFareClass;
                rar.MinimumFarePrice         = 0;
                rar.MaximumFarePrice         = 0;
                rar.SSRCollectionsMode       = SSRCollectionsMode.None;
                rar.InboundOutbound          = InboundOutbound.None;
                rar.NightsStay               = 0;
                rar.IncludeAllotments        = false;
                rar.FareTypes                = new string[1];// change
                rar.FareTypes[0]             = "R";

                //ar.FareTypes = new string[1];// change
                //ar.FareTypes[0] = "BD";
                //ar.ProductClasses = new string[1];
                //ar.ProductClasses[0] = "BD";
                PaxPriceType[] rpriceTypes = new PaxPriceType[ar.PaxCount];
                for (int i = 0; i < ar.PaxCount; i++)
                {
                    rpriceTypes[i]                 = new PaxPriceType();
                    rpriceTypes[i].PaxType         = "ADT";
                    rpriceTypes[i].PaxDiscountCode = String.Empty;
                }
                rar.PaxPriceTypes           = rpriceTypes;
                rar.IncludeTaxesAndFees     = false;
                rar.FareRuleFilter          = FareRuleFilter.Default;
                rar.LoyaltyFilter           = LoyaltyFilter.MonetaryOnly;
                tar.AvailabilityRequests    = new AvailabilityRequest[2];
                tar.AvailabilityRequests[0] = ar;
                tar.AvailabilityRequests[1] = rar;
            }
            else
            {
                tar.AvailabilityRequests    = new AvailabilityRequest[1];
                tar.AvailabilityRequests[0] = ar;
            }
            tar.LoyaltyFilter           = LoyaltyFilter.MonetaryOnly;
            gar.TripAvailabilityRequest = tar;
            gar.Signature       = signature;
            gar.ContractVersion = 0;
            GetAvailabilityResponse gare = bookingManager.GetAvailability(gar);

            //if (waytype == "1")
            GetPrice(signature, gare, noofPassenger);
            //if (waytype == "2")
            //    GetPriceReturn(signature, gare,page);
        }
Esempio n. 7
0
        public static void GetPriceReturn(string signature, GetAvailabilityResponse response, string noofPassenger)
        {
            IBookingManager bookingManager = new BookingManagerClient();
            DataTable       flights        = Table_Flights();
            DataTable       fare           = Table_Fare();

            foreach (JourneyDateMarket[] jdmArray in response.GetTripAvailabilityResponse.Schedules)
            {
                foreach (JourneyDateMarket jdm in jdmArray)
                {
                    foreach (Journey journey in jdm.Journeys)
                    {
                        PriceItineraryRequest pir = new PriceItineraryRequest();
                        ItineraryPriceRequest ipr = new ItineraryPriceRequest();
                        ipr.PriceItineraryBy = PriceItineraryBy.JourneyBySellKey;
                        ipr.SellByKeyRequest = new SellJourneyByKeyRequestData();
                        ipr.SellByKeyRequest.ActionStatusCode = "NN";
                        SellKeyList[] list = new SellKeyList[1];
                        list[0] = new SellKeyList();

                        list[0].JourneySellKey = journey.JourneySellKey;
                        foreach (Segment segment in journey.Segments)
                        {
                            DataRow dr = flights.NewRow();
                            if (segment.Fares.Length > 0)
                            {
                                list[0].FareSellKey = segment.Fares[0].FareSellKey;
                                dr["ShortDate"]     = segment.STD.ToString("ddd MMM d yyyy");
                                dr["Date"]          = segment.STD.ToShortDateString();
                                dr["From"]          = segment.DepartureStation;
                                dr["To"]            = segment.ArrivalStation;
                                dr["FlightNo"]      = segment.FlightDesignator.FlightNumber;
                                dr["STD"]           = segment.STD.ToString("dd/MM/yyy hh:mm tt");
                                dr["STA"]           = segment.STA.ToString("dd/MM/yyy hh:mm tt");
                                dr["BaseFare"]      = segment.Fares[0].PaxFares[0].ServiceCharges[0].Amount;
                                dr["TimeDuration"]  = TimeDuration(segment.STD.ToString(), segment.STA.ToString());
                                flights.Rows.Add(dr);
                            }
                        }

                        ipr.SellByKeyRequest.JourneySellKeys = list;
                        int pax = Convert.ToInt16(noofPassenger);//+ Convert.ToInt16(page.child);
                        ipr.SellByKeyRequest.PaxCount = Convert.ToSByte(pax);
                        PaxPriceType[] priceTypes = new PaxPriceType[ipr.SellByKeyRequest.PaxCount];
                        for (int i = 0; i < ipr.SellByKeyRequest.PaxCount; i++)
                        {
                            priceTypes[i]                 = new PaxPriceType();
                            priceTypes[i].PaxType         = "ADT";
                            priceTypes[i].PaxDiscountCode = string.Empty;
                        }
                        ipr.SellByKeyRequest.PaxPriceType          = priceTypes;
                        ipr.SellByKeyRequest.CurrencyCode          = "INR";
                        ipr.SellByKeyRequest.LoyaltyFilter         = LoyaltyFilter.MonetaryOnly;
                        ipr.SellByKeyRequest.IsAllotmentMarketFare = false;
                        pir.ItineraryPriceRequest = ipr;
                        pir.Signature             = signature;
                        PriceItineraryResponse pire = bookingManager.GetItineraryPrice(pir);
                        foreach (Journey j in pire.Booking.Journeys)
                        {
                            foreach (Segment segment in j.Segments)
                            {
                                foreach (BookingServiceCharge bsc in segment.Fares[0].PaxFares[0].ServiceCharges)
                                {
                                    DataRow drr = fare.NewRow();
                                    drr["FlightNo"] = segment.FlightDesignator.FlightNumber;
                                    drr["Heads"]    = bsc.ChargeType.ToString() + bsc.ChargeCode.ToString();
                                    drr["Amount"]   = bsc.Amount;
                                    fare.Rows.Add(drr);
                                }
                            }
                        }
                    }
                }
            }
            foreach (DataRow dr in flights.Rows)
            {
                dr["TotalFare"] = TotalFare(fare, dr["FlightNo"].ToString()) * (Convert.ToDouble(noofPassenger.ToString()));
            }
            HttpContext.Current.Session["Rflights"] = flights;
            HttpContext.Current.Session["Rfare"]    = fare;
            Logout(signature);
        }
        public async Task <IActionResult> Test()
        {
            try
            {
                var result         = new List <object>();
                var sessionManager = new SessionManagerClient();
                var logonResponse  = await sessionManager.LogonAsync(new LogonRequest
                {
                    //logonRequestData = new LogonRequestData
                    //{
                    //    DomainCode = "WWW",
                    //    AgentName = "awdta1",
                    //    Password = "******"
                    //}
                    logonRequestData = new LogonRequestData
                    {
                        DomainCode = "DEF",
                        AgentName  = "sculthorpe070884",
                        Password   = "******"
                    }
                });

                result.Add(logonResponse);
                IBookingManager bookingManager = new BookingManagerClient();
                // {
                var bookingResponse = await bookingManager.GetBookingAsync(new GetBookingRequest
                {
                    Signature         = logonResponse.Signature,
                    GetBookingReqData = new GetBookingRequestData
                    {
                        GetByRecordLocator = new GetByRecordLocator
                        {
                            RecordLocator = "V4HSFS"/// "EWRT45"
                        }
                    }
                });

                var availRequest = new AvailabilityRequest
                {
                    DepartureStation = "JED",
                    ArrivalStation   = "RUH",
                    BeginDate        = new DateTime(2017, 10, 01),
                    // BeginTime = new Time(),
                    EndDate = new DateTime(2017, 10, 01),
                    // EndTime = new Time(),
                    PaxPriceTypes = new[] { new PaxPriceType {
                                                PaxType = "ADT", PaxCount = 1
                                            } },
                    InboundOutbound    = InboundOutbound.Both,
                    FareClassControl   = FareClassControl.CompressByProductClass,
                    AvailabilityFilter = AvailabilityFilter.ExcludeUnavailable,
                    AvailabilityType   = AvailabilityType.Default,
                    FareRuleFilter     = FareRuleFilter.Default,
                    PaxCount           = 1,
                    CurrencyCode       = "SAR",
                    FareTypes          = new[] { "R" },
                    FlightType         = FlightType.All,
                    Dow = DOW.Daily,
                    IncludeAllotments   = true,
                    IncludeTaxesAndFees = true,
                    SSRCollectionsMode  = SSRCollectionsMode.All,
                    LoyaltyFilter       = Navitaire.NewSkies.WebServices.DataContracts.Common.Enumerations.LoyaltyFilter.PointsAndMonetary,
                    JourneySortKeys     = new[] { JourneySortKey.EarliestDeparture, JourneySortKey.LowestFare },
                    PaxResidentCountry  = "SA"
                };
                var availResponse = await bookingManager.GetAvailabilityAsync(new GetAvailabilityRequest
                {
                    Signature = logonResponse.Signature,
                    TripAvailabilityRequest = new TripAvailabilityRequest
                    {
                        LoyaltyFilter        = Navitaire.NewSkies.WebServices.DataContracts.Common.Enumerations.LoyaltyFilter.PointsAndMonetary,
                        AvailabilityRequests = new[] { availRequest }
                    }
                });

                dto.GetAvailabilityResponse dtoAvailResponse = _mapper.Map <GetAvailabilityResponse, dto.GetAvailabilityResponse>(availResponse);
                result.Add(dtoAvailResponse);

                var GetTripAvailabilityWithSSRAsyncResp = await bookingManager.GetTripAvailabilityWithSSRAsync(new GetTripAvailabilityWithSSRRequest
                {
                    TripAvailabilityWithSSRRequest = new TripAvailabilityWithSSRRequest
                    {
                        AvailabilityRequests = new AvailabilityRequest[] { availRequest },
                        LoyaltyFilter        = Navitaire.NewSkies.WebServices.DataContracts.Common.Enumerations.LoyaltyFilter.PointsAndMonetary,
                        IncludeSSRList       = new string[] { "INFT" }
                    },
                    Signature = logonResponse.Signature
                });

                result.Add(GetTripAvailabilityWithSSRAsyncResp);

                /*
                 * var legKey = new System.Collections.Generic.List<LegKey>();
                 * foreach (var segment in availResponse.GetTripAvailabilityResponse.Schedules[0][0].Journeys[0].Segments)
                 * {
                 *  legKey.Add(new LegKey { ArrivalStation = segment.ArrivalStation, DepartureStation = segment.DepartureStation, CarrierCode = segment.FlightDesignator.CarrierCode.Trim(), DepartureDate = segment.STD, FlightNumber = segment.FlightDesignator.FlightNumber.Trim(), OpSuffix = segment.FlightDesignator.OpSuffix.Trim() });
                 * }
                 * GetSSRAvailabilityForBookingRequest getSSRAvailabilityForBookingRequest = new GetSSRAvailabilityForBookingRequest();
                 * SSRAvailabilityForBookingRequest SSRAvailRequest = new SSRAvailabilityForBookingRequest();
                 * SSRAvailRequest.SegmentKeyList = legKey.ToArray();
                 * // "20080303 1L1501 SLCLAX";
                 * // "20171001 0P 101 JEDRUH";
                 * // "20171001 0P 101 JEDRUH"
                 * SSRAvailRequest.CurrencyCode = "SAR";
                 * SSRAvailRequest.PassengerNumberList = new short[] { 0 };
                 * SSRAvailRequest.InventoryControlled = true;
                 * SSRAvailRequest.NonInventoryControlled = true;
                 * SSRAvailRequest.SeatDependent = true;
                 * SSRAvailRequest.NonSeatDependent = true;
                 * getSSRAvailabilityForBookingRequest.SSRAvailabilityForBookingRequest = SSRAvailRequest;
                 * getSSRAvailabilityForBookingRequest.Signature = logonResponse.Signature;
                 * var getSSRAvailabilityForBookingresult = await bookingManager.GetSSRAvailabilityForBookingAsync(getSSRAvailabilityForBookingRequest);
                 * result[2] = getSSRAvailabilityForBookingRequest;
                 */
                var legKeyList = new System.Collections.Generic.List <string>();
                foreach (var segment in availResponse.GetTripAvailabilityResponse.Schedules[0][0].Journeys[0].Segments)
                {
                    // "20080303 1L1501 SLCLAX";
                    var legKey = string.Format("{0}{1}{2}{3}{4}{5}",
                                               segment.STD.ToString("yyyyMMdd"), segment.FlightDesignator.CarrierCode.PadLeft(3, ' '), segment.FlightDesignator.FlightNumber.PadLeft(4, ' '),
                                               segment.FlightDesignator.OpSuffix, segment.DepartureStation, segment.ArrivalStation);
                    legKeyList.Add(legKey);
                }
                GetSSRAvailabilityRequest getSSRAvailabilityRequest = new GetSSRAvailabilityRequest();
                SSRAvailabilityRequest    SSRAvailRequest           = new SSRAvailabilityRequest();
                SSRAvailRequest.InventoryLegKeys    = legKeyList.ToArray();
                SSRAvailRequest.SSRCollectionsMode  = SSRCollectionsMode.All;
                getSSRAvailabilityRequest.Signature = logonResponse.Signature;
                getSSRAvailabilityRequest.SSRAvailabilityRequest = SSRAvailRequest;
                var getSSRAvailabilityresult = await bookingManager.GetSSRAvailabilityAsync(getSSRAvailabilityRequest);

                result.Add(getSSRAvailabilityresult);
                // }
                IUtilitiesManager utilities = new UtilitiesManagerClient();
                var stationsResponse        = await utilities.GetStationListAsync(new GetStationListRequest
                {
                    Signature = logonResponse.Signature,
                    EnableExceptionStackTrace = true,
                    GetStationListRequestData = new GetStationListRequestData {
                        CultureCode = "en-US"
                    }
                });

                result.Add(stationsResponse);
                IAgentManager agentManager  = new AgentManagerClient();
                var           rolesResponse = await agentManager.GetRoleListAsync(new GetRoleListRequest { Signature = logonResponse.Signature });

                result.Add(rolesResponse);

                var logoutResponse = await sessionManager.LogoutAsync(new LogoutRequest
                {
                    Signature = logonResponse.Signature
                });

                result.Add(logoutResponse);
                return(new OkObjectResult(result));
            }
            catch (Exception e)
            {
                return(new BadRequestObjectResult(e));
            }
        }
Esempio n. 9
0
 internal static void AddNewskiesServices(this IServiceCollection services)
 {
     ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
     services.AddSingleton <IBookingManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new BookingManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.BookingManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.BookingManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <IAgentManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new AgentManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.AgentManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.AgentManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <IPersonManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new PersonManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.PersonManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.PersonManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <IUtilitiesManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new UtilitiesManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.UtilitiesManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.UtilitiesManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <IOperationManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new OperationManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.OperationManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.OperationManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <IQueueManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new QueueManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.QueueManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.QueueManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <IVoucherManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new VoucherManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.VoucherManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.VoucherManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <IAccountManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new AccountManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.AccountManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.AccountManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
     services.AddSingleton <ISessionManager>(service =>
     {
         var options = service.GetService(typeof(IOptions <AppSettings>)) as IOptions <AppSettings>;
         var client  = new SessionManagerClient();
         if (!string.IsNullOrEmpty(options.Value.NewskiesSettings.ServiceEndpoints.SessionManagerUrl))
         {
             client.Endpoint.Address              = new EndpointAddress(options.Value.NewskiesSettings.ServiceEndpoints.SessionManagerUrl);
             var timeout                          = options.Value.NewskiesSettings.ServiceTimeoutSeconds;
             client.Endpoint.Binding.OpenTimeout  = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.CloseTimeout = TimeSpan.FromSeconds(timeout);
             client.Endpoint.Binding.SendTimeout  = TimeSpan.FromSeconds(timeout);
         }
         return(client);
     });
 }