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; }
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; }