Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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."));
        }
Exemple #3
0
        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."));
        }
Exemple #4
0
        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));
        }
Exemple #5
0
 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);
         }
     }
 }
Exemple #6
0
        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}";
            }
        }
Exemple #7
0
 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);
         }
     }
 }