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"))); } }
public HttpResponse <UsuarioResponse> CambiarContrasenia(UsuarioRequest request) { if (request == null) { return(newHttpErrorResponse(new Error("El usuario que se intenta modificar es invalido."))); } using (var db = new GeviApiContext()) { var usuario = db.Usuarios .Where(u => u.Id == request.UsuarioId) .FirstOrDefault(); if (usuario == null) { return(newHttpErrorResponse(new Error("No existe el usuario"))); } var encryptionManager = new EncryptionManager(); var nuevaContraseniaEncriptada = encryptionManager.Encryptdata(request.Contrasenia); var viejaContraseniaEncriptada = encryptionManager.Encryptdata(request.ContraseniaVieja); if (!usuario.Contrasenia.Equals(viejaContraseniaEncriptada)) { return(newHttpErrorResponse(new Error("La contraseña actual no es correcta"))); } if (nuevaContraseniaEncriptada == viejaContraseniaEncriptada) { return(newHttpErrorResponse(new Error("La nueva contraseña no puede ser igual a la anterior"))); } usuario.Contrasenia = nuevaContraseniaEncriptada; db.Entry(usuario).State = EntityState.Modified; db.SaveChanges(); var response = new UsuarioResponse() { Id = usuario.Id, Nombre = usuario.Nombre, Email = usuario.Email, EsEmpleado = usuario is Empleado, FechaRegistro = usuario.FechaRegistro }; return(newHttpResponse(response)); } }
public HttpResponse <GastoResponse> ValidarGasto(ValidacionRequest request) { if (request == null) { return(newHttpErrorResponse(new Error("El gasto que se intenta validar es invalido"))); } using (var db = new GeviApiContext()) { var gasto = db.Gastos .Where(g => g.Id == request.Id) .Include(g => g.Tipo) .Include(g => g.Empleado) .Include(g => g.Viaje.Proyecto) .Include(g => g.Moneda) .FirstOrDefault(); if (gasto != null) { gasto.Estado = request.Estado; db.Entry(gasto).State = EntityState.Modified; db.SaveChanges(); var response = new GastoResponse() { Id = gasto.Id, Moneda = gasto.Moneda?.Nombre, Estado = gasto.Estado, Fecha = gasto.Fecha, Tipo = gasto.Tipo?.Nombre, Total = gasto.Total, Empleado = gasto.Empleado?.Nombre, Proyecto = gasto.Viaje?.Proyecto?.Nombre, ViajeId = gasto.Viaje == null ? 0 : gasto.Viaje.Id }; return(newHttpResponse(response)); } return(newHttpErrorResponse(new Error("No existe el gasto"))); } }
public HttpResponse <UsuarioResponse> ModificarUsuario(UsuarioRequest request) { if (request == null) { return(newHttpErrorResponse(new Error("El usuario que se intenta modificar es invalido."))); } using (var db = new GeviApiContext()) { var usuario = db.Usuarios .Where(u => u.Id == request.UsuarioId) .FirstOrDefault(); if (usuario == null) { return(newHttpErrorResponse(new Error("No existe el usuario"))); } usuario.Nombre = request.Nombre; usuario.Email = request.Email; db.Entry(usuario).State = EntityState.Modified; db.SaveChanges(); var response = new UsuarioResponse() { Id = usuario.Id, Nombre = usuario.Nombre, Email = usuario.Email, EsEmpleado = usuario is Empleado, FechaRegistro = usuario.FechaRegistro }; return(newHttpResponse(response)); } }
public HttpResponse <ViajeResponse> ValidarViaje(ValidacionRequest request) { if (request == null) { return(newHttpErrorResponse(new Error("La request es invalida."))); } using (var db = new GeviApiContext()) { var viaje = db.Viajes .Where(v => v.Id == request.Id) .Include(u => u.Empleado) .Include(w => w.Proyecto.Cliente) .FirstOrDefault(); if (viaje != null) { viaje.Estado = request.Estado; db.Entry(viaje).State = EntityState.Modified; db.SaveChanges(); var response = new ViajeResponse() { Id = viaje.Id, EmpleadoId = viaje.Empleado.Id, EmpleadoNombre = viaje.Empleado?.Nombre, Estado = request.Estado, FechaInicio = viaje.FechaInicio, FechaFin = viaje.FechaFin, Gastos = null, Proyecto = viaje.Proyecto?.Nombre, ClienteProyectoNombre = viaje.Proyecto?.Cliente?.Nombre }; if (viaje.Gastos != null) { var gastos = new List <GastoResponse>(); foreach (var g in viaje.Gastos) { var nuevoGasto = new GastoResponse() { Id = g.Id, Estado = g.Estado, Fecha = g.Fecha, Moneda = g.Moneda?.Nombre, Tipo = g.Tipo?.Nombre, Total = g.Total, ViajeId = viaje.Id, Proyecto = g.Viaje?.Proyecto?.Nombre, Empleado = g.Empleado?.Nombre }; gastos.Add(nuevoGasto); } response.Gastos = gastos; } return(newHttpResponse(response)); } return(newHttpErrorResponse(new Error("No existe el viaje"))); } }
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)); } }