Пример #1
0
 /// <summary>
 /// 提取机票价格的航信指令
 /// </summary>
 /// <param name="transactionId"></param>
 public PATCommad(PassengerType passengerType, string transactionId)
 {
     this.passengerType = passengerType;
     this.commandType   = CommandType.PNRExtraction;
     this.transactionId = transactionId;
     Initialize();
 }
Пример #2
0
        /// <summary>
        /// 获得乘机人名字和类型
        /// </summary>
        /// <param name="initName">原始串如:王小丽CHD</param>
        /// <param name="type">乘机人类型</param>
        /// <returns>乘机人名</returns>
        protected string GetName(string initName, out PassengerType type)
        {
            ////初始值:成人
            type = PassengerType.成人;

            if (Regex.IsMatch(initName, @"^[a-zA-Z][\u2E80-\u9FFF]+"))
            {
                System.Exception ex = new System.Exception("PNR内容中乘客信息异常。");
                throw ex;
            }

            ////如果没有CHD,则认为是成人,直接返回
            if (!Regex.IsMatch(initName, @"(CHD|\))$"))
            {
                return(initName);
            }

            ////如果为 WANG/HUIXIONGCHD  则认为是成人
            ////if (Regex.IsMatch(initName, @"[A-Z|a-z]CHD$"))
            ////    return initName;
            ////解析出人名
            Regex reg = new Regex(@"(?<NAME>.+?)(?:CHD|\()");
            Match mat = reg.Match(initName);

            if (mat.Success)
            {
                type = PassengerType.儿童;
                return(mat.Groups["NAME"].Value.Trim());
            }

            return(initName);
        }
Пример #3
0
        public static string GetDescription(this PassengerType passengerType)
        {
            switch (passengerType)
            {
            case PassengerType.Adult:
                return("Yetişkin");

            case PassengerType.Child:
                return("Çocuk");

            case PassengerType.Baby:
                return("Bebek");

            case PassengerType.Infant:
                return("Yaşlı");

            case PassengerType.Student:
                return("Öğrenci");

            case PassengerType.Military:
                return("Asker");

            case PassengerType.Teenager:
                return("Genç");

            default:
                return(null);
            }
        }
Пример #4
0
        /// <summary> The static method to return an IPassenger with a specified PassengerType mapped value. </summary>
        public static IPassenger Create(PassengerType type)
        {
            switch (type)
            {
            case PassengerType.Astronaut:
                return(new AstronautFactory().NewPassenger());

            case PassengerType.Cosmonaut:
                return(new CosmonautFactory().NewPassenger());

            case PassengerType.Toy:
                return(new ToyFactory().NewPassenger());

            case PassengerType.RemoteControlToy:
                return(new RemoteControlFactory().NewPassenger());

            default:
                return(new AstronautFactory().NewPassenger());
            }

            // Could also be done in C# 8+ like so:

            /*
             * return type switch
             * {
             * PassengerType.Astronaut => new AstronautFactory().NewPassenger(),
             * PassengerType.Cosmonaut => new CosmonautFactory().NewPassenger(),
             * PassengerType.Toy => new ToyFactory().NewPassenger(),
             * _ => new AstronautFactory().NewPassenger(),
             * };
             */
        }
Пример #5
0
 /// <summary>
 /// 建立姓名组的航信指令
 /// </summary>
 /// <param name="names">旅客名称列表</param>
 /// <param name="passengerType">旅客类型</param>
 /// <param name="transactionId"></param>
 public NMCommand(List <string> names, PassengerType passengerType, string transactionId)
 {
     this.names         = names;
     this.passengerType = passengerType;
     this.transactionId = transactionId;
     Initialize();
 }
Пример #6
0
    Sprite setImageByPassengerType(GameObject go, PassengerType p_type)
    {
        int selected = -1;

        switch (p_type)
        {
        case PassengerType.TURISTA:
            selected = Random.Range(0, turista_info.Count);
            go.GetComponent <Image>().sprite = turista_info[selected];
            break;

        case PassengerType.IDOSO:
            selected = Random.Range(0, idoso_info.Count);
            go.GetComponent <Image>().sprite = idoso_info[selected];
            break;

        case PassengerType.ESTUDANTE:
            selected = Random.Range(0, estudante_info.Count);
            go.GetComponent <Image>().sprite = estudante_info[selected];
            break;

        case PassengerType.VAREJISTA:
            selected = Random.Range(0, varejista_info.Count);
            go.GetComponent <Image>().sprite = varejista_info[selected];
            break;

        case PassengerType.TRABALHADOR:
            selected = Random.Range(0, trabalhador_info.Count);
            go.GetComponent <Image>().sprite = trabalhador_info[selected];
            break;
        }
        return(go.GetComponent <Image>().sprite);
    }
Пример #7
0
 /// <summary>
 /// The public static factory method accepting a PassengerType and bool (additional proxy logic)
 /// </summary>
 public static ProtectedPassenger Create(PassengerType type, bool isWearingSpaceSuit)
 {
     return(new ProtectedPassenger()
     {
         m_Passenger = PassengerCreator.Create(type), IsWearingSpaceSuit = isWearingSpaceSuit
     });
 }
Пример #8
0
        public static string GetPassengerType(PassengerType passengerType)
        {
            switch (passengerType)
            {
            case PassengerType.Adult:
                return("1");

            case PassengerType.Child:
                return("2");

            case PassengerType.Baby:
                return("3");

            case PassengerType.Infant:
                return("4");

            case PassengerType.Student:
                return("5");

            case PassengerType.Military:
                return("7");

            case PassengerType.Teenager:
                return("8");

            default:
                return(null);
            }
        }
Пример #9
0
        public PassengerType GetPassengerTypeForUser(string email)
        {
            ApplicationUser user = UserManager.FindByEmail(email);
            PassengerType   pas  = unitOfWork.PassengerTypes.Get((int)user.PassengerTypeId);

            return(pas);
        }
Пример #10
0
        internal PriceView Pat(PNRPair pnr, IEnumerable <FlightView> flights, PassengerType passengerType)
        {
            ExecuteResult <IEnumerable <PriceView> > execResult = CommandService.QueryPriceByPNR(pnr, passengerType, Guid.Empty);

            if (execResult.Success)
            {
                decimal   minFare      = execResult.Result.Min(item => item.Fare);
                PriceView minPriceView = execResult.Result.First(item => item.Fare == minFare);
                // 检查是否与基础数据中的价格相同,不同则记录日志
                if (flights.Count() == 1)
                {
                    FlightView flight = flights.First();
                    if (flight.BunkType.HasValue && (flight.BunkType.Value == BunkType.Economic || flight.BunkType.Value == BunkType.FirstOrBusiness) && flight.Fare != minFare &&
                        passengerType == PassengerType.Adult)
                    {
                        var fare = new FareErrorLog
                        {
                            Carrier    = flight.AirlineCode,
                            Departure  = flight.Departure.Code,
                            Arrival    = flight.Arrival.Code,
                            FlightDate = flight.Departure.Time.Date,
                            Bunk       = flight.BunkCode,
                            Fare       = minFare
                        };
                        LogService.SaveFareErrorLog(fare);
                        //B3BEmailSender.SendFareError(fare, flight.Fare);
                    }
                }
                return(minPriceView);
            }
            return(null);
        }
Пример #11
0
 public NmCommand(List <string> names, PassengerType passengerType, string carrier)
 {
     _names         = names;
     _passengerType = passengerType;
     _carrier       = carrier;
     Initialize();
 }
Пример #12
0
 private static OrderView GetOrderView(OrderSource orderSource, ReservedPnr pnrContent, PNRPair associatePNR, IEnumerable <FlightView> flightViews,
                                       PassengerType passengerType)
 {
     return(new OrderView
     {
         FdSuccess = true,
         Source = orderSource,
         PNR = pnrContent.PnrPair,
         Passengers = pnrContent.Passengers.OrderBy(p => p.Name).Select(p => new PassengerView
         {
             Name = p.Name,
             Credentials = p.CertificateNumber,
             CredentialsType = CredentialsType.身份证,
             PassengerType = passengerType,
             Phone = p.Mobilephone
         }),
         Flights = flightViews.Select(ReserveViewConstuctor.GetOrderFlightView).ToList(),
         Contact = new Contact
         {
             Name = BasePage.LogonCompany.Contact,
             Mobile = BasePage.LogonCompany.ContactPhone,
             Email = BasePage.LogonCompany.ContactEmail
         },
         AssociatePNR = associatePNR,
         IsTeam = pnrContent.IsTeam,
         TripType = pnrContent.Voyage.Type
     });
 }
Пример #13
0
        public async Task <decimal?> GetPassengerFare(string passengerInfo)
        {
            PassengerType passengerType = PassengerType.Adult;
            decimal       childDisc     = 0;
            int?          subrouteId    = null;
            Guid          vehicleTripId = new Guid();

            if (passengerInfo != null)
            {
                var passInfo = passengerInfo.Split(',');
                passengerType = (PassengerType)Convert.ToInt32(passInfo[0]);
                subrouteId    = passInfo[1] != null && passInfo[1] != "Select Subroute" && passInfo[1] != "" ? Convert.ToInt32(passInfo[1]) : 0;
                vehicleTripId = Guid.Parse(passInfo[2]);
            }

            var vehicleTrip = await GetVehicleTripRegistrationDTO(vehicleTripId);

            if (vehicleTrip == null)
            {
                throw await _serviceHelper.GetExceptionAsync(ErrorConstants.VEHICLETRIP_NOT_EXIST);
            }
            if (subrouteId != 0)
            {
                var subRoute = await _subRouteRepo.GetAsync(subrouteId.GetValueOrDefault());

                var tripFare = new FareDTO();

                if (vehicleTrip.CurrentModelId != null)
                {
                    tripFare = await _fareSvc.GetFareByVehicleTrip(
                        subRoute.NameId, vehicleTrip.CurrentModelId.GetValueOrDefault());
                }
                else
                {
                    tripFare = await _fareSvc.GetFareByVehicleTrip(
                        subRoute.NameId, vehicleTrip.VehicleModelId.GetValueOrDefault());
                }


                childDisc = (decimal)tripFare.ChildrenDiscountPercentage.GetValueOrDefault() / 100;
                return(passengerType == PassengerType.Adult ? tripFare.Amount : tripFare.Amount - tripFare.Amount * childDisc);
            }

            var fare = new FareDTO();

            if (vehicleTrip.CurrentModelId != null)
            {
                fare = await _fareSvc.GetFareByVehicleTrip(
                    vehicleTrip.RouteId.GetValueOrDefault(), vehicleTrip.CurrentModelId.GetValueOrDefault());
            }
            else
            {
                fare = await _fareSvc.GetFareByVehicleTrip(
                    vehicleTrip.RouteId.GetValueOrDefault(), vehicleTrip.VehicleModelId.GetValueOrDefault());
            }

            childDisc = (decimal)fare.ChildrenDiscountPercentage.GetValueOrDefault() / 100;
            return(passengerType == PassengerType.Adult ? fare.Amount : fare.Amount - fare.Amount * childDisc);
        }
Пример #14
0
        public PassengerType GetModel()
        {
            var model = new PassengerType();

            CommonMethods.CopyObjectProperties(this, model);

            return(model);
        }
Пример #15
0
 void spawnOuterInfoWindow(int tile_id, PassengerType p_type)
 {
     curr_scan_window = Instantiate(outer_window_info);
     curr_scan_window.transform.SetParent(gameObject.transform, false);
     setGameObjectPosition(curr_scan_window, tile_id, 1.3f);
     setGameObjectScale(curr_scan_window, tile_id, 1);
     spawnInnerInfoWindow(tile_id, p_type);
 }
        public PricelistItem GetPricelistItemForSelectedTypes(TicketType ticketType, PassengerType passengerType, DateTime currentTime)
        {
            var activePricelist = GetPricelistItemsFromActivePricelist(currentTime);

            return(activePricelist.Where(item => item.TicketType == ticketType &&
                                         item.PassengerType == passengerType)
                   .FirstOrDefault());
        }
Пример #17
0
 public Passenger(string name, PassengerType type, string certificateNumber, CredentialsType certificateType, string mobilephone)
 {
     Name = name;
     Type = type;
     CertificateNumber = certificateNumber;
     CertificateType   = certificateType;
     Mobilephone       = mobilephone;
 }
Пример #18
0
        private static void prepareForLaunch(PassengerType type)
        {
            var passenger = PassengerCreator.Create(type);

            con(passenger.Speak());
            con(passenger.LaunchCommand());
            hr();
        }
Пример #19
0
        private static void prepareForLaunch(PassengerType type, bool isWearingSpaceSuit)
        {
            IPassenger passenger = ProtectedPassenger.Create(type, isWearingSpaceSuit); // Notice ProtectedPassenger also implements IPassenger.

            con(passenger.Speak());
            con(passenger.LaunchCommand());
            hr();
        }
Пример #20
0
 void initializeCounterList()
 {
     for (int i = 0; i < passenger_types.Capacity; i++)
     {
         PassengerData p_data = passenger_types[i];
         PassengerType p_type = p_data.type;
         types_counter.Add(p_type, 0);
     }
 }
Пример #21
0
 public Passenger(string name, PassengerType type, string certificateNumber, CredentialsType certificateType, string mobilephone, List <string> ticketNumbers)
 {
     Name = name;
     Type = type;
     CertificateNumber = certificateNumber;
     CertificateType   = certificateType;
     Mobilephone       = mobilephone;
     TicketNumbers     = ticketNumbers;
 }
Пример #22
0
        /// <summary>
        /// 查询机场建设费
        /// </summary>
        /// <param name="code">机型代码</param>
        public static decimal QueryAirportFee(UpperString code, PassengerType passengerType = PassengerType.Adult)
        {
            if (passengerType == PassengerType.Child)
            {
                return(0);
            }
            var airCraft = QueryAirCraft(code);

            return(null == airCraft ? 50m : airCraft.AirportFee);
        }
Пример #23
0
        public PassengerContext OfType(PassengerType passengerType)
        {
            this.AddBuilderFunction(passenger =>
            {
                passenger.PassengerType = passengerType;
                return(passenger);
            });

            return(this);
        }
Пример #24
0
 public void scanPassenger(int tile_id, PassengerType p_type)
 {
     if (scan_is_active)
     {
         //se existe janela de scan ja ativa, destroi ela antes de abrir uma nova
         // audio.Play(audio.scan_passenger, 0.3f);
         checkIfWindowAlreadyExists();
         spawnOuterInfoWindow(tile_id, p_type);
     }
 }
        public IHttpActionResult GetPassengerType(int id)
        {
            PassengerType passengerType = unitOfWork.PassengerTypes.Get(id);

            if (passengerType == null)
            {
                return(NotFound());
            }

            return(Ok(passengerType));
        }
Пример #26
0
    public PassengerType generatePassenger(List <PassengerData> passenger_types, int tile_id)
    {
        gameObject.name = "Passenger " + tile_id;
        curr_tile_id    = tile_id;
        int chosen = Random.Range(0, passenger_types.Capacity);

        p_type = passenger_types[chosen].type;
        color  = passenger_types[chosen].color;
        GetComponent <Image>().color = color;
        return(p_type);
    }
        public PassengerTypeModel CreateViewModel(PassengerType model)
        {
            PassengerTypeModel viewModel = null;

            if (model != null)
            {
                viewModel = new PassengerTypeModel();
                CommonMethods.CopyObjectProperties(model, viewModel);
            }

            return(viewModel);
        }
        public IHttpActionResult GetTicketPrice(TicketType ticketType, PassengerType passengerType)
        {
            DateTime currentTime  = DateTime.Now;
            float    regularPrice = unitOfWork.Pricelists.GetTicketPrice(ticketType, passengerType, currentTime);
            float    coefficient  = unitOfWork.PassengerTypeCoefficients.GetCoefficientForType(passengerType);

            if (regularPrice == 0 || coefficient == 0)
            {
                return(BadRequest("There is no price for this ticket"));
            }

            return(Ok(regularPrice * coefficient));
        }
Пример #29
0
        /// <summary>
        /// The public static method to create a new IPassenger of a specified type
        /// corresponding to the enumeration of PassengerType provided with the
        /// desired gravity enumeration applied.
        /// </summary>
        public static IPassenger GetPassenger(PassengerType passengerType, GravityType gravity)
        {
            switch (passengerType)
            {
            case PassengerType.Cosmonaut:
                return(GetCosmonaut(gravity));

            case PassengerType.Toy:
                return(GetToy(gravity));

            default:
                return(GetAstronaut(gravity));
            }
        }
Пример #30
0
        public static void SaveImportInfo(ReservedPnr pnrContent, PNRPair associatePNR, PriceView minPatPrice,
                                          PassengerType passengerType, PriceView maxPatPrice, out bool fdSuccess)
        {
            fdSuccess = true;
            IEnumerable <FlightView> reservedFlights = ReserveViewConstuctor.GetQueryFlightView(pnrContent.Voyage.Segments, pnrContent.Voyage.Type,
                                                                                                pnrContent.Passengers.First().Type, pnrContent.IsTeam, minPatPrice);

            if (maxPatPrice != null && maxPatPrice.Fare != 0 && pnrContent.Voyage.Type == ItineraryType.OneWay &&
                passengerType == PassengerType.Adult)
            {
                var flight = reservedFlights.First();
                if (flight.Fare != maxPatPrice.Fare && flight.Fare != 0 && (flight.BunkType == BunkType.Economic || flight.BunkType == BunkType.FirstOrBusiness))
                {
                    FareErrorLog fare = new FareErrorLog
                    {
                        Carrier     = flight.AirlineCode,
                        Departure   = flight.Departure.Code,
                        Arrival     = flight.Arrival.Code,
                        FlightDate  = flight.Departure.Time.Date,
                        Bunk        = flight.BunkCode,
                        Fare        = maxPatPrice.Fare,
                        IsTreatment = true
                    };

                    if (PNRHelper.RequireFD(reservedFlights))
                    {
                        try
                        {
                            flight.Fare = minPatPrice.Fare = PriceCheckService.CheckFd(flight.AirlineCode, flight.Departure.Code, flight.Arrival.Code,
                                                                                       flight.BunkCode, flight.Departure.Time);
                        }
                        catch (Exception ex)
                        {
                            LogService.SaveExceptionLog(ex, string.Format("{0}{1}{2}{3}({4})", flight.AirlineCode, flight.Departure.Code, flight.Arrival.Code, flight.BunkCode, flight.Departure.Time));
                            fare.IsTreatment = false;
                            fdSuccess        = false;
                        }
                    }
                    else
                    {
                        fdSuccess        = false;
                        fare.IsTreatment = true;
                        B3BEmailSender.SendFareError(fare, flight.Fare);
                    }
                    LogService.SaveFareErrorLog(fare);
                    //B3BEmailSender.SendFareError(fare, flight.Fare);
                }
            }
        }
Пример #31
0
 public Passenger(PassengerType passengerType, int numberOfPassenger)
 {
     PassengerType = passengerType;
     NumberOfPassenger = numberOfPassenger;
 }
Пример #32
0
        private static bool SaveFareComponent(int flightId, PassengerType passengerType, FareComponent fareComponent)
        {
            var db = new MySqlDatabase(DbConfiguration.ReservationDB);
            var cmd = CommandBuilder.BuildInsertFareComponentCommand(flightId, passengerType, fareComponent.Type,
                                                                     fareComponent.Amount, fareComponent.Name,
                                                                     db.Connection);

            db.ExecuteNonQuery(cmd);

            return true;
        }
Пример #33
0
        internal static MySqlCommand BuildInsertPassengerFareCommand(int flightId, PassengerType passengerType, int quantity,
            string classofServices, string fareBasisCode, string currency, decimal baseFare, decimal totalTax, decimal totalFees,
            decimal totalMarkup, decimal totalFare, MySqlConnection connection)
        {
            var cmd = new MySqlCommand("spInsertPassengerFare", connection) { CommandType = CommandType.StoredProcedure };

            cmd.Parameters.Add(new MySqlParameter("inFlightId", flightId));
            cmd.Parameters.Add(new MySqlParameter("inPassengerType", passengerType.ToString()));
            cmd.Parameters.Add(new MySqlParameter("inCount", quantity));
            cmd.Parameters.Add(new MySqlParameter("inClassesOfService", classofServices));
            cmd.Parameters.Add(new MySqlParameter("inFareBasisCodes", fareBasisCode));
            cmd.Parameters.Add(new MySqlParameter("inCurrency", currency));
            cmd.Parameters.Add(new MySqlParameter("inBaseFare", baseFare));
            cmd.Parameters.Add(new MySqlParameter("inTotalTax", totalTax));
            cmd.Parameters.Add(new MySqlParameter("inTotalFee", totalFees));
            cmd.Parameters.Add(new MySqlParameter("inTotalMarkup", totalMarkup));
            cmd.Parameters.Add(new MySqlParameter("inTotalFare", totalFare));
            cmd.Parameters.Add(new MySqlParameter("inAddedOn", DateTime.Now));
            return cmd;
        }
Пример #34
0
        internal static MySqlCommand BuildInsertFareComponentCommand(int flightId,
            PassengerType passengerType, string componentType, decimal amount, string name, MySqlConnection connection)
        {
            var cmd = new MySqlCommand("spInsertPassengerFareComponent", connection) { CommandType = CommandType.StoredProcedure };

            cmd.Parameters.Add(new MySqlParameter("inFlightId", flightId));
            cmd.Parameters.Add(new MySqlParameter("inPassengerType", passengerType.ToString()));
            cmd.Parameters.Add(new MySqlParameter("inComponentType", componentType));
            cmd.Parameters.Add(new MySqlParameter("inName", name));
            cmd.Parameters.Add(new MySqlParameter("inAmount", amount));
            cmd.Parameters.Add(new MySqlParameter("inAddedOn", DateTime.Now));
            cmd.Parameters.Add(new MySqlParameter("outComponentId", MySqlDbType.Int32));

            cmd.Parameters["outComponentId"].Direction = ParameterDirection.Output;

            return cmd;
        }