/// <summary> /// Get Product /// </summary> /// <param name="accountId"></param> /// <param name="productId"></param> /// <returns></returns> public async Task <ResponseModel <ProductDataTransformation> > GetProduct(int accountId, int productId) { ResponseModel <ProductDataTransformation> returnResponse = new ResponseModel <ProductDataTransformation>(); ProductDataTransformation productDataTransformation = new ProductDataTransformation(); try { _inventoryManagementDataService.OpenConnection(_connectionStrings.PrimaryDatabaseConnectionString); Product product = await _inventoryManagementDataService.GetProduct(accountId, productId); if (product == null) { returnResponse.ReturnStatus = false; returnResponse.ReturnMessage.Add("Product Id not found."); } else { productDataTransformation.AccountId = product.AccountId; productDataTransformation.ProductId = product.ProductId; productDataTransformation.ProductNumber = product.ProductNumber; productDataTransformation.Description = product.Description; productDataTransformation.AverageCost = product.AverageCost; productDataTransformation.BinLocation = product.BinLocation; productDataTransformation.CommittedQuantity = product.CommittedQuantity; productDataTransformation.OnHandQuantity = product.OnHandQuantity; productDataTransformation.OnOrderQuantity = product.OnOrderQuantity; productDataTransformation.UnitPrice = product.UnitPrice; returnResponse.ReturnStatus = true; } } catch (Exception ex) { returnResponse.ReturnStatus = false; returnResponse.ReturnMessage.Add(ex.Message); } finally { _inventoryManagementDataService.CloseConnection(); } returnResponse.Entity = productDataTransformation; return(returnResponse); }
public async Task <ResponseModel <List <ProductDataTransformation> > > GetProduct(string searchText, int currentPageNumber, int pageSize, string sortExpression, string sortDirection) { ResponseModel <List <ProductDataTransformation> > returnResponse = new ResponseModel <List <ProductDataTransformation> >(); List <ProductDataTransformation> salesOrders = new List <ProductDataTransformation>(); try { _productManagementDataService.OpenConnection(_connectionStrings.PrimaryDatabaseConnectionString); DataGridPagingInformation dataGridPagingInformation = new DataGridPagingInformation(); dataGridPagingInformation.CurrentPageNumber = currentPageNumber; dataGridPagingInformation.PageSize = pageSize; dataGridPagingInformation.SortDirection = sortDirection; dataGridPagingInformation.SortExpression = sortExpression; List <Product> productsList = await _productManagementDataService.GetProducts(searchText, searchText, dataGridPagingInformation); foreach (Product product in productsList) { ProductDataTransformation productDataTransformation = new ProductDataTransformation(); productDataTransformation = _mapper.Map <ProductDataTransformation>(product); salesOrders.Add(productDataTransformation); } returnResponse.Entity = salesOrders; returnResponse.TotalRows = dataGridPagingInformation.TotalRows; returnResponse.TotalPages = dataGridPagingInformation.TotalPages; returnResponse.ReturnStatus = true; } catch (Exception ex) { _productManagementDataService.RollbackTransaction(); returnResponse.ReturnStatus = false; returnResponse.ReturnMessage.Add(ex.Message); } finally { _productManagementDataService.CloseConnection(); } return(returnResponse); }
/// <summary> /// Get Product /// </summary> /// <param name="accountId"></param> /// <param name="productNumber"></param> /// <returns></returns> public async Task <ResponseModel <ProductDataTransformation> > GetProduct(int accountId, string productNumber) { ResponseModel <ProductDataTransformation> returnResponse = new ResponseModel <ProductDataTransformation>(); ProductDataTransformation productDataTransformation = new ProductDataTransformation(); try { _purchaseOrderManagementDataService.OpenConnection(_connectionStrings.PrimaryDatabaseConnectionString); Product product = await _purchaseOrderManagementDataService.GetProduct(accountId, productNumber); if (product == null) { returnResponse.ReturnStatus = false; returnResponse.ReturnMessage.Add("Product Number not found."); } else { productDataTransformation.AccountId = product.AccountId; productDataTransformation.ProductId = product.ProductId; productDataTransformation.ProductMasterId = product.ProductMasterId; productDataTransformation.ProductNumber = product.ProductNumber; productDataTransformation.Description = product.Description; returnResponse.ReturnStatus = true; } } catch (Exception ex) { returnResponse.ReturnStatus = false; returnResponse.ReturnMessage.Add(ex.Message); } finally { _purchaseOrderManagementDataService.CloseConnection(); } returnResponse.Entity = productDataTransformation; return(returnResponse); }
/// <summary> /// Update Product /// </summary> /// <param name="productDataTransformation"></param> /// <returns></returns> public async Task <ResponseModel <ProductDataTransformation> > UpdateProduct(ProductDataTransformation productDataTransformation) { ResponseModel <ProductDataTransformation> returnResponse = new ResponseModel <ProductDataTransformation>(); Product product = new Product(); try { _inventoryManagementDataService.OpenConnection(_connectionStrings.PrimaryDatabaseConnectionString); _inventoryManagementDataService.BeginTransaction((int)IsolationLevel.Serializable); ProductBusinessRules <ProductDataTransformation> productBusinessRules = new ProductBusinessRules <ProductDataTransformation>(productDataTransformation, _inventoryManagementDataService); ValidationResult validationResult = await productBusinessRules.Validate(); if (validationResult.ValidationStatus == false) { _inventoryManagementDataService.RollbackTransaction(); returnResponse.ReturnMessage = validationResult.ValidationMessages; returnResponse.ReturnStatus = validationResult.ValidationStatus; return(returnResponse); } int productId = productDataTransformation.ProductId; product = await _inventoryManagementDataService.GetProductInformationForUpdate(productId); product.ProductNumber = productDataTransformation.ProductNumber; product.Description = productDataTransformation.Description; product.UnitPrice = productDataTransformation.UnitPrice; product.BinLocation = productDataTransformation.BinLocation; await _inventoryManagementDataService.UpdateProduct(product); TransactionQueueOutbound transactionQueue = new TransactionQueueOutbound(); transactionQueue.Payload = GenerateProductUpdatePayload(product); transactionQueue.TransactionCode = TransactionQueueTypes.ProductUpdated; transactionQueue.ExchangeName = MessageQueueExchanges.InventoryManagement; await _inventoryManagementDataService.CreateOutboundTransactionQueue(transactionQueue); //await _inventoryManagementDataService.UpdateDatabase(); _inventoryManagementDataService.CommitTransaction(); returnResponse.ReturnStatus = true; } catch (Exception ex) { _inventoryManagementDataService.RollbackTransaction(); returnResponse.ReturnStatus = false; returnResponse.ReturnMessage.Add(ex.Message); } finally { _inventoryManagementDataService.CloseConnection(); } returnResponse.Entity = productDataTransformation; return(returnResponse); }