예제 #1
0
    public void BindSurivorToBunk(Survivor s)
    {
        Bunk bunk = bunks_available.Pop();

        s.gameObject.GetComponent <SurvivorHolder>().bunk_occupied = bunk;
        bunks_occupied.Push(bunk);
    }
예제 #2
0
        PromotionBunk loadPromotionBunk(Bunk bunk, DbDataReader reader)
        {
            PromotionBunk result = null;
            var           id     = reader.GetGuid(1);

            if (null == bunk || id != bunk.Id)
            {
                result = new PromotionBunk(reader.GetGuid(1))
                {
                    AirlineCode     = reader.IsDBNull(2) ? string.Empty : reader.GetString(2),
                    FlightBeginDate = reader.GetDateTime(3),
                    ETDZDate        = reader.GetDateTime(5),
                    Code            = reader.GetString(6),
                    Valid           = reader.GetBoolean(9),
                    Description     = reader.IsDBNull(12) ? string.Empty : reader.GetString(12),
                    ModifyTime      = reader.GetDateTime(13)
                };
                if (!reader.IsDBNull(4))
                {
                    result.FlightEndDate = reader.GetDateTime(4);
                }
            }
            else
            {
                result = bunk as PromotionBunk;
            }
            var extendedBunk = loadWithoutDiscountExtendedBunk(reader);

            if (!string.IsNullOrWhiteSpace(extendedBunk))
            {
                result.AddExtended(extendedBunk);
            }
            return(result);
        }
예제 #3
0
        TeamBunk loadTeamBunk(Bunk bunk, DbDataReader reader)
        {
            TeamBunk result = null;
            var      id     = reader.GetGuid(1);

            if (null == bunk || id != bunk.Id)
            {
                result = new TeamBunk(reader.GetGuid(1))
                {
                    AirlineCode     = reader.IsDBNull(2) ? string.Empty : reader.GetString(2),
                    FlightBeginDate = reader.GetDateTime(3),
                    ETDZDate        = reader.GetDateTime(5),
                    Code            = reader.GetString(6),
                    Valid           = reader.GetBoolean(9),
                    ModifyTime      = reader.GetDateTime(13)
                };
                if (!reader.IsDBNull(4))
                {
                    result.FlightEndDate = reader.GetDateTime(4);
                }
            }
            else
            {
                result = bunk as TeamBunk;
            }
            return(result);
        }
예제 #4
0
        public static void AddBunk(BunkView bunkView, string account)
        {
            var bunk = Bunk.CreateBunk(bunkView);

            BunkCollection.Instance.Add(bunk.Id, bunk);
            saveAddLog("舱位", bunk.ToString(), bunk.Id.ToString(), account);
        }
예제 #5
0
        public static string GetGeneralBunkRegulation(Bunk bunk)
        {
            var           pattern           = new Regex("^[a-zA-Z\\d/]+$");
            var           refundDetail      = ChinaPay.B3B.Service.FoundationService.QueryDetailList(bunk.Owner.Airline, bunk.Code).Where(item => pattern.IsMatch(item.Bunks));
            StringBuilder result            = new StringBuilder();
            string        refundRegulation  = string.Empty;
            string        changeRegulation  = string.Empty;
            string        endorseRegulation = string.Empty;

            foreach (var item in refundDetail)
            {
                refundRegulation  += ("航班起飞前:" + item.ScrapBefore + ";航班起飞后:" + item.ScrapAfter).Replace("<br/>", "").Replace("\r", "").Replace("\n", "").Replace("\t", "");
                changeRegulation  += ("航班起飞前:" + item.ChangeBefore + ";航班起飞后:" + item.ChangeAfter).Replace("<br/>", "").Replace("\r", "").Replace("\n", "").Replace("\t", "");
                endorseRegulation += item.Endorse.Replace("<br/>", "").Replace("\r", "").Replace("\n", "").Replace("\t", "");
            }
            if (string.IsNullOrWhiteSpace(refundRegulation))
            {
                refundRegulation = "以航司具体规定为准";
            }
            if (string.IsNullOrWhiteSpace(changeRegulation))
            {
                changeRegulation = "以航司具体规定为准";
            }
            result.AppendFormat("退票规定:{0} ", refundRegulation);
            result.AppendFormat("更改规定:{0} ", changeRegulation);
            result.AppendFormat("签转规定:{0} ", endorseRegulation);
            return(result.ToString());
        }
예제 #6
0
 public int Update(Bunk value)
 {
     using (var dbOperator = new DbOperator(Provider, ConnectionString))
     {
         var sql = prepareDelete(dbOperator, value) + ";" + prepareInsert(dbOperator, value);
         return(dbOperator.ExecuteNonQuery(sql));
     }
 }
예제 #7
0
 private static BunkFilterInfo GetBunkFilters(Bunk bunk)
 {
     return(new BunkFilterInfo {
         Code = bunk.Code,
         Discount = (bunk is GeneralBunk) ? ((GeneralBunk)bunk).Discount : 0,
         Type = bunk.Type
     });
 }
예제 #8
0
 // Start is called before the first frame update
 void Start()
 {
     survivor         = gameObject.GetComponent <Survivor>();
     bunk_occupied    = null;
     name_text.text   = survivor.name;
     health_text.text = survivor.health.ToString();
     combat_text.text = survivor.combat_score.ToString();
 }
예제 #9
0
 public int Delete(Bunk value)
 {
     using (var dbOperator = new DbOperator(Provider, ConnectionString))
     {
         var deleteSql = prepareDelete(dbOperator, value);
         return(dbOperator.ExecuteNonQuery(deleteSql));
     }
 }
예제 #10
0
        public Bunk QueryBunkNew(Guid id)
        {
            string sql = "SELECT T1.[Type],T1.[Id],T1.[Airline],T1.[FlightBeginDate],T1.[FlightEndDate],T1.[ETDZDate],T1.[Code]," +
                         "T1.[Discount],T1.[RefundRegulation],T1.[Valid],T1.[Departure],T1.[Arrival],T1.[Description],T1.ModifyTime," +
                         "T2.[Code],T2.[Discount],T1.[ChangeRegulation],T1.[EndorseRegulation],T1.[Remarks],T1.[VoyageType],T1.[TravelType],T1.[PassengerType]" +
                         "FROM [T_Bunk] T1 LEFT JOIN [T_ExtendedBunk] T2 ON T1.ID=T2.BunkId WHERE T1.[Id]=@Id";
            Bunk bunk = null;

            using (var dbOperator = new DbOperator(Provider, ConnectionString))
            {
                dbOperator.AddParameter("Id", id);
                using (var reader = dbOperator.ExecuteReader(sql))
                {
                    while (reader.Read())
                    {
                        var bunkType = (BunkType)reader.GetInt32(0);
                        switch (bunkType)
                        {
                        case BunkType.Economic:
                            bunk = loadEconomicBunk(bunk, reader);
                            break;

                        case BunkType.FirstOrBusiness:
                            bunk = loadFirstBusinessBunk(bunk, reader);
                            break;

                        case BunkType.Promotion:
                            bunk = loadPromotionBunk(bunk, reader);
                            break;

                        case BunkType.Production:
                            bunk = loadProductionBunk(bunk, reader);
                            break;

                        case BunkType.Transfer:
                            bunk = loadTransferBunk(bunk, reader);
                            break;

                        case BunkType.Free:
                            bunk = loadFreeBunk(bunk, reader);
                            break;

                        case BunkType.Team:
                            bunk = loadTeamBunk(bunk, reader);
                            break;
                        }
                        bunk.VoyageType        = (VoyageTypeValue)reader.GetByte(19);
                        bunk.TravelType        = (TravelTypeValue)reader.GetByte(20);
                        bunk.PassengerType     = (PassengerTypeValue)reader.GetByte(21);
                        bunk.RefundRegulation  = reader.IsDBNull(8) ? string.Empty : reader.GetString(8);
                        bunk.ChangeRegulation  = reader.IsDBNull(16) ? string.Empty : reader.GetString(16);
                        bunk.EndorseRegulation = reader.IsDBNull(17) ? string.Empty : reader.GetString(17);
                        bunk.Remarks           = reader.IsDBNull(18) ? string.Empty : reader.GetString(18);
                    }
                }
            }
            return(bunk);
        }
예제 #11
0
        public static void UpdateBunk(Guid id, BunkView bunkView, string account)
        {
            var originalBunk = QueryBunkNew(id);

            if (null == originalBunk)
            {
                throw new ChinaPay.Core.CustomException("原舱位不存在");
            }
            var originalContent = originalBunk.ToString();
            var bunk            = Bunk.CreateBunk(id, bunkView);

            BunkCollection.Instance.Update(bunk.Id, bunk);
            saveUpdateLog("舱位", originalContent, bunk.ToString(), bunk.Id.ToString(), account);
        }
예제 #12
0
 public int Insert(Bunk value)
 {
     using (var dbOperator = new DbOperator(Provider, ConnectionString))
     {
         var insertSql = prepareInsert(dbOperator, value);
         if (string.IsNullOrWhiteSpace(insertSql))
         {
             return(-1);
         }
         else
         {
             return(dbOperator.ExecuteNonQuery(insertSql));
         }
     }
 }
예제 #13
0
        /// <summary>
        /// 新增宿舍类型信息
        /// </summary>
        /// <param name="webModel">编辑页视图模型</param>
        /// <param name="context">数据库上下文对象</param>
        /// <returns></returns>
        public static async Task <Bunk> InsertAsync(BunkEditViewModel webModel, ApplicationDbContext context)
        {
            var model = new Bunk
            {
                IsEnabled   = (int)webModel.IsEnabled == 1,
                ImageSrc    = webModel.ImageSrc,
                Name        = webModel.Name,
                Number      = webModel.Number,
                Toward      = webModel.Toward.ToString(),
                CreatedId   = CurrentUser.UserId,
                CreatedBy   = CurrentUser.UserOID,
                CreatedName = CurrentUser.UserName
            };
            await context.Bunk.AddAsync(model);

            return(model);
        }
예제 #14
0
        FirstBusinessBunk loadFirstBusinessBunk(Bunk bunk, DbDataReader reader)
        {
            FirstBusinessBunk result = null;
            var id = reader.GetGuid(1);

            if (null == bunk || id != bunk.Id)
            {
                result = new FirstBusinessBunk(reader.GetGuid(1))
                {
                    AirlineCode     = reader.IsDBNull(2) ? string.Empty : reader.GetString(2),
                    FlightBeginDate = reader.GetDateTime(3),
                    ETDZDate        = reader.GetDateTime(5),
                    Code            = reader.GetString(6),
                    Discount        = reader.GetDecimal(7),
                    Valid           = reader.GetBoolean(9),
                    DepartureCode   = reader.IsDBNull(10) ? string.Empty : reader.GetString(10),
                    ArrivalCode     = reader.IsDBNull(11) ? string.Empty : reader.GetString(11),
                    Description     = reader.IsDBNull(12) ? string.Empty : reader.GetString(12),
                    ModifyTime      = reader.GetDateTime(13)
                };
                if (!reader.IsDBNull(4))
                {
                    result.FlightEndDate = reader.GetDateTime(4);
                }
            }
            else
            {
                result = bunk as FirstBusinessBunk;
            }
            var extendedBunk = loadExtendedBunk(reader);

            if (extendedBunk != null)
            {
                result.AddExtended(extendedBunk);
            }
            return(result);
        }
예제 #15
0
        /// <summary>
        /// 航班查询
        /// 往返回程
        /// </summary>
        /// <param name="departure">出发机场 三字码</param>
        /// <param name="arrival">到达机场 三字码</param>
        /// <param name="flightDate">航班日期</param>
        /// <param name="firstTripAirline">去程航空公司 二字码</param>
        /// <param name="firstTripFlightArrivalTime">去程航班降落时间</param>
        public static IEnumerable <Flight> QueryRTSecondTipFlights(UpperString departure, UpperString arrival, DateTime flightDate, UpperString firstTripAirline, DateTime firstTripFlightArrivalTime, Common.Enums.PolicyType firstTripPolicyType, Bunk firstTripBunk, Guid oemId)
        {
            var flightBeginTime = Time.Min;

            if (flightDate.Date <= firstTripFlightArrivalTime.Date)
            {
                var tempFlightBeginTime = firstTripFlightArrivalTime.AddHours(2);
                if (tempFlightBeginTime.Date > flightDate.Date)
                {
                    return(new List <Flight>());
                }
                flightBeginTime = new Time(tempFlightBeginTime);
            }
            var originalFlightDatas = FlightDatasCenter.GetFlights(departure.Value, arrival.Value, flightDate, firstTripAirline.Value, flightBeginTime, oemId);

            return(FlightProcessor.Execute(originalFlightDatas, new RTSecondTripBunkFilter(firstTripPolicyType, firstTripBunk)));
        }
예제 #16
0
 string prepareDelete(DbOperator dbOperator, Bunk value)
 {
     dbOperator.AddParameter("DELETEBUNKID", value.Id);
     return("DELETE FROM [T_ExtendedBunk] WHERE [BUNKID]=@DELETEBUNKID;DELETE FROM [T_Bunk] WHERE [ID]=@DELETEBUNKID;");
 }
예제 #17
0
        string prepareInsert(DbOperator dbOperator, Bunk value)
        {
            string bunkSql = "INSERT INTO [T_Bunk]([Id],[Airline],[FlightBeginDate],[FlightEndDate],[ETDZDate],[Code],[Discount],[Valid],[Departure]," +
                             "[Arrival],[Type],[Description],ModifyTime,[VoyageType],[TravelType],[PassengerType],[RefundRegulation],[ChangeRegulation],[EndorseRegulation],[Remarks]) " +
                             "VALUES(@ID,@AIRLINE,@FLIGHTBEGINDATE,@FLIGHTENDDATE,@ETDZDATE,@CODE,@DISCOUNT,@VALID,@DEPARTURE,@ARRIVAL,@TYPE,@DESCRIPTION," +
                             "@ModifyTime,@VoyageType,@TravelType,@PassengerType,@RefundRegulation,@ChangeRegulation,@EndorseRegulation,@Remarks)";
            string extendedBunkInsertSql   = "INSERT INTO [T_ExtendedBunk] ([BunkId],[Code],[Discount])";
            string extendedBunkValueFormat = " SELECT @ID,@CODE{0},@DISCOUNT{0} UNION ALL";

            var sbSql = new StringBuilder(bunkSql);

            dbOperator.AddParameter("ID", value.Id);
            dbOperator.AddParameter("VoyageType", value.VoyageType);
            dbOperator.AddParameter("TravelType", value.TravelType);
            dbOperator.AddParameter("PassengerType", value.PassengerType);
            dbOperator.AddParameter("RefundRegulation", value.RefundRegulation);
            dbOperator.AddParameter("ChangeRegulation", value.ChangeRegulation);
            dbOperator.AddParameter("EndorseRegulation", value.EndorseRegulation);
            if (string.IsNullOrEmpty(value.Remarks))
            {
                dbOperator.AddParameter("Remarks", DBNull.Value);
            }
            else
            {
                dbOperator.AddParameter("Remarks", value.Remarks);
            }
            if (value.AirlineCode.IsNullOrEmpty())
            {
                dbOperator.AddParameter("AIRLINE", DBNull.Value);
            }
            else
            {
                dbOperator.AddParameter("AIRLINE", value.AirlineCode.Value);
            }
            dbOperator.AddParameter("FLIGHTBEGINDATE", value.FlightBeginDate);
            if (value.FlightEndDate.HasValue)
            {
                dbOperator.AddParameter("FLIGHTENDDATE", value.FlightEndDate.Value);
            }
            else
            {
                dbOperator.AddParameter("FLIGHTENDDATE", DBNull.Value);
            }
            dbOperator.AddParameter("ETDZDATE", value.ETDZDate);
            dbOperator.AddParameter("CODE", value.Code.Value);
            dbOperator.AddParameter("VALID", value.Valid);

            if (value is GeneralBunk)
            {
                var generalBunk = value as GeneralBunk;
                if (generalBunk.DepartureCode.IsNullOrEmpty())
                {
                    dbOperator.AddParameter("DEPARTURE", DBNull.Value);
                }
                else
                {
                    dbOperator.AddParameter("DEPARTURE", generalBunk.DepartureCode.Value);
                }
                if (generalBunk.ArrivalCode.IsNullOrEmpty())
                {
                    dbOperator.AddParameter("ARRIVAL", DBNull.Value);
                }
                else
                {
                    dbOperator.AddParameter("ARRIVAL", generalBunk.ArrivalCode.Value);
                }
                dbOperator.AddParameter("DISCOUNT", generalBunk.Discount);
                if (value is EconomicBunk)
                {
                    dbOperator.AddParameter("DESCRIPTION", DBNull.Value);
                }
                else if (value is FirstBusinessBunk)
                {
                    dbOperator.AddParameter("DESCRIPTION", (value as FirstBusinessBunk).Description ?? string.Empty);
                }
                if (generalBunk.Extended.Any())
                {
                    sbSql.Append(extendedBunkInsertSql);
                    int index = 0;
                    foreach (var item in generalBunk.Extended)
                    {
                        sbSql.AppendFormat(extendedBunkValueFormat, index);
                        dbOperator.AddParameter("CODE" + index.ToString(), item.Code.Value);
                        dbOperator.AddParameter("DISCOUNT" + index.ToString(), item.Discount);
                        index++;
                    }
                    sbSql.Remove(sbSql.Length - 10, 10);
                }
            }
            else if (value is PromotionBunk)
            {
                var promotionBunk = value as PromotionBunk;
                dbOperator.AddParameter("DEPARTURE", DBNull.Value);
                dbOperator.AddParameter("ARRIVAL", DBNull.Value);
                dbOperator.AddParameter("DISCOUNT", DBNull.Value);
                dbOperator.AddParameter("DESCRIPTION", promotionBunk.Description ?? string.Empty);
                if (promotionBunk.Extended.Any())
                {
                    sbSql.Append(extendedBunkInsertSql);
                    int index = 0;
                    foreach (var item in promotionBunk.Extended)
                    {
                        sbSql.AppendFormat(extendedBunkValueFormat, index);
                        dbOperator.AddParameter("CODE" + index.ToString(), item);
                        dbOperator.AddParameter("DISCOUNT" + index.ToString(), 0);
                        index++;
                    }
                    sbSql.Remove(sbSql.Length - 10, 10);
                }
            }
            else if (value is ProductionBunk)
            {
                dbOperator.AddParameter("DEPARTURE", DBNull.Value);
                dbOperator.AddParameter("ARRIVAL", DBNull.Value);
                dbOperator.AddParameter("DISCOUNT", DBNull.Value);
                dbOperator.AddParameter("DESCRIPTION", DBNull.Value);
            }
            else if (value is TransferBunk)
            {
                dbOperator.AddParameter("DEPARTURE", DBNull.Value);
                dbOperator.AddParameter("ARRIVAL", DBNull.Value);
                dbOperator.AddParameter("DISCOUNT", DBNull.Value);
                dbOperator.AddParameter("DESCRIPTION", DBNull.Value);
            }
            else if (value is FreeBunk)
            {
                dbOperator.AddParameter("DEPARTURE", DBNull.Value);
                dbOperator.AddParameter("ARRIVAL", DBNull.Value);
                dbOperator.AddParameter("DISCOUNT", DBNull.Value);
                dbOperator.AddParameter("DESCRIPTION", (value as FreeBunk).Description ?? string.Empty);
            }
            else if (value is TeamBunk)
            {
                dbOperator.AddParameter("DEPARTURE", DBNull.Value);
                dbOperator.AddParameter("ARRIVAL", DBNull.Value);
                dbOperator.AddParameter("DISCOUNT", DBNull.Value);
                dbOperator.AddParameter("DESCRIPTION", DBNull.Value);
            }
            else
            {
                return(null);
            }
            dbOperator.AddParameter("TYPE", (int)value.Type);
            dbOperator.AddParameter("ModifyTime", value.ModifyTime);
            return(sbSql.ToString());
        }
예제 #18
0
        private BunkInfo constructBunkView(Bunk bunk, MatchedPolicy policy, ChinaPay.B3B.Service.Foundation.Domain.BasicPrice price)
        {
            var result = new BunkInfo()
            {
                Policy = new ChinaPay.B3B.DataTransferObject.FlightQuery.PolicyView()
                {
                    Id               = policy.OriginalPolicy == null ? Guid.Empty : policy.OriginalPolicy.Id,
                    Owner            = policy.Provider,
                    Type             = policy.PolicyType,
                    CustomerResource = false
                }
            };

            result.ShowPrice = policy.ParValue != 0;
            if (policy.PolicyType == PolicyType.Special)
            {
                // 特殊票是单独处理的
                var specialPolicy = policy.OriginalPolicy as DataTransferObject.Policy.SpecialPolicyInfo;
                result.Code        = bunk == null ? string.Empty : bunk.Code;
                result.SeatCount   = bunk == null ? specialPolicy.ResourceAmount : bunk.SeatCount; // 剩余位置数 从政策上获取
                result.Fare        = policy.ParValue.TrimInvaidZero();                             // 票面价从政策上取
                result.Rebate      = string.Empty;                                                 // 无返点
                result.Amount      = policy.SettleAmount;
                result.Description = "特殊票";
                result.BunkType    = bunk == null ? new BunkType?() : bunk.Type;
                switch (specialPolicy.Type)
                {
                case SpecialProductType.Singleness:
                case SpecialProductType.Disperse:
                    result.Policy.CustomerResource = true;
                    break;

                case SpecialProductType.CostFree:
                    result.Policy.CustomerResource = !specialPolicy.SynBlackScreen;
                    result.ShowPrice = true;
                    break;
                }
            }
            else
            {
                result.Code      = bunk.Code;
                result.SeatCount = bunk.SeatCount;
                result.Fare      = policy.ParValue.TrimInvaidZero();
                result.Rebate    = policy.Commission.TrimInvaidZero();
                result.Amount    = policy.SettleAmount;

                if (policy.PolicyType == PolicyType.Bargain && bunk is Service.FlightQuery.Domain.GeneralBunk)
                {
                    result.Description = "特价票";
                }
                else
                {
                    if (bunk is Service.FlightQuery.Domain.FirstOrBusinessBunk)
                    {
                        result.Description = (bunk as Service.FlightQuery.Domain.FirstOrBusinessBunk).Description;
                    }
                    else if (bunk is Service.FlightQuery.Domain.EconomicBunk)
                    {
                        result.Description = "经济舱";
                    }
                    else if (bunk is Service.FlightQuery.Domain.PromotionBunk)
                    {
                        result.Description = (bunk as Service.FlightQuery.Domain.PromotionBunk).Description;
                    }
                    else if (bunk is Service.FlightQuery.Domain.ProductionBunk)
                    {
                        result.Description = "往返产品";
                    }
                    else
                    {
                        result.Description = string.Empty;
                    }
                }
                result.BunkType = bunk.Type;
            }
            if (bunk != null && bunk is Service.FlightQuery.Domain.GeneralBunk)
            {
                result.Discount = ((bunk as Service.FlightQuery.Domain.GeneralBunk).Discount).TrimInvaidZero();
                if (policy.PolicyType == PolicyType.Special)
                {
                    result.RenderDiscount = price != null && policy.ParValue != 0 ? Math.Round(policy.ParValue / price.Price, 2).ToString() : string.Empty;
                }
                else
                {
                    result.RenderDiscount = ((bunk as Service.FlightQuery.Domain.GeneralBunk).Discount).TrimInvaidZero();
                }
            }
            else
            {
                result.RenderDiscount = result.Discount = string.Empty;
            }
            // 退改签规定
            // 普通政策时,获取基础数据中普通舱位的退改签信息
            // 其他情况,获取政策上的退改签信息
            if ((policy.PolicyType == PolicyType.Normal || policy.PolicyType == PolicyType.NormalDefault || policy.PolicyType == PolicyType.OwnerDefault) && bunk is Service.FlightQuery.Domain.GeneralBunk)
            {
                result.EI = GetGeneralBunkRegulation(bunk);
            }
            else
            {
                if (policy.OriginalPolicy is DataTransferObject.Policy.IHasRegulation)
                {
                    var regulation = policy.OriginalPolicy as DataTransferObject.Policy.IHasRegulation;
                    result.EI = GetRegulation(regulation);
                }
                else
                {
                    result.EI = string.Empty;
                }
            }
            result.SuportChild = bunk != null && bunk.SuportChild;

            return(result);
        }
예제 #19
0
        public IEnumerable <Bunk> QueryBunkListView(DataTransferObject.Foundation.BunkQueryCondition condition, Core.Pagination pagination)
        {
            var result = new List <Bunk>();

            using (var dbOperator = new DbOperator(Provider, ConnectionString))
            {
                if (!string.IsNullOrWhiteSpace(condition.Airline))
                {
                    dbOperator.AddParameter("@iAirline", condition.Airline.Trim());
                }
                if (!string.IsNullOrWhiteSpace(condition.Departure))
                {
                    dbOperator.AddParameter("@iDeparture", condition.Departure.Trim());
                }
                if (!string.IsNullOrWhiteSpace(condition.Arrival))
                {
                    dbOperator.AddParameter("@iArrival", condition.Arrival.Trim());
                }
                if (!string.IsNullOrWhiteSpace(condition.BunkCode))
                {
                    dbOperator.AddParameter("@iBunkCode", condition.BunkCode.Trim());
                }
                if (condition.BunkType.HasValue)
                {
                    dbOperator.AddParameter("@iBunkType", (int)condition.BunkType);
                }
                if (condition.VoyageType.HasValue)
                {
                    dbOperator.AddParameter("@iVoyageType", (byte)condition.VoyageType);
                }
                if (condition.FlightBeginDate.HasValue)
                {
                    dbOperator.AddParameter("@iFlightBeginDate", condition.FlightBeginDate.Value.Date);
                }
                if (condition.FlightEndDate.HasValue)
                {
                    dbOperator.AddParameter("@iFlightEndDate", condition.FlightEndDate.Value.Date);
                }
                if (condition.Status.HasValue)
                {
                    dbOperator.AddParameter("@iStatus", condition.Status);
                }
                if (pagination != null)
                {
                    dbOperator.AddParameter("@iPageSize", pagination.PageSize);
                    dbOperator.AddParameter("@iPageIndex", pagination.PageIndex);
                }
                System.Data.Common.DbParameter totalCount = dbOperator.AddParameter("@oTotalCount");
                totalCount.DbType    = System.Data.DbType.Int32;
                totalCount.Direction = System.Data.ParameterDirection.Output;
                using (System.Data.Common.DbDataReader reader = dbOperator.ExecuteReader("dbo.P_QueryBunks", System.Data.CommandType.StoredProcedure))
                {
                    Guid?previousId = null;
                    Bunk bunk       = null;
                    while (reader.Read())
                    {
                        var currentId = reader.GetGuid(1);
                        if (bunk == null || previousId.Value != currentId)
                        {
                            bunk = null;
                        }
                        var bunkType = (BunkType)reader.GetInt32(0);
                        switch (bunkType)
                        {
                        case BunkType.Economic:
                            bunk = loadEconomicBunk(bunk, reader);
                            break;

                        case BunkType.FirstOrBusiness:
                            bunk = loadFirstBusinessBunk(bunk, reader);
                            break;

                        case BunkType.Promotion:
                            bunk = loadPromotionBunk(bunk, reader);
                            break;

                        case BunkType.Production:
                            bunk = loadProductionBunk(bunk, reader);
                            break;

                        case BunkType.Transfer:
                            bunk = loadTransferBunk(bunk, reader);
                            break;

                        case BunkType.Free:
                            bunk = loadFreeBunk(bunk, reader);
                            break;

                        case BunkType.Team:
                            bunk = loadTeamBunk(bunk, reader);
                            break;
                        }
                        bunk.VoyageType        = (VoyageTypeValue)reader.GetByte(19);
                        bunk.TravelType        = (TravelTypeValue)reader.GetByte(20);
                        bunk.PassengerType     = (PassengerTypeValue)reader.GetByte(21);
                        bunk.RefundRegulation  = reader.IsDBNull(8) ? string.Empty : reader.GetString(8);
                        bunk.ChangeRegulation  = reader.IsDBNull(16) ? string.Empty : reader.GetString(16);
                        bunk.EndorseRegulation = reader.IsDBNull(17) ? string.Empty : reader.GetString(17);
                        bunk.Remarks           = reader.IsDBNull(18) ? string.Empty : reader.GetString(18);
                        if (!previousId.HasValue || previousId.Value != currentId)
                        {
                            result.Add(bunk);
                            previousId = currentId;
                        }
                    }
                }
                if (pagination.GetRowCount)
                {
                    pagination.RowCount = (int)totalCount.Value;
                }
            }
            return(result);
        }
예제 #20
0
 //Use AutoMapper to Map
 public static BunkViewModel Map(Bunk source)
 {
     return(Mapper.Map <Bunk, BunkViewModel>(source));
 }
예제 #21
0
        public IEnumerable <KeyValuePair <Guid, Bunk> > Query()
        {
            string sql = "SELECT T1.[Type],T1.[Id],T1.[Airline],T1.[FlightBeginDate],T1.[FlightEndDate],T1.[ETDZDate],T1.[Code]," +
                         "T1.[Discount],T1.[RefundRegulation],T1.[Valid],T1.[Departure],T1.[Arrival],T1.[Description],T1.ModifyTime," +
                         "T2.[Code],T2.[Discount],T1.[ChangeRegulation],T1.[EndorseRegulation],T1.[Remarks],T1.[VoyageType],T1.[TravelType],T1.[PassengerType]" +
                         "FROM [T_Bunk] T1 LEFT JOIN [T_ExtendedBunk] T2 ON T1.ID=T2.BunkId ORDER BY T1.[Id]";
            var result = new List <KeyValuePair <Guid, Bunk> >();

            using (var dbOperator = new DbOperator(Provider, ConnectionString))
            {
                using (var reader = dbOperator.ExecuteReader(sql))
                {
                    Guid?previousId = null;
                    Bunk bunk       = null;
                    while (reader.Read())
                    {
                        var currentId = reader.GetGuid(1);
                        if (bunk == null || previousId.Value != currentId)
                        {
                            bunk = null;
                        }
                        var bunkType = (BunkType)reader.GetInt32(0);
                        switch (bunkType)
                        {
                        case BunkType.Economic:
                            bunk = loadEconomicBunk(bunk, reader);
                            break;

                        case BunkType.FirstOrBusiness:
                            bunk = loadFirstBusinessBunk(bunk, reader);
                            break;

                        case BunkType.Promotion:
                            bunk = loadPromotionBunk(bunk, reader);
                            break;

                        case BunkType.Production:
                            bunk = loadProductionBunk(bunk, reader);
                            break;

                        case BunkType.Transfer:
                            bunk = loadTransferBunk(bunk, reader);
                            break;

                        case BunkType.Free:
                            bunk = loadFreeBunk(bunk, reader);
                            break;

                        case BunkType.Team:
                            bunk = loadTeamBunk(bunk, reader);
                            break;
                        }
                        bunk.VoyageType        = (VoyageTypeValue)reader.GetByte(19);
                        bunk.TravelType        = (TravelTypeValue)reader.GetByte(20);
                        bunk.PassengerType     = (PassengerTypeValue)reader.GetByte(21);
                        bunk.RefundRegulation  = reader.IsDBNull(8) ? string.Empty : reader.GetString(8);
                        bunk.ChangeRegulation  = reader.IsDBNull(16) ? string.Empty : reader.GetString(16);
                        bunk.EndorseRegulation = reader.IsDBNull(17) ? string.Empty : reader.GetString(17);
                        bunk.Remarks           = reader.IsDBNull(18) ? string.Empty : reader.GetString(18);
                        if (!previousId.HasValue || previousId.Value != currentId)
                        {
                            result.Add(new KeyValuePair <Guid, Bunk>(bunk.Id, bunk));
                            previousId = currentId;
                        }
                    }
                }
            }
            return(result);
        }