private static Rate GenerateEmptyRateAndCreateHeaderText(RateRouting routing, RateHeaderRow HeaderRow) { Rate emptyRate = new Rate(); emptyRate.CarrierCode = "-1"; int ratedef_id = 1; RateDefinitionColum wb = new RateDefinitionColum(); int HeaderStartIndex = 0; int HeaderRowCount = 0; if (HeaderRow.RateType == RateType.CustomerSellingRate) { HeaderStartIndex = AppConstants.CustomerSellingRateHeaderColumnStartIndex; HeaderRowCount = AppConstants.CustomerSellingRateDataColumnCount; } else if (HeaderRow.RateType == RateType.AirLineBuyingRate) { HeaderStartIndex = AppConstants.AirLineBuyingRateHeaderColumnStartIndex; HeaderRowCount = AppConstants.AirLineBuyingRateDataColumnCount; } else if (HeaderRow.RateType == RateType.AgentBuyingRate) { HeaderStartIndex = AppConstants.AgentBuyingRateHeaderColumnStartIndex; HeaderRowCount = AppConstants.AgentBuyingRateDataColumnCount; } else if (HeaderRow.RateType == RateType.IATARate) { HeaderStartIndex = AppConstants.IATARateHeaderColumnStartIndex; HeaderRowCount = AppConstants.CustomerSellingRateDataColumnCount; } bool ValueExist = false; for (int i = HeaderStartIndex; i < HeaderRowCount - 1; i++) { if (HeaderRow.RateHeaderColumns[i].Value != null && HeaderRow.RateHeaderColumns[i].Value != "") { ValueExist = true; emptyRate.RateDefinitionColums.Add(new RateDefinitionColum() { Value = HeaderRow.RateHeaderColumns[i].Value, Rate = "", ID = ratedef_id++ }); } } if (!ValueExist) { throw new Exception("At least one Rate Break shoud exist!"); } RateManagementBL bl = new RateManagementBL(); bl.GetNextRateID(); emptyRate.RateID = bl.GetNextRateID(); emptyRate.RouteID = routing.ID; return(emptyRate); }
public List <RateRouting> TranferRateRoutingsFromRaw(List <FlattenRateItem> rawList) { List <RateRouting> RoutingList = new List <RateRouting>(); PrepRouteList(RoutingList, rawList); int rateid = 1; foreach (var RoutingItem in RoutingList) { var rawItems = (from c in rawList where c.kg_lb == RoutingItem.Unit && c.dest_port == RoutingItem.Dest && c.origin_port == RoutingItem.Origin select c).ToList(); var rawItemsbyGroup = (from c in rawItems group c by c.carrier into grps select grps).SelectMany(g => g); RoutingItem.Rates = new List <Rate>(); int CurrentCarrier = 0; Rate CurrentRate = null; foreach (var r in rawItemsbyGroup) { if (CurrentCarrier != r.carrier) { Rate rate = new Rate() { RouteID = RoutingItem.ID, RateID = rateid, CarrierCode = r.carrier.ToString(), Share = r.share.ToString(), RateDefinitionColums = new List <RateDefinitionColum>() }; CurrentRate = rate; RoutingItem.Rates.Add(rate); } RateDefinitionColum RateBreak = new RateDefinitionColum(); RateBreak.Caption = r.weight_break; RateBreak.Value = r.weight_break; RateBreak.Rate = r.rate.ToString(); RateBreak.ID = r.id; CurrentRate.RateDefinitionColums.Add(RateBreak); CurrentRate.RawItemID = r.id; CurrentCarrier = r.carrier; rateid++; } } RoutingList = (from c in RoutingList where c.Rates.Count > 0 select c).ToList(); int routeid = 1; foreach (var r in RoutingList) { r.ID = routeid++; } return(RoutingList); }