public bool AddMatche(TMatche matche) { var leftCatIdNotFound = _catMashDBContext.TCat.FirstOrDefault(x => x.CatId == matche.LeftCatId) == null; var rightCatIdNotFound = _catMashDBContext.TCat.FirstOrDefault(x => x.CatId == matche.RightCatId) == null; if (rightCatIdNotFound || leftCatIdNotFound) { throw new ElementNotFoundException(); } var unknowMatcheResult = MatchResultHelper.IsValidMatchResult(matche.MatchResult); if (unknowMatcheResult) { throw new UnknownMatcheResultException(); } try { _catMashDBContext.TMatche.Add(matche); return(_catMashDBContext.SaveChanges() == 1); } catch (Exception exp) { throw new DataBaseAccessException("DataBaseAccessException", exp); } }