public async Task <IActionResult> GetZemfondInfo(
            string objectid)
        {
            string DefaultConnection = Microsoft
                                       .Extensions
                                       .Configuration
                                       .ConfigurationExtensions
                                       .GetConnectionString(Startup.Configuration, "DefaultConnection");
            zemfondpol zemfondpol = new zemfondpol();

            using (var connection = new NpgsqlConnection(DefaultConnection))
            {
                connection.Open();
                var zemfondpols = connection.Query <zemfondpol>($"SELECT gid, objectid, type_k, ur_avgyear, " +
                                                                $"dominant_t, korm_avgye, area, s_recomend, subtype_k, kato_te_1, shape_leng, shape_area, geom " +
                                                                $"FROM public.zemfondpol " +
                                                                $"WHERE objectid = {objectid};");
                zemfondpol = zemfondpols.FirstOrDefault();
            }
            zemfondpol.stype           = _context.SType.FirstOrDefault(s => s.Code == zemfondpol.type_k)?.Description;
            zemfondpol.dominanttype    = _context.DominantType.FirstOrDefault(d => d.Code == zemfondpol.dominant_t)?.Description;
            zemfondpol.supplyrecommend = _context.SupplyRecommend.FirstOrDefault(s => s.Code == zemfondpol.s_recomend)?.Description;
            return(Json(new
            {
                zemfondpol
            }));
        }
        public ActionResult GetCATOZemfondInfo(
            string catote)
        {
            string DefaultConnection = Microsoft
                                       .Extensions
                                       .Configuration
                                       .ConfigurationExtensions
                                       .GetConnectionString(Startup.Configuration, "DefaultConnection");
            string ab = catote?.Substring(0, 2),
                   cd = catote?.Substring(2, 2),
                   ef = catote?.Substring(4, 2),
                   te = ab;

            if (cd != "00")
            {
                te += cd;
            }
            if (ef != "00")
            {
                te += ef;
            }

            List <zemfondpol> zemfondpols = new List <zemfondpol>();
            zemfondpol        zemfondpol  = new zemfondpol();

            using (var connection = new NpgsqlConnection(DefaultConnection))
            {
                connection.Open();
                string query         = $"SELECT ur_avgyear, korm_avgye, area FROM public.zemfondpol WHERE kato_te_1 LIKE '{te}%';";
                var    zemfondpolsDB = connection.Query <zemfondpol>(query);
                zemfondpols           = zemfondpolsDB.ToList();
                zemfondpol.area       = zemfondpols.Where(z => z.ur_avgyear > 0).Sum(z => z.area);
                zemfondpol.ur_avgyear = zemfondpols.Sum(z => z.area * z.ur_avgyear) / zemfondpol.area;
                zemfondpol.korm_avgye = zemfondpols.Sum(z => z.korm_avgye);
            }

            List <zemfondpol> zemfondpols_stypes = new List <zemfondpol>();

            using (var connection = new NpgsqlConnection(DefaultConnection))
            {
                connection.Open();
                string query         = $"SELECT type_k, SUM(area) as shape_area FROM public.zemfondpol WHERE kato_te_1 LIKE '{te}%' GROUP BY type_k;";
                var    zemfondpolsDB = connection.Query <zemfondpol>(query);
                zemfondpols_stypes = zemfondpolsDB.ToList();
            }

            List <zemfondpol> zemfondpols_supplyrecommends = new List <zemfondpol>();

            using (var connection = new NpgsqlConnection(DefaultConnection))
            {
                connection.Open();
                string query         = $"SELECT s_recomend, SUM(area) as shape_area FROM public.zemfondpol WHERE kato_te_1 LIKE '{te}%' GROUP BY s_recomend;";
                var    zemfondpolsDB = connection.Query <zemfondpol>(query);
                zemfondpols_supplyrecommends = zemfondpolsDB.ToList();
            }

            return(Json(new
            {
                zemfondpol,
                zemfondpols_stypes,
                zemfondpols_supplyrecommends
            }));
        }