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 IHttpActionResult DeleteProductIssue(int id) { ProductIssue productIssue = db.ProductIssues.Find(id); if (productIssue == null) { return(NotFound()); } db.ProductIssues.Remove(productIssue); db.SaveChanges(); return(Ok(productIssue)); }
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 OnAddedNewProductIssue() { try { if (!ValidateProductIssue()) { return; } var product = this.view.Product; var annotation = this.view.Annotation; var date = this.view.Date; var productIssueItems = new List <ProductIssueItem>(); var productIssue = new ProductIssue { Annotation = annotation, Code = Guid.NewGuid().ToString(), Product = product, Date = date, ProductIssueItems = productIssueItems, }; foreach (var item in this.view.ProductIssueItems) { var productIssueItem = new ProductIssueItem { ProductIssue = productIssue, Quantity = item.Quantity, Variation = product.GetProductVariation(item.Gender, item.Color, item.Size) }; productIssueItems.Add(productIssueItem); } this.productIssueRepository.Add(productIssue); this.ClearProductInfoInView(); this.view.HasUnsavedChanges = false; this.view.InfoMessage = $"Saida adicionada com sucesso!!"; } catch (Exception ex) { LOGGER.Error($"Error while salved product issue: {ex.ToString()}"); this.view.ErrorMessage = $"Erro ao adicionar esta saida: {ex.Message}"; } }
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); } } }