Task IDepartamentosRepository.DeleteById(int id) { try { using (var dbContext = new DepartamentosDbContext(_connectionString)) { var field = dbContext.Departamentos.Find(id); dbContext.Departamentos.Remove(field); //dbContext.Entry(field).State = System.Data.Entity.EntityState.Deleted; dbContext.SaveChanges(); } return(Task.CompletedTask); } catch (Exception ex) { if (ex.InnerException.GetType() == typeof(SqlException)) { SqlException innerException = ex.InnerException as SqlException; if (innerException.Number == 2627) { throw new DuplicateItemException(); } } throw; } }
Task IDepartamentosRepository.Update(Departamento updatedObj) { try { using (var dbContext = new DepartamentosDbContext(_connectionString)) { var field = dbContext.Departamentos.Find(updatedObj.Id); field.nombre = updatedObj.Nombre; field.activo = updatedObj.Activo; dbContext.Entry(field).State = System.Data.Entity.EntityState.Modified; dbContext.SaveChanges(); } return(Task.CompletedTask); } catch (Exception ex) { if (ex.InnerException.GetType() == typeof(SqlException)) { SqlException innerException = ex.InnerException as SqlException; if (innerException.Number == 2627) { throw new DuplicateItemException(); } } throw; } }
Task IDepartamentosRepository.Create(Departamento newObj) { try { using (var dbContext = new DepartamentosDbContext(_connectionString)) { // Esta validación permite controlar si el nombre del producto no existe en la // base de datos, ya que por regla de negocio, no deben existir nombres de productos // iguales. if (!dbContext.Departamentos.Any(d => d.nombre == newObj.Nombre)) { DepartamentosDao newField = new DepartamentosDao() { nombre = newObj.Nombre, activo = newObj.Activo }; dbContext.Departamentos.Add(newField); dbContext.SaveChanges(); } else { throw new DuplicateItemException(); } } return(Task.CompletedTask); } catch (Exception ex) { if (ex.InnerException.GetType() == typeof(SqlException)) { SqlException innerException = ex.InnerException as SqlException; if (innerException.Number == 2627) { throw new DuplicateItemException(); } } throw; } }