예제 #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");
            }
예제 #2
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var documento = await _context.Documento.Where(x => x.ObjetoReferencia == request.ObjetoReferencia).FirstOrDefaultAsync();

                if (documento == null)
                {
                    var doc = new Documento {
                        Contenido        = Convert.FromBase64String(request.Data),
                        Nombre           = request.Nombre,
                        Extension        = request.Extension,
                        DocumentoId      = Guid.NewGuid(),
                        FechaCreacion    = DateTime.UtcNow,
                        ObjetoReferencia = request.ObjetoReferencia ?? Guid.Empty
                    };
                    _context.Documento.Add(doc);
                }
                else
                {
                    documento.Contenido     = Convert.FromBase64String(request.Data);
                    documento.Nombre        = request.Nombre;
                    documento.Extension     = request.Extension;
                    documento.FechaCreacion = DateTime.UtcNow;
                }

                var resultado = await _context.SaveChangesAsync();

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

                throw new Exception("No se pudo guardar el archivo");
            }
예제 #3
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var etapasDB = _context.ProyectoEtapa.Where(x => x.ProyectoId == request.Id);

                foreach (var etapa in etapasDB)
                {
                    _context.ProyectoEtapa.Remove(etapa);
                }

                var proyecto = await _context.Proyecto.FindAsync(request.Id);

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

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se pudieron guardar los cambios");
            }
예제 #4
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");
            }
예제 #5
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var timeReport = await _context.TimeReport.FindAsync(request.Id);

                if (timeReport == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new { mensaje = "No se encontró el reporte" });
                }
                _context.Remove(timeReport);

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se pudo eliminar el reporte");
            }
예제 #6
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var timeReport = new TimeReport {
                    TimeReportId  = Guid.NewGuid(),
                    FechaInicio   = request.FechaInicio,
                    Titulo        = request.Titulo,
                    Descripcion   = request.Descripcion,
                    ProyectoId    = request.ProyectoId,
                    FechaCreacion = DateTime.UtcNow
                };

                _context.TimeReport.Add(timeReport);

                var resultado = await _context.SaveChangesAsync();

                if (resultado > 0)
                {
                    return(Unit.Value);
                }
                throw new Exception("No se pudo insertar el reporte");
            }
예제 #7
0
            public async Task <Unit> Handle(Ejecuta request, CancellationToken cancellationToken)
            {
                var timeReport = await _context.TimeReport.FindAsync(request.TimeReportId);

                if (timeReport == null)
                {
                    throw new ManejadorExcepcion(HttpStatusCode.NotFound, new{ mensaje = "No se encontró el reporte" });
                }
                timeReport.FechaInicio   = request.FechaInicio ?? timeReport.FechaInicio;
                timeReport.Titulo        = request.Titulo ?? timeReport.Titulo;
                timeReport.Descripcion   = request.Descripcion ?? timeReport.Descripcion;
                timeReport.ProyectoId    = request.ProyectoId ?? timeReport.ProyectoId;
                timeReport.FechaCreacion = DateTime.UtcNow;

                var resultado = await _context.SaveChangesAsync();

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