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