public override Response Add(Dto.Transaction dto)
        {
            var resp = _customerBusiness.Get(dto.CustomerId);

            if (resp.Type != ResponseType.Success)
            {
                return(resp);
            }

            var customer = resp.Data;

            SetCustomerBalance(customer, dto.IsDebt, dto.Amount);

            customer.User = null; // prevent updating users table

            _customerBusiness.OwnerId = OwnerId;

            using (var tx = Uow.BeginTransaction())
            {
                //update customer's remaining balance
                _customerBusiness.Edit(customer);

                base.Add(dto);

                tx.Commit();
            }

            _dashboardBusiness.RefreshUserCache(OwnerId);

            return(new Response
            {
                Type = ResponseType.Success
            });
        }