public async Task <IActionResult> AddEditSell(int?id, TransactionForSellViewModel transactionForSellViewModel, string submit)
        {
            string message = string.Empty;

            try
            {
                if (ModelState.IsValid)
                {
                    bool isNew = !id.HasValue;

                    if (isNew)
                    {
                        var transactionSellToCreate = _mapper.Map <CustomerTransaction>(transactionForSellViewModel);
                        await _uow.CustomerTransactions.AddAsync(transactionSellToCreate);

                        await _uow.SaveAsync();

                        TempData["Message"] = "Saved Successfully";
                        TempData["Status"]  = "success";
                    }
                    else
                    {
                        var transactionSellToUpdate = _mapper.Map <CustomerTransaction>(transactionForSellViewModel);
                        _uow.CustomerTransactions.Update(transactionSellToUpdate);
                        _uow.Save();
                        TempData["Message"] = "Updated Successfully";
                        TempData["Status"]  = "success";
                    }
                }
            }
            catch (DbUpdateConcurrencyException ce)
            {
                _logger.LogError(ce.Message, id);
                TempData["Message"] = "Failed to update for concurrency";
                TempData["Status"]  = "danger";
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex.StackTrace);
                TempData["Message"] = "Failed to save or update";
                TempData["Status"]  = "danger";
            }

            return(RedirectToAction(nameof(AddEditSell)));
        }
        public async Task <IActionResult> AddEditSell(int?id)
        {
            TransactionForSellViewModel transactionForSellViewModel = new TransactionForSellViewModel();

            if (id.HasValue)
            {
                var sellTransactionFromRepo = await _uow.CustomerTransactions.GetByIdAsync(id.Value);

                if (sellTransactionFromRepo == null)
                {
                    return(NotFound());
                }

                transactionForSellViewModel = _mapper.Map <TransactionForSellViewModel>(sellTransactionFromRepo);
                transactionForSellViewModel.CustomerSelectList = new SelectList(await _uow.Customers.GetAllActiveCustomerFullNameAsync(), "CustomerId", "FullName", transactionForSellViewModel.CustomerId);
            }
            else
            {
                transactionForSellViewModel.CustomerSelectList = new SelectList(await _uow.Customers.GetAllActiveCustomerFullNameAsync(), "CustomerId", "FullName");
            }

            return(View(transactionForSellViewModel));
        }