public static double ProductividadCultivo(this CultivaPina.EntityFramework.Models.Cultivo cultivo)
        {
            var    PinaPH     = ExtensionNames.GetNamePinaPH(cultivo.PinaId);
            double procultivo = Convert.ToDouble((((cultivo.CultivoPeso) / (cultivo.CultivoHectareas)) * 100) / PinaPH);

            return(procultivo);
        }
        public static IEnumerable <SectorProductivoViewModel> SectoresProductivos(this IEnumerable <CultivaPina.EntityFramework.Models.Cultivo> items)
        {
            var results = items.GroupBy(r => r.SectorId, (key, g) => new { SectorId = key, Cultivos = g });
            var model   = results.Select(s => new SectorProductivoViewModel
            {
                SectorId      = s.SectorId,
                SectorName    = ExtensionNames.GetName(s.SectorId),
                Total         = s.Cultivos.Select(pr => new { pr = ProductividadCultivo(pr) }).Sum(x => x.pr),
                TotalCultivos = s.Cultivos.Count()
            }).ToList().OrderByDescending(x => x.Total).Take(5);

            return(model);
        }
        public static IEnumerable <CultivoProductivoViewModel> ProyecciondeCultivo(this IEnumerable <CultivaPina.EntityFramework.Models.Cultivo> items)
        {
            var cultivosmasP = items.Where(x => x.CultivoFechaRecoleccion <= DateTime.Today.Date)
                               .GroupBy(x => new { x.PinaId, x.CultivoFechaRecoleccion.Month,
                                                   x.SectorId }, (key, g) => new { PinaId   = key.PinaId, FechaR = key.Month,
                                                                                   SectorId = key.SectorId, Cultivos = g }).ToList();

            var model = cultivosmasP.Select(s => new CultivoProductivoViewModel
            {
                PinaId        = s.PinaId,
                PinaName      = ExtensionNames.GetNamePina(s.PinaId),
                SectorName    = ExtensionNames.GetName(s.SectorId),
                Total         = PromedioProSector(s.Cultivos.ToList()),
                TotalCultivos = s.Cultivos.Count(),
                Mes           = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(s.FechaR)
            }).ToList().OrderByDescending(x => x.Total).Take(5);

            return(model);
        }
 public static IntPtr ToIntPtr(this ExtensionNames extensionName) =>
 Marshal.StringToHGlobalAnsi(extensionName.ToString());