public void Add(ProductIssue productIssue) { productIssue.Valid(); using (var session = NHibernateSessionFactory.OpenSession()) { try { var transaction = session.BeginTransaction(); session.Save(productIssue); var product = productIssue.Product; foreach (var variation in product.GetVariationUpdatedByProductIssueQuantity(productIssue.ProductIssueItems)) { session.Update(variation); } session.Flush(); transaction.Commit(); } catch (ConstraintViolationException ex) { throw new RepositoryException($"Saida de produto '{productIssue.Code}' já existe.", ex); } catch (Exception ex) { throw new RepositoryException($"Não foi possível adicionar a saida de produto '{productIssue.Code}': {ex.Message}", ex); } } }
public void ValidateProdutIssue_ProductIssueIsNull_ThrowException() { ProductIssue productIssue = null; var ex = Assert.Throws <ArgumentException>(() => productIssue.Valid()); Assert.That(ex.Message, Is.EqualTo("Saida de produto não pode estar nula ou vazia.")); }
public void ValidateProductIssue_ProductIsNull_ThrowException() { var outputOrder = new ProductIssue { Code = "CODE_1", }; var ex = Assert.Throws <ArgumentException>(() => outputOrder.Valid()); Assert.That(ex.Message, Is.EqualTo("Saida de produto sem produto.")); }
public void Delete(ProductIssue productIssue) { productIssue.Valid(); using (var session = NHibernateSessionFactory.OpenSession()) { try { session.Delete(productIssue); session.Flush(); } catch (Exception ex) { throw new RepositoryException($"Não foi possível deletar a saida de produto '{productIssue.Code}': {ex.Message}", ex); } } }
public void Update(ProductIssue productIssue) { productIssue.Valid(); using (var session = NHibernateSessionFactory.OpenSession()) { try { session.Update(productIssue); session.Flush(); } catch (ConstraintViolationException ex) { throw new RepositoryException($"Saida de produto '{productIssue.Code}' já existe.", ex); } catch (Exception ex) { throw new RepositoryException($"Não foi possível atualizar a saida de produto '{productIssue.Code}': {ex.Message}", ex); } } }