コード例 #1
0
        public static CarrierRateVm GetCarrierRateInfo(int carrRateId)
        {
            CarrierRateVm carrRateVm = new CarrierRateVm();

            if (carrRateId == 0)
            {
                return(carrRateVm);
            }

            EasyFreightEntities db         = new EasyFreightEntities();
            CarrierRate         carrRateDb = db.CarrierRates.Include("CarrierRateTransits").Where(x => x.CarrierRateId == carrRateId).FirstOrDefault();

            Mapper.CreateMap <CarrierRate, CarrierRateVm>().IgnoreAllNonExisting();
            Mapper.Map(carrRateDb, carrRateVm);
            carrRateVm.TransitPortId = carrRateDb.CarrierRateTransits.Select(x => x.TransitPortId).ToArray();
            return(carrRateVm);
        }
コード例 #2
0
        /// <summary>
        /// Will set isValid to false .. will not be deleted
        /// </summary>
        /// <param name="carrRateId"></param>
        /// <returns></returns>
        public static string Delete(int carrRateId)
        {
            string isDeleted               = "true";
            EasyFreightEntities db         = new EasyFreightEntities();
            CarrierRate         carrRateDb = db.CarrierRates.Where(x => x.CarrierRateId == carrRateId).FirstOrDefault();

            carrRateDb.IsValid = false;
            try
            {
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                isDeleted = "false" + ex.Message;
            }

            return(isDeleted);
        }
コード例 #3
0
        public void TestLowestRate()
        {
            var lowestUSPS = new CarrierRate {
                Rate = 1.0, Carrier = "USPS", Service = "ParcelSelect"
            };
            var highestUSPS = new CarrierRate {
                Rate = 10.0, Carrier = "USPS", Service = "Priority"
            };
            var lowestUPS = new CarrierRate {
                Rate = 2.0, Carrier = "UPS", Service = "ParcelSelect"
            };
            var highestUPS = new CarrierRate {
                Rate = 20.0, Carrier = "UPS", Service = "Priority"
            };

            var shipment = new Shipment {
                Rates = new List <CarrierRate> {
                    highestUSPS, lowestUSPS, highestUPS, lowestUPS
                }
            };

            var rate = shipment.LowestRate();

            Assert.AreEqual(rate, lowestUSPS);

            rate = shipment.LowestRate(new[] { "UPS" });
            Assert.AreEqual(rate, lowestUPS);

            rate = shipment.LowestRate(includeServices: new[] { "Priority" });
            Assert.AreEqual(rate, highestUSPS);

            rate = shipment.LowestRate(excludeCarriers: new[] { "USPS" });
            Assert.AreEqual(rate, lowestUPS);

            rate = shipment.LowestRate(excludeServices: new[] { "ParcelSelect" });
            Assert.AreEqual(rate, highestUSPS);

            rate = shipment.LowestRate(new[] { "FedEx" });
            Assert.IsNull(rate);
        }
コード例 #4
0
        public static string AddEditCarrierRate(CarrierRateVm carrRateVm)
        {
            string isSaved      = "true";
            bool   isSameActive = CheckIfActiveRate(carrRateVm);

            if (isSameActive)
            {
                return("false. Another rate is active with same data");
            }

            EasyFreightEntities db = new EasyFreightEntities();
            CarrierRate         carrRateDb;
            int carrRateVmId = carrRateVm.CarrierRateId;

            if (carrRateVmId == 0)
            {
                carrRateDb = new CarrierRate();
            }
            else
            {
                carrRateDb = db.CarrierRates.Include("CarrierRateTransits").Where(x => x.CarrierRateId == carrRateVmId).FirstOrDefault();
            }

            Mapper.CreateMap <CarrierRateVm, CarrierRate>().IgnoreAllNonExisting();
            Mapper.Map(carrRateVm, carrRateDb);

            var transitList = carrRateDb.CarrierRateTransits.ToList();

            //Delete all transit and insert it again
            if (carrRateDb.CarrierRateTransits.Count > 0)
            {
                foreach (var item in transitList)
                {
                    carrRateDb.CarrierRateTransits.Remove(item);
                }
            }

            if (carrRateVm.TransitPortId != null)
            {
                CarrierRateTransit carrTransit;
                foreach (var item in carrRateVm.TransitPortId)
                {
                    carrTransit = new CarrierRateTransit();
                    carrTransit.CarrierRateId = carrRateVm.CarrierRateId;
                    carrTransit.TransitPortId = item;
                    carrRateDb.CarrierRateTransits.Add(carrTransit);
                }
            }

            if (carrRateVmId == 0)
            {
                db.CarrierRates.Add(carrRateDb);
            }

            try
            {
                db.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                isSaved = "false " + e.Message;
            }
            catch (Exception e)
            {
                isSaved = "false " + e.Message;
            }

            return(isSaved);
        }