public void ImportCustomTrackings(string from, string to) { var trackingService = new TrackingNumberService(_log, _time, _dbFactory); using (var db = _dbFactory.GetRWDb()) { var fromLong = UInt64.Parse(from.Substring(15)); var toLong = UInt64.Parse(to.Substring(15)); for (var i = fromLong; i <= toLong; i++) { var tracking = from.Substring(0, 15) + i.ToString(); db.CustomTrackingNumbers.Add(new CustomTrackingNumber() { TrackingNumber = trackingService.AppendWithCheckDigit(tracking), CreateDate = _time.GetAppNowTime(), }); db.Commit(); } } }
public IShipmentApi GetShipmentProviderByType( ShipmentProviderType providerType, ILogService log, ITime time, IDbFactory dbFactory, IWeightService weightService, IList <ShipmentProviderDTO> shipmentProviderInfos, string defaultCustomType, string outputDirectory, string reserveDirectory, string templateDirectory) { var trackingNumberService = new TrackingNumberService(log, time, dbFactory); var supportedShippingMethods = new List <ShippingMethodDTO>(); using (var db = dbFactory.GetRDb()) { supportedShippingMethods = db.ShippingMethods .GetAllAsDto() .Where(m => m.ShipmentProviderType == (int)providerType && m.IsActive) .ToList(); } switch (providerType) { case ShipmentProviderType.Stamps: var stampsProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)ShipmentProviderType.Stamps); if (stampsProvider != null) { var authList = shipmentProviderInfos.Where(p => p.Type == (int)ShipmentProviderType.Stamps || p.Type == (int)ShipmentProviderType.StampsPriority) .ToList(); return(new StampsShipmentApi(stampsProvider.Id, (ShipmentProviderType)stampsProvider.Type, log, time, weightService, trackingNumberService, authList.ToList <IStampsAuthInfo>(), LabelFormat.Jpg, false, "Children Clothes", true, outputDirectory, reserveDirectory, false)); } return(null); case ShipmentProviderType.StampsPriority: var stampsPriorityProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)ShipmentProviderType.StampsPriority); if (stampsPriorityProvider != null) { var authList = shipmentProviderInfos.Where(p => p.Type == (int)ShipmentProviderType.Stamps || p.Type == (int)ShipmentProviderType.StampsPriority) .ToList(); return(new StampsShipmentApi(stampsPriorityProvider.Id, (ShipmentProviderType)stampsPriorityProvider.Type, log, time, weightService, trackingNumberService, authList.ToList <IStampsAuthInfo>(), LabelFormat.Jpg, false, "Children Clothes", true, outputDirectory, reserveDirectory, false)); } return(null); case ShipmentProviderType.Amazon: var amazonProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)ShipmentProviderType.Amazon); if (amazonProvider != null) { return(new AmazonShipmentApi(amazonProvider.Id, log, time, weightService, supportedShippingMethods, amazonProvider.Key1, amazonProvider.Key2, amazonProvider.Password, amazonProvider.StampUsername, amazonProvider.EndPointUrl, outputDirectory, reserveDirectory, templateDirectory)); } return(null); case ShipmentProviderType.Dhl: var dhlProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)ShipmentProviderType.Dhl); if (dhlProvider != null) { return(new DhlShipmentApi(dhlProvider.Id, log, time, dhlProvider.EndPointUrl, dhlProvider.UserName, dhlProvider.Password, dhlProvider.Key1, dhlProvider.Key2, outputDirectory, reserveDirectory, templateDirectory)); } return(null); case ShipmentProviderType.DhlECom: var dhlEComProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)ShipmentProviderType.DhlECom); if (dhlEComProvider != null) { return(new DhlECommerceShipmentApi(dhlEComProvider.Id, log, time, dbFactory, weightService, dhlEComProvider.UserName, dhlEComProvider.Password, dhlEComProvider.Key1, dhlEComProvider.Key2, dhlEComProvider.Key3, defaultCustomType, outputDirectory, reserveDirectory, GetFreshTokenInfo(dbFactory, ShipmentProviderType.DhlECom)?.Token, () => GetFreshTokenInfo(dbFactory, ShipmentProviderType.DhlECom), (t) => StoreNewTokenInfo(dbFactory, ShipmentProviderType.DhlECom, t))); } return(null); case ShipmentProviderType.IBC: var ibcProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)ShipmentProviderType.IBC); if (ibcProvider != null) { return(new IBCShipmentApi(ibcProvider.Id, log, time, dbFactory, weightService, PortalEnum.PA, ibcProvider.EndPointUrl, ibcProvider.UserName, ibcProvider.Password, ibcProvider.Key1, defaultCustomType, outputDirectory, reserveDirectory)); } return(null); case ShipmentProviderType.SkyPostal: var skyPostalProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)ShipmentProviderType.SkyPostal); if (skyPostalProvider != null) { return(new SkyPostalShipmentApi(skyPostalProvider.Id, log, time, dbFactory, weightService, PortalEnum.PA, skyPostalProvider.EndPointUrl, skyPostalProvider.UserName, skyPostalProvider.Password, skyPostalProvider.Key1, skyPostalProvider.Key2, skyPostalProvider.Key3, defaultCustomType, outputDirectory, reserveDirectory)); } return(null); case ShipmentProviderType.FedexSmartPost: case ShipmentProviderType.FedexOneRate: case ShipmentProviderType.FedexGeneral: var fedexProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)providerType); if (fedexProvider != null) { return(new FedexShipmentApi(PortalEnum.PA, fedexProvider.Id, log, time, weightService, fedexProvider.EndPointUrl, fedexProvider.UserName, fedexProvider.Password, fedexProvider.Key1, fedexProvider.Key2, fedexProvider.Key3, (FedexRateTypes)Int32.Parse(fedexProvider.Key4), defaultCustomType, outputDirectory, reserveDirectory, templateDirectory)); } return(null); case ShipmentProviderType.FIMS: var fimsProvider = shipmentProviderInfos.FirstOrDefault(p => p.Type == (int)providerType); if (fimsProvider != null) { return(new FIMSShipmentApi(fimsProvider.Id, log, time, fimsProvider.EndPointUrl, fimsProvider.Key1, fimsProvider.Key2, fimsProvider.Key3, //air bill number defaultCustomType, outputDirectory, reserveDirectory, templateDirectory)); } return(null); } return(null); }