Пример #1
0
        public Models.CreateViewModel GetCreateViewModel(Models.RetrieveViewModel rvm)
        {
            Models.CreateViewModel cvm = new Models.CreateViewModel();
            CDLContext db = new CDLContext();
            Bridge bridge = new Bridge();

            bridge = db.Bridge.Where(b => b.Latitude <= rvm.Latitude + 0.001 && b.Latitude >= rvm.Latitude - 0.001 &&
                                 b.Longitude <= rvm.Longitude + 0.001 && b.Longitude >= rvm.Longitude - 0.001).FirstOrDefault();

            if (bridge != null)  //found match
            {
                cvm.Latitude = bridge.Latitude;
                cvm.Longitude = bridge.Longitude;
                cvm.Address1 = bridge.Address1;
                cvm.City = bridge.City;
                cvm.State = bridge.State.PostalCode;
                cvm.PostalCode = bridge.PostalCode;

                cvm.Height = bridge.Height;
                cvm.BridgeId = bridge.BridgeId;

                if (bridge.Weights.Count >= 1)
                    cvm.WeightStraight = bridge.Weights.ElementAt(0).maxWeight;
                if (bridge.Weights.Count >= 2)
                    cvm.WeightSingle = bridge.Weights.ElementAt(1).maxWeight;
                if (bridge.Weights.Count >= 3)
                    cvm.WeightDouble = bridge.Weights.ElementAt(2).maxWeight;
            }
            else
            { cvm = null; }

            return cvm;
        }
Пример #2
0
        public List<Models.CreateViewModel> GetListViewModel(Models.RetrieveViewModel rvm)
        {
            List<Models.CreateViewModel> lcvm = new List<Models.CreateViewModel>();
            CDLContext db = new CDLContext();

            GeoCoordinate gc = new GeoCoordinate(rvm.Latitude, rvm.Longitude);

            List<Bridge> bridges = new List<Bridge>();

            bridges = db.Bridge.ToList();

            foreach (var b in bridges)
            {
                var cvm = new Models.CreateViewModel();

                cvm.Address1 = b.Address1;
                cvm.City = b.City;
                cvm.State = b.State.Name;
                cvm.PostalCode = b.PostalCode;

                cvm.Latitude = b.Latitude;
                cvm.Longitude = b.Longitude;

                var bridgeGC = new GeoCoordinate();

                bridgeGC.Latitude = cvm.Latitude;
                bridgeGC.Longitude = cvm.Longitude;

                if (b.Height == null)
                    b.Height = 0;

                cvm.Height = (float)b.Height;

                if (b.Weights.Count >= 1)
                    cvm.WeightStraight = b.Weights.ElementAt(0).maxWeight;
                if (b.Weights.Count >= 2)
                    cvm.WeightSingle = b.Weights.ElementAt(1).maxWeight;
                if (b.Weights.Count >= 3)
                    cvm.WeightDouble = b.Weights.ElementAt(2).maxWeight;

                if (bridgeGC.GetDistanceTo(gc) <= rvm.Distance * 1609.344)  // within distance passsed in keep it
                {
                    lcvm.Add(cvm);
                }
            }

            return lcvm;
        }