public IHttpActionResult SearchDrugstore(SearchModel data) { List <ProductSearchModel> lista = new List <ProductSearchModel>(); using (farmaciacEntities db = new farmaciacEntities()) { var Farmacia = db.farmacia.FirstOrDefault(); db.sucursal_producto.Where(x => x.ID_SUCURSAL == data.idSucursal && x.producto.PRODUCTO1.ToLower().Contains(data.producto.ToLower())).ToList().ForEach(x => { lista.Add(new ProductSearchModel { idSucursalProducto = x.ID_SUCURSAL_PRODUCTO, idSucursal = x.ID_SUCURSAL, producto = x.producto.PRODUCTO1, precio = Convert.ToDecimal(x.PRECIO), sucursal = x.sucursal.SUCURSAL1, latitud = x.sucursal.LATITUD, longitud = x.sucursal.LONGITUD, direccion = x.sucursal.DIRECCION, idFarmacia = Convert.ToInt32(Farmacia.ID_FARMACIA) }); }); return(Ok(lista.OrderBy(x => x.precio))); } }
public IHttpActionResult NearbyDrugstore(SearchModel data) { double lonC = data.longitud; double latC = data.latitud; using (farmaciacEntities db = new farmaciacEntities()) { GeoCoordinate distanceFrom = new GeoCoordinate(); GeoCoordinate distanceTo = new GeoCoordinate(); distanceFrom.Latitude = latC; distanceFrom.Longitude = lonC; List <ProductSearchModel> lista = new List <ProductSearchModel>(); var Farmacia = db.farmacia.FirstOrDefault(); db.sucursal.ToList().ForEach(x => { double lat = Convert.ToDouble(x.LATITUD, CultureInfo.CreateSpecificCulture("en-US")); double lon = Convert.ToDouble(x.LONGITUD, CultureInfo.CreateSpecificCulture("en-US")); distanceTo.Latitude = lat; distanceTo.Longitude = lon; double distance = distanceFrom.GetDistanceTo(distanceTo); double d = distance / 1000; if (d < 2) { x.sucursal_producto.Where(y => y.producto.PRODUCTO1.ToLower().Contains(data.producto.ToLower())).ToList().ForEach(y => { lista.Add(new ProductSearchModel() { sucursal = x.SUCURSAL1, idSucursal = x.ID_SUCURSAL, latitud = x.LATITUD, longitud = x.LONGITUD, direccion = x.DIRECCION, idSucursalProducto = y.ID_SUCURSAL_PRODUCTO, producto = y.producto.PRODUCTO1, precio = Convert.ToDecimal(y.PRECIO), idFarmacia = Convert.ToInt32(Farmacia.ID_FARMACIA) }); }); } }); return(Ok(lista)); } }
public IHttpActionResult ProductDetail(ProductSearchModel data) { DetailModel detalle = null; using (farmaciacEntities db = new farmaciacEntities()) { db.sucursal_producto.Where(x => x.ID_SUCURSAL_PRODUCTO == data.idSucursalProducto).ToList().ForEach(x => { detalle = new DetailModel() { producto = x.producto.PRODUCTO1, presentacion = x.producto.presentacion.PRESENTACION1, fechaVencimiento = x.FECHA_VENCIMIENTO.ToShortDateString(), laboratorio = x.producto.laboratorio.LABORATORIO1.Trim(), principiosActivos = x.producto.DESCRIPCION.Trim().Replace("\t", " "), categoria = x.producto.categoria.CATEGORIA1, precio = Convert.ToDouble(x.PRECIO), existencia = x.EXISTENCIA }; }); return(Ok(detalle)); } }