public static bool Add(string descricao, string local, TipoAvaria tipo) { string imagem = ""; //Avarias.Novo(descricao,imagem,) return(true); }
private void ListaContratos_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (ListaTipos.SelectedItem != null) { tipo = (ListaTipos.SelectedItem as TipoAvaria); } }
/// <summary> /// Procura um TipoUtilizador que tenha o ID especificado /// </summary> /// <param name="id">Id a procurar</param> /// <returns>Retorna um TipoUtilizador com o ID pedido ou null se nao existir</returns> public static TipoAvaria GetById(int id) { DBConnection db; TipoAvaria tipo = tiposAvaria.Find(x => x.Id == id); DataTable table; //1º tenta ver se ja tem esse tipo em memoria if (tipo != null) { return(tipo); } //Caso nao tenha esse tipo em memoria vai à base de dados db = new DBConnection(); table = db.Query("SELECT * FROM tipo_avaria WHERE id = @0", id); //Se o id não existir também na base de dados retorna objeto default if (table.Rows.Count == 0) { return(null); } //Criar novo objeto de TipoUtilizador tipo = new TipoAvaria(table.Rows[0].Field <int>("id"), table.Rows[0].Field <string>("denominacao")); tiposAvaria.Add(tipo); return(tipo); }
public static Avaria Novo(string descricao, string imagem, Contrato contrato, Utilizador utilizador, TipoAvaria tipo, EstadoAvaria estado) { int id = 0; int rows; Avaria novoAvaria; DBConnection conn = new DBConnection(); DataTable dt; //Inserir morada na base de dados rows = conn.NonQuery("INSERT INTO avaria (descricao, utilizador_id, imagem, contrato_id, tipo_avaria_id, estado_id) VALUES (@0, @1, @2, @3, @4, @5)", descricao, utilizador.Id, contrato.Id, tipo.Id, estado.Id); dt = conn.Query("SELECT * FROM utilizador WHERE codigo = @0 AND utilizador_id = @1 AND contrato_id = @2 AND tipo_avaria_id = @3 AND estado_id = @4 ORDER BY id DESC LIMIT 1", utilizador.Id, contrato.Id, tipo.Id, estado.Id); id = dt.Rows[dt.Rows.Count - 1].Field <int>("id"); novoAvaria = new Avaria(id, tipo, descricao, imagem, estado); avarias.Add(novoAvaria); return(novoAvaria); }