예제 #1
0
        public async Task <AddEtapaFenologicaResponse> Handle(AddEtapaFenologicaCommand request, CancellationToken cancellationToken)
        {
            //Search if exist a Etapa with equals or similar name
            string          nombre   = request.Nombre.ToLower().Trim();
            EtapaFenologica oldEtapa = await
                                       db.EtapaFenologica.Where(el =>
                                                                el.Nombre.ToLower().Trim().Equals(nombre))
                                       .FirstOrDefaultAsync();

            if (oldEtapa == null)
            {
                EtapaFenologica newEtapa = new EtapaFenologica
                {
                    Nombre = request.Nombre
                };
                db.EtapaFenologica.Add(newEtapa);
            }
            else
            {
                oldEtapa.IsDeleted   = false;
                oldEtapa.DeletedDate = null;
            }
            await db.SaveChangesAsync(cancellationToken);

            return(new AddEtapaFenologicaResponse());
        }
예제 #2
0
        private void SeedEtapaFenologica(FitoReportDbContext context)
        {
            var etapaFenologica = new EtapaFenologica[]
            {
                new EtapaFenologica
                {
                    Nombre = "Floracion"
                },
                new EtapaFenologica
                {
                    Nombre = "Amarre"
                },
                new EtapaFenologica
                {
                    Nombre = "Desarrollo vegetativo"
                },
                new EtapaFenologica
                {
                    Nombre = "Llenado de fruto"
                },
                new EtapaFenologica
                {
                    Nombre = "Yema inchada"
                },
            };

            foreach (var etapa in etapaFenologica)
            {
                context.EtapaFenologica.Add(etapa);
                context.SaveChanges();
            }
        }
        public async Task <DeleteEtapaFenologicaResponse> Handle(DeleteEtapaFenologicaCommand request, CancellationToken cancellationToken)
        {
            EtapaFenologica entity = await db.EtapaFenologica.FindAsync(request.IdEtapa);

            db.EtapaFenologica.Remove(entity);
            await db.SaveChangesAsync(cancellationToken);

            return(new DeleteEtapaFenologicaResponse());
        }
        public async Task <AgregarReporteResponse> Handle(AgregarReporteCommand request, CancellationToken cancellationToken)
        {
            for (int count = 0; count < request.Reportes.Count; count++)
            {
                ReporteDTO item   = request.Reportes[count];
                Reporte    entity = new Reporte
                {
                    Lugar         = item.Lugar,
                    Productor     = item.Productor,
                    Latitude      = item.Latitude,
                    Longitud      = item.Longitud,
                    Ubicacion     = item.Ubicacion,
                    Predio        = item.Predio,
                    Cultivo       = item.Cultivo,
                    Observaciones = item.Observaciones,
                    Litros        = item.Litros,
                };

                db.Reporte.Add(entity);
                await db.SaveChangesAsync(cancellationToken);

                foreach (ProductoDTO p in item.Productos)
                {
                    entity.Productos.Add(new Producto
                    {
                        IdReport           = entity.Id,
                        Cantidad           = p.Cantidad,
                        Unidad             = p.Unidad,
                        Concentracion      = p.Concentracion,
                        IngredienteActivo  = p.IngredienteActivo,
                        IntervaloSeguridad = p.IntervaloSeguridad,
                        NombreProducto     = p.Nombre,
                        Reporte            = entity
                    });
                }

                foreach (PlagaDTO plaga in item.Plagas)
                {
                    //Search if exist a Plaga with equals or similar name
                    string nombre = NormalizeString(plaga.Nombre);

                    Plaga oldPlaga = await
                                     db.Plaga.Where(el =>
                                                    el.Nombre.Replace(" ", "").ToLower().Equals(nombre))
                                     .FirstOrDefaultAsync();

                    if (oldPlaga == null)
                    {
                        Plaga newPlaga = new Plaga
                        {
                            Nombre = plaga.Nombre
                        };
                        db.Plaga.Add(newPlaga);
                        await db.SaveChangesAsync(cancellationToken);

                        entity.ReportePlaga.Add(new ReportePlaga {
                            Plaga = newPlaga
                        });
                    }
                    else
                    {
                        oldPlaga.IsDeleted   = false;
                        oldPlaga.DeletedDate = null;
                        db.Plaga.Update(oldPlaga);
                        entity.ReportePlaga.Add(new ReportePlaga {
                            Plaga = oldPlaga
                        });
                    }
                }

                foreach (EtapaFenogolicaDTO etapa in item.EtapaFenologica)
                {
                    //Search if exist a Etapa with equals or similar name
                    string nombre = NormalizeString(etapa.Nombre);

                    EtapaFenologica oldEtapaF = await
                                                db.EtapaFenologica.Where(el =>
                                                                         el.Nombre.Replace(" ", "").ToLower().Equals(nombre))
                                                .FirstOrDefaultAsync();

                    if (oldEtapaF == null)
                    {
                        var newEtapa = new EtapaFenologica
                        {
                            Nombre = etapa.Nombre
                        };
                        db.EtapaFenologica.Add(newEtapa);
                        await db.SaveChangesAsync(cancellationToken);

                        entity.ReporteEtapaFenologica.Add(new ReporteEtapaFenologica {
                            EtapaFenologica = newEtapa
                        });
                    }
                    else
                    {
                        oldEtapaF.IsDeleted   = false;
                        oldEtapaF.DeletedDate = null;
                        db.EtapaFenologica.Update(oldEtapaF);
                        entity.ReporteEtapaFenologica.Add(new ReporteEtapaFenologica {
                            EtapaFenologica = oldEtapaF
                        });
                    }
                }

                foreach (EnfermedadDTO enfermedad in item.Enfermedades)
                {
                    //Search if exist a Enfermedad with equals or similar name
                    string nombre = NormalizeString(enfermedad.Nombre);

                    Enfermedad oldEnfermedad = await
                                               db.Enfermedad.Where(el =>
                                                                   el.Nombre.Replace(" ", "").ToLower().Equals(nombre))
                                               .FirstOrDefaultAsync();

                    if (oldEnfermedad == null)
                    {
                        Enfermedad newEnfermedad = new Enfermedad
                        {
                            Nombre = enfermedad.Nombre
                        };
                        db.Enfermedad.Add(newEnfermedad);
                        await db.SaveChangesAsync(cancellationToken);

                        entity.ReporteEnfermedad.Add(new ReporteEnfermedad {
                            Enfermedad = newEnfermedad
                        });
                    }
                    else
                    {
                        oldEnfermedad.IsDeleted   = false;
                        oldEnfermedad.DeletedDate = null;
                        db.Enfermedad.Update(oldEnfermedad);
                        entity.ReporteEnfermedad.Add(new ReporteEnfermedad {
                            Enfermedad = oldEnfermedad
                        });
                    }
                }
                await db.SaveChangesAsync(cancellationToken);

                request.Reportes[count].Id = entity.Id;
            }

            return(new AgregarReporteResponse
            {
                Id = request.Reportes.Select(el => el.Id).ToList()
            });
        }