Пример #1
0
 /// <summary>
 /// Build a ProductPerson from a PersonInProduct.
 /// </summary>
 public static ProductPerson CreateProductPerson(PersonInProduct personInProduct, int productId)
 => new ProductPerson
 {
     PersonId  = personInProduct.Id,
     ProductId = productId,
     Role      = personInProduct.Role
 };
Пример #2
0
        public void TestShouldGetPersonFromIdAndGetNull()
        {
            // Arrange
            var persons = SamplePersonInProduct.CreatePersonsInProduct();

            // Act
            var result = PersonInProduct.Get(2, Role.Producer);

            // Assert
            var person = persons.SingleOrDefault(result);

            Assert.IsNull(person);
        }
Пример #3
0
        public void TestShouldGetPersonFromId()
        {
            // Arrange
            var persons = SamplePersonInProduct.CreatePersonsInProduct();

            // Act
            var result = PersonInProduct.Get(1, Role.Producer);

            // Assert
            var person = persons.SingleOrDefault(result);

            Assert.IsNotNull(person);
            Assert.AreEqual("First Person", person.Name);
        }
Пример #4
0
        /// <summary>
        /// Remove a person from a product.
        /// </summary>
        public void RemovePersonFromProduct(int personId, int productId, Role role)
        {
            try
            {
                var product = _queries.GetProduct(productId);
                Entity.CheckNull(product);

                var personInProduct = product.Persons.SingleOrDefault(PersonInProduct.Get(personId, role));
                Entity.CheckNull(personInProduct);

                product.Persons.Remove(personInProduct);

                _commands.UpdateProduct(product);
            }
            catch (ArgumentNullException ex)
            {
                _logger.LogWarning($"RemovePersonFromProduct failed: {ex.Message}");
                throw;
            }
        }
Пример #5
0
        /// <summary>
        /// Add a person to a product.
        /// </summary>
        public void AddPersonToProduct(int personId, int productId, Role role)
        {
            try
            {
                var person = _queries.GetPerson(personId);
                Entity.CheckNull(person);

                var product = _queries.GetProduct(productId);
                Entity.CheckNull(product);

                var personInProduct = product.Persons.SingleOrDefault(PersonInProduct.Get(personId, role));
                Entity.CheckNotNull(personInProduct);

                product.Persons.Add(PersonFactory.CreatePersonInProduct(personId, person.Name, role));
                _commands.UpdateProduct(product);
            }
            catch (Exception ex) when(ex is ArgumentNullException || ex is TooManyFoundException)
            {
                _logger.LogWarning($"AddPersonToProduct failed: {ex.Message}");
                throw;
            }
        }