Exemplo n.º 1
0
        public HttpResponse <List <ProyectoResponse> > Todos()
        {
            using (var db = new GeviApiContext())
            {
                var proyectos = db.Proyectos
                                .Include(p => p.Cliente)
                                .ToList();

                var response = new List <ProyectoResponse>();

                foreach (var p in proyectos)
                {
                    var nuevo = new ProyectoResponse()
                    {
                        Id          = p.Id,
                        Nombre      = p.Nombre,
                        FechaInicio = p.FechaInicio,
                        Cliente     = p.Cliente?.Nombre
                    };

                    response.Add(nuevo);
                }

                return(newHttpListResponse(response));
            }
        }
Exemplo n.º 2
0
        public HttpResponse <ProyectoResponse> BorrarProyecto(ProyectoRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El proyecto que se intenta borrar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var pro = db.Proyectos
                          .Where(p => p.Nombre.Equals(request.Nombre))
                          .Include(c => c.Cliente)
                          .FirstOrDefault();

                if (pro == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el Proyecto")));
                }

                var viajes = db.Viajes
                             .Where(v => v.Proyecto.Id == pro.Id)
                             .Include(v => v.Empleado)
                             .Include(v => v.Gastos)
                             .Include(v => v.Proyecto)
                             .ToList();

                var response = new ProyectoResponse()
                {
                    Id          = pro.Id,
                    Nombre      = pro.Nombre,
                    FechaInicio = pro.FechaInicio,
                    Cliente     = pro.Cliente?.Nombre
                };

                if (viajes != null)
                {
                    foreach (var v in viajes)
                    {
                        var gastos = db.Gastos
                                     .Where(g => g.Viaje.Id == v.Id)
                                     .ToList();

                        if (gastos != null)
                        {
                            foreach (var g in gastos)
                            {
                                db.Gastos.Remove(g);
                                db.SaveChanges();
                            }
                        }
                        db.Viajes.Remove(v);
                        db.SaveChanges();
                    }
                }
                db.Proyectos.Remove(pro);
                db.SaveChanges();

                return(newHttpResponse(response));
            }
        }
Exemplo n.º 3
0
        public HttpResponse <ProyectoResponse> ModificarProyecto(ProyectoRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El Proyecto que se intenta modificar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var pro = db.Proyectos
                          .Where(p => p.Nombre.Equals(request.Nombre))
                          .Include(p => p.Cliente)
                          .FirstOrDefault();

                if (pro == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el Proyecto")));
                }

                if (pro.Cliente != null &&
                    pro.Cliente.Nombre.Equals(request.ClienteNombre) &&
                    pro.Nombre.Equals(request.Nombre) &&
                    pro.FechaInicio == request.FechaInicio)
                {
                    return(newHttpErrorResponse(new Error("El proyecto no se modifico")));
                }

                var cli = db.Clientes
                          .Where(c => c.Nombre.Equals(request.ClienteNombre))
                          .Include(c => c.Proyectos)
                          .Include(c => c.Tipo)
                          .FirstOrDefault();
                if (cli != null)
                {
                    pro.Nombre      = request.Nombre;
                    pro.FechaInicio = request.FechaInicio;
                    pro.Cliente     = cli;

                    db.Entry(pro).State = EntityState.Modified;
                    db.SaveChanges();

                    var response = new ProyectoResponse()
                    {
                        Id          = pro.Id,
                        Nombre      = pro.Nombre,
                        FechaInicio = pro.FechaInicio,
                        Cliente     = pro.Cliente?.Nombre
                    };

                    return(newHttpResponse(response));
                }

                return(newHttpErrorResponse(new Error("No existe el cliente")));
            }
        }
Exemplo n.º 4
0
 private HttpResponse <ProyectoResponse> newHttpResponse(ProyectoResponse response)
 {
     return(new HttpResponse <ProyectoResponse>()
     {
         StatusCode = HttpStatusCode.OK,
         ApiResponse = new ApiResponse <ProyectoResponse>()
         {
             Data = response,
             Error = null
         }
     });
 }
Exemplo n.º 5
0
        public HttpResponse <ProyectoResponse> NuevoProyecto(ProyectoRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El Proyecto que se intenta ingresar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var cli = db.Clientes
                          .Where(c => c.Nombre.Equals(request.ClienteNombre))
                          .Include(c => c.Proyectos)
                          .Include(c => c.Tipo)
                          .FirstOrDefault();

                if (cli != null)
                {
                    var nuevo = new Proyecto()
                    {
                        Nombre      = request.Nombre,
                        Cliente     = cli,
                        FechaInicio = request.FechaInicio
                    };

                    try
                    {
                        db.Proyectos.Add(nuevo);
                        db.SaveChanges();
                    }
                    catch (DbUpdateException)
                    {
                        return(newHttpErrorResponse(new Error("Ya existe un Proyecto con ese nombre.")));
                    }

                    var response = new ProyectoResponse()
                    {
                        Id          = nuevo.Id,
                        Nombre      = nuevo.Nombre,
                        FechaInicio = nuevo.FechaInicio,
                        Cliente     = nuevo.Cliente?.Nombre
                    };

                    return(newHttpResponse(response));
                }

                return(newHttpErrorResponse(new Error("No existe el cliente.")));
            }
        }
Exemplo n.º 6
0
        public HttpResponse <ClienteResponse> BuscarCliente(ClienteRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El cliente que se intenta buscar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var cli = db.Clientes
                          .Where(c => c.Nombre.Equals(request.Nombre))
                          .Include(c => c.Proyectos)
                          .FirstOrDefault();

                if (cli == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el cliente")));
                }

                var response = new ClienteResponse()
                {
                    Id        = cli.Id,
                    Nombre    = cli.Nombre,
                    Proyectos = null,
                    Tipo      = cli.Tipo
                };

                if (cli.Proyectos != null)
                {
                    var proyectosResponse = new List <ProyectoResponse>();

                    foreach (var p in cli.Proyectos)
                    {
                        var nuevoProyResponse = new ProyectoResponse()
                        {
                            Id      = p.Id,
                            Nombre  = p.Nombre,
                            Cliente = cli.Nombre
                        };
                        proyectosResponse.Add(nuevoProyResponse);
                    }
                    response.Proyectos = proyectosResponse;
                }

                return(newHttpResponse(response));
            }
        }
Exemplo n.º 7
0
        public HttpResponse <List <ClienteResponse> > Todos()
        {
            using (var db = new GeviApiContext())
            {
                var clientes = db.Clientes
                               .Include(c => c.Proyectos)
                               .Include(c => c.Tipo)
                               .ToList();

                var response = new List <ClienteResponse>();

                foreach (var c in clientes)
                {
                    var nuevo = new ClienteResponse()
                    {
                        Id        = c.Id,
                        Nombre    = c.Nombre,
                        Tipo      = c.Tipo,
                        Proyectos = null
                    };

                    if (c.Proyectos != null)
                    {
                        var proyectoRespone = new List <ProyectoResponse>();

                        foreach (var p in c.Proyectos)
                        {
                            var nuevoProyectoResponse = new ProyectoResponse()
                            {
                                Id      = p.Id,
                                Nombre  = p.Nombre,
                                Cliente = p.Cliente?.Nombre
                            };

                            proyectoRespone.Add(nuevoProyectoResponse);
                        }

                        nuevo.Proyectos = proyectoRespone;
                    }

                    response.Add(nuevo);
                }

                return(newHttpListResponse(response));
            }
        }
        public static dynamic ConsultarProyecto(IContextFactory factory, IOptions <ConnectionDB> connection)
        {
            ProyectoResponse retorno = new ProyectoResponse();

            using (Aldeas_Context db = factory.Create(connection))
            {
                var data = from pro in db.tbProyectos
                           select new Item
                {
                    Codigo = pro.id,
                    Nombre = pro.nombre
                };

                retorno.ItemsProyectos = (data.ToList());
            }
            return(retorno);
        }
Exemplo n.º 9
0
        public ProyectoResponse updateProyecto(ProyectoRequest request)
        {
            ProyectoResponse response = new ProyectoResponse();
            string           mensaje  = "";

            try
            {
                if (Security.ValidateToken(request.Token, request.intUsuarioID, request.vchUsuario, request.vchPassword))
                {
                    NapoleonDataAccess controller = new NapoleonDataAccess();
                    response.success = controller.updateProyecto(request.mdlProyecto, request.lstSites, ref mensaje);
                    response.mensaje = mensaje;
                }
            }
            catch (Exception eSP)
            {
                throw eSP;
            }
            return(response);
        }
Exemplo n.º 10
0
        public HttpResponse <ClienteResponse> BorrarCliente(ClienteRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El cliente que se intenta borrar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var cli = db.Clientes
                          .Where(c => c.Nombre == request.Nombre)
                          .Include(c => c.Proyectos.Select(p => p.Cliente))
                          .Include(c => c.Tipo)
                          .FirstOrDefault();

                if (cli == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el cliente")));
                }

                var proyectos = db.Proyectos
                                .Where(p => p.Cliente.Id == cli.Id)
                                .Include(p => p.Cliente)
                                .ToList();

                var response = new ClienteResponse()
                {
                    Id        = cli.Id,
                    Nombre    = cli.Nombre,
                    Proyectos = null,
                    Tipo      = cli.Tipo
                };

                if (proyectos != null)
                {
                    var proyectosResponse = new List <ProyectoResponse>();

                    foreach (var p in proyectos)
                    {
                        var nuevoProyResponse = new ProyectoResponse()
                        {
                            Id      = p.Id,
                            Nombre  = p.Nombre,
                            Cliente = cli?.Nombre
                        };
                        proyectosResponse.Add(nuevoProyResponse);

                        var viajes = db.Viajes
                                     .Where(v => v.Proyecto.Id == p.Id)
                                     .Include(v => v.Proyecto)
                                     .ToList();

                        if (viajes != null)
                        {
                            foreach (var v in viajes)
                            {
                                db.Viajes.Remove(v);
                                db.SaveChanges();
                            }
                        }
                        db.Proyectos.Remove(p);
                        db.SaveChanges();
                    }

                    response.Proyectos = proyectosResponse;
                }

                db.Clientes.Remove(cli);
                db.SaveChanges();

                return(newHttpResponse(response));
            }
        }
Exemplo n.º 11
0
        public HttpResponse <ClienteResponse> ModificarCliente(ClienteRequest request)
        {
            if (request == null)
            {
                return(newHttpErrorResponse(new Error("El cliente que se intenta modificar es invalido.")));
            }

            using (var db = new GeviApiContext())
            {
                var cli = db.Clientes
                          .Where(c => c.Nombre.Equals(request.Nombre))
                          .Include(c => c.Proyectos)
                          .Include(c => c.Tipo)
                          .FirstOrDefault();

                var tipo = db.TipoClientes
                           .Where(t => t.Nombre.Equals(request.Tipo))
                           .FirstOrDefault();

                if (cli == null)
                {
                    return(newHttpErrorResponse(new Error("No existe el cliente")));
                }

                if (cli.Tipo == tipo)
                {
                    return(newHttpErrorResponse(new Error("El cliente ya es de ese tipo")));
                }

                cli.Nombre = request.Nombre;
                cli.Tipo   = tipo;

                db.Entry(cli).State = EntityState.Modified;
                db.SaveChanges();

                var response = new ClienteResponse()
                {
                    Id        = cli.Id,
                    Nombre    = cli.Nombre,
                    Tipo      = cli.Tipo,
                    Proyectos = null
                };

                if (cli.Proyectos != null)
                {
                    var proyectosResponse = new List <ProyectoResponse>();

                    foreach (var p in cli.Proyectos)
                    {
                        var nuevoProyResponse = new ProyectoResponse()
                        {
                            Id      = p.Id,
                            Nombre  = p.Nombre,
                            Cliente = cli.Nombre
                        };
                        proyectosResponse.Add(nuevoProyResponse);
                    }
                    response.Proyectos = proyectosResponse;
                }

                return(newHttpResponse(response));
            }
        }
Exemplo n.º 12
0
        public async Task <IActionResult> RegistrarProyecto([FromBody] Data data)
        {
            if (data.Proyecto != null && data.Paper != null)
            {
                MappingData(data);

                PaperResponse resultPaper = await _paperUseCase.RegistrarPaper(_paper);

                if (!resultPaper.Success)
                {
                    return(BadRequest(new ErrorResource(resultPaper.Message)));
                }
                else
                {
                    _proyecto.IdPaper = resultPaper.Resource.IdPaper;
                    ProyectoResponse resultProyecto = await _proyectoUseCase.RegistrarProyecto(_proyecto);

                    if (!resultProyecto.Success)
                    {
                        return(BadRequest(new ErrorResource(resultProyecto.Message)));
                    }
                    else
                    {
                        GuardarDocumento(data.Proyecto, data.Doc);
                        if (data.Keywords != null)
                        {
                            foreach (var keyword in _keywords)
                            {
                                var result = await _palabrasClavesUseCase.RegistrarKeyword(keyword);

                                if (!result.Success)
                                {
                                    return(BadRequest(new ErrorResource(result.Message)));
                                }

                                _proyectoKeywords.Add(new ProyectoKeyword {
                                    IdKeyword = result.Resource.IdKeyword
                                });
                            }
                        }

                        foreach (var proyectoKeyword in _proyectoKeywords)
                        {
                            proyectoKeyword.IdProyecto = resultProyecto.Resource.IdProyecto;
                            var result = await _proyectoKeywordUseCase.RegistrarProyectoKeyword(proyectoKeyword);

                            if (!result.Success)
                            {
                                return(BadRequest(new ErrorResource(result.Message)));
                            }
                        }

                        if (data.Autores.Count != 0)
                        {
                            foreach (var autor in _autores)
                            {
                                var result = await _autorUseCase.RegistrarAutor(autor);

                                if (!result.Success)
                                {
                                    return(BadRequest(new ErrorResource(result.Message)));
                                }
                                _proyectoAutores.Add(new ProyectoAutor {
                                    IdAutor = result.Resource.IdAutor
                                });
                            }
                        }

                        foreach (var proyectoAutor in _proyectoAutores)
                        {
                            proyectoAutor.IdProyecto = resultProyecto.Resource.IdProyecto;
                            var result = await _proyectoAutorUseCase.RegistrarProyectoAutor(proyectoAutor);

                            if (!result.Success)
                            {
                                return(BadRequest(new ErrorResource(result.Message)));
                            }
                        }

                        return(Ok(new { mensaje = "Guardado." }));
                    }
                }
            }
            else
            {
                BadRequest(new ErrorResource("Faltan datos."));
            }

            return(Ok());
        }