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
            });
        }
示例#2
0
        private ApiResponse Update(int id, UpdateCustomerViewModel model)
        {
            var apiResp = new ApiResponse
            {
                Type = ResponseType.Fail
            };

            var customer = new Dto.Customer
            {
                Id = id,
                AuthorizedPersonName = model.AuthorizedPersonName,
                PhoneNumber          = model.PhoneNumber,
                Title  = model.Title,
                UserId = GetUserId().Value
            };

            _customerBusiness.OwnerId = customer.UserId;

            var resp = _customerBusiness.Edit(customer);

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

            apiResp.Type = ResponseType.Success;
            return(apiResp);
        }