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)); } }
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)); } }
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"))); } }
private HttpResponse <ProyectoResponse> newHttpResponse(ProyectoResponse response) { return(new HttpResponse <ProyectoResponse>() { StatusCode = HttpStatusCode.OK, ApiResponse = new ApiResponse <ProyectoResponse>() { Data = response, Error = null } }); }
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."))); } }
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)); } }
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); }
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); }
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)); } }
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)); } }
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()); }