Beispiel #1
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                Guid _proyectoId = Guid.NewGuid();
                var  proyecto    = new Proyecto {
                    ProyectoId     = _proyectoId,
                    NombreProyecto = request.NombreProyecto,
                    ClienteId      = request.ClienteId,
                    FechaCreacion  = DateTime.UtcNow
                };

                _context.Proyecto.Add(proyecto);

                //Recorrer arreglo de etapas, y aser un save por cada etapa.
                if (request.ListaEtapas != null)
                {
                    foreach (var id in request.ListaEtapas)
                    {
                        var proyectoEtapa = new ProyectoEtapa {
                            ProyectoId = _proyectoId,
                            EtapaId    = id
                        };
                        _context.ProyectoEtapa.Add(proyectoEtapa);
                    }
                }

                var valor = await _context.SaveChangesAsync();

                if (valor > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("No se pudo insertar el proyecto");
            }
Beispiel #2
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var proyecto = await _context.Proyecto.FindAsync(request.ProyectoId);

                if (proyecto == null)
                {
                    //throw new Exception("No se puede eliminar el curso");
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new{ mensaje = "No se encontró el proyecto" });
                }

                proyecto.NombreProyecto = request.NombreProyecto ?? proyecto.NombreProyecto;
                proyecto.ClienteId      = request.ClienteId ?? proyecto.ClienteId;
                proyecto.FechaCreacion  = DateTime.UtcNow;

                if (request.ListaEtapa != null)
                {
                    if (request.ListaEtapa.Count > 0)
                    {
                        //Eliminar las etapas actuales
                        var etapasBD = _context.ProyectoEtapa.Where(x => x.ProyectoId == request.ProyectoId).ToList();
                        foreach (var etapaEliminar in etapasBD)
                        {
                            _context.ProyectoEtapa.Remove(etapaEliminar);
                        }
                        //Fin Eliminar

                        //Procedimiento para agregar nuevas etapas
                        foreach (var id in request.ListaEtapa)
                        {
                            var nuevaEtapa = new ProyectoEtapa {
                                ProyectoId = request.ProyectoId,
                                EtapaId    = id
                            };
                            _context.ProyectoEtapa.Add(nuevaEtapa);
                        }
                        //Fin procedimiento
                    }
                }


                //if(request.ClienteId < 0){
                //    proyecto.ClienteId = proyecto.ClienteId;
                //}

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se guardaron los cambios en el proyecto");
            }