public JsonResult GetCrops(int categoryid, int cropid)
        {
            var data = from s in db.SellCrops
                       join f in db.Farmers on s.FarmerId equals f.Id
                       where s.CategoryId == categoryid && s.CropId == cropid
                       select new
            {
                sid   = s.Id,
                fname = f.Name,
                q     = s.Quantity,
                p     = s.Price
            };
            List <SellCropView> sell = new List <SellCropView>();

            foreach (var d in data)
            {
                SellCropView st = new SellCropView();
                st.Id          = d.sid;
                st.farmer.Name = d.fname;
                st.Quantity    = d.q;
                st.Price       = d.p;
                sell.Add(st);
            }
            return(Json(sell));
        }
        public ActionResult BuyCrops(int id, string message)
        {
            ViewBag.Error = message;
            var data = from s in db.SellCrops
                       join f in db.Farmers on s.FarmerId equals f.Id
                       join c in db.Crops on s.CropId equals c.Id
                       where s.Id == id
                       select new
            {
                crop  = c.Name,
                sid   = s.Id,
                fname = f.Name,
                phone = f.Phone,
                nid   = f.Nid,
                vil   = f.Village,
                dis   = f.District,
                wd    = f.WardNo,
                q     = s.Quantity,
                p     = s.Price
            };
            SellCropView st = new SellCropView();

            foreach (var d in data)
            {
                st.Id              = d.sid;
                st.farmer.Name     = d.fname;
                st.farmer.Phone    = d.phone;
                st.farmer.Nid      = d.nid;
                st.farmer.Village  = d.vil;
                st.farmer.WardNo   = d.wd;
                st.farmer.District = d.dis;

                st.Quantity  = d.q;
                st.Price     = d.p;
                ViewBag.Name = d.crop;
            }
            ViewBag.Crop = st;
            return(View());
        }
        public ActionResult Profile(string msg)
        {
            ViewBag.Profile = "active";
            ViewBag.Error   = msg;
            int fid  = (int)Session["FarmerId"];
            var data = from s in db.SellCrops
                       join cat in db.Categories on s.CategoryId equals cat.Id
                       join cr in db.Crops on s.CropId equals cr.Id
                       where s.FarmerId == fid
                       select new
            {
                id      = s.Id,
                q       = s.Quantity,
                p       = s.Price,
                sold    = s.SoldCropAmount,
                catname = cat.Name,
                crname  = cr.Name,
            };
            List <SellCropView> sellCropViews = new List <SellCropView>();

            foreach (var d in data)
            {
                SellCropView s = new SellCropView();
                s.Id             = d.id;
                s.Quantity       = d.q;
                s.Price          = d.p;
                s.SellCropAmount = d.sold;
                s.Category       = d.catname;
                s.Crop           = d.crname;
                sellCropViews.Add(s);
            }

            ViewBag.Crops  = sellCropViews;
            ViewBag.Farmer = db.Farmers.First(r => r.Id == fid);
            return(View());
        }
        public JsonResult GetSummary(int id)
        {
            var data = from s in db.SellCrops
                       join f in db.Farmers on s.FarmerId equals f.Id
                       join c in db.Crops on s.CropId equals c.Id
                       where s.CategoryId == id && s.SoldCropAmount > 0
                       select new
            {
                crop  = c.Name,
                sid   = s.Id,
                fname = f.Name,
                phone = f.Phone,
                nid   = f.Nid,
                vil   = f.Village,
                dis   = f.District,
                wd    = f.WardNo,
                q     = s.SoldCropAmount,
                p     = s.Price
            };


            AddressData addresses = new AddressData();
            //, apikey: "AIzaSyDOYXX8MgKThJttmAixhqVeZgfzlIOi8uA"


            List <SellCropView> sv = new List <SellCropView>();

            foreach (var d in data)
            {
                SellCropView st = new SellCropView();

                addresses.City    = d.dis;
                addresses.Country = "Bangladesh";
                try
                {
                    var gls     = new GoogleLocationService("AIzaSyDOYXX8MgKThJttmAixhqVeZgfzlIOi8uA");
                    var latlong = gls.GetLatLongFromAddress(addresses);
                    st.Lat  = latlong.Latitude;
                    st.Long = latlong.Longitude;
                }
                catch (System.Net.WebException ex)
                {
                    st.Lat  = -1;
                    st.Long = -1;
                }

                st.Id              = d.sid;
                st.farmer.Name     = d.fname;
                st.farmer.Phone    = d.phone;
                st.farmer.Nid      = d.nid;
                st.farmer.Village  = d.vil;
                st.farmer.WardNo   = d.wd;
                st.farmer.District = d.dis;
                st.Crop            = d.crop;
                st.Quantity        = d.q;
                st.Price           = d.p;
                sv.Add(st);
            }

            return(Json(sv));
        }