示例#1
0
        public async void GetInventary_Ok()
        {
            //Arrange
            int id = 1;

            InventaryMaster inventaryMaster = new InventaryMaster()
            {
                Id           = 1,
                Name         = "Sudev",
                Description  = "Good Boy",
                PricePerUnit = 5,
                Quantity     = 2,
                CreatedOn    = DateTime.Now,
                TotalPrice   = 10
            };

            _inventaryRepositary.Setup(repo => repo.GetInventary(id)).Returns(Task.FromResult(inventaryMaster));
            //Act
            var response = await _inventaryService.GetInventrary(id);

            //Assert
            var res = Assert.IsType <SpecificInventary>(response);

            Assert.Equal(inventaryMaster.Name, res.Name);
            Assert.Equal(inventaryMaster.Description, res.Description);
            Assert.Equal(inventaryMaster.PricePerUnit, res.PricePerUnit);
            Assert.Equal(inventaryMaster.Quantity, res.Quantity);
        }
        public async Task <int> UpdateInventrary(InventaryDetail inventaryDetail, int id)
        {
            InventaryMaster inventaryMaster = new InventaryMaster();

            inventaryMaster.InjectFrom(inventaryDetail);
            inventaryMaster.TotalPrice = inventaryMaster.Quantity * inventaryMaster.PricePerUnit;
            return(await _inventaryRepository.UpdateInventary(inventaryMaster, id));
        }
        public async Task <int> UpdateInventary(InventaryMaster inventaryMaster, int id)
        {
            IDbTransaction trans = null;
            IDbConnection  conn  = _dBConnectionRepository.GetConnection;

            try
            {
                trans      = conn.BeginTransaction();
                parameters = new DynamicParameters();
                parameters.Add("@id", id);
                parameters.Add("@inventaryName", inventaryMaster.Name);
                parameters.Add("@inventaryDescription",
                               inventaryMaster.Description);
                parameters.Add("@inventaryQuantity", inventaryMaster.Quantity);
                parameters.Add("@inventaryPricePerUnit",
                               inventaryMaster.PricePerUnit);
                parameters.Add("@inventaryTotalPrice",
                               inventaryMaster.TotalPrice);
                parameters.Add("@inventaryCreatedOn",
                               inventaryMaster.CreatedOn);
                var data = await conn.ExecuteAsync("usp_Update_Inventary",
                                                   parameters, trans, null, commandType :
                                                   CommandType.StoredProcedure);

                if (data == 1)
                {
                    trans.Commit();
                    conn.Close();
                    return(data);
                }
                else
                {
                    trans.Rollback();
                    conn.Close();
                    return(0);
                }
            }
            catch (Exception ex)
            {
                trans.Rollback();
                throw ex;
            }
        }