示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task UpdateCreditCardEntryDocumentUnit(CreditCardEntryDocumentInputUnit input)
        {
            var creditEntryTransactions = await _creditCardUnitRepository.GetAsync(input.AccountingDocumentId);

            Mapper.Map(input, creditEntryTransactions);
            await _chargeEntryDocumentUnitManager.UpdateAsync(creditEntryTransactions);

            if (!ReferenceEquals(input.CreditCardEntryDetailList, null))
            {
                //Bulk CRUD operations of CreditCardEntryDetailList
                foreach (var creditCardEntryDocumentDetail in input.CreditCardEntryDetailList)
                {
                    if (creditCardEntryDocumentDetail.AccountingItemId == 0)
                    {
                        creditCardEntryDocumentDetail.AccountingDocumentId = input.AccountingDocumentId;
                        var creditCardEntryDocumentDetailUnit =
                            creditCardEntryDocumentDetail.MapTo <ChargeEntryDocumentDetailUnit>();
                        await _chargeEntryDocumentDetailUnitManager.CreateAsync(creditCardEntryDocumentDetailUnit);
                    }
                    else if (creditCardEntryDocumentDetail.AccountingItemId > 0)
                    {
                        var creditcardDocumentDetailUnit = await _creditCardDetailUnitRepository.GetAsync(
                            creditCardEntryDocumentDetail.AccountingItemId);

                        Mapper.Map(creditCardEntryDocumentDetail, creditcardDocumentDetailUnit);
                        await _chargeEntryDocumentDetailUnitManager.UpdateAsync(creditcardDocumentDetailUnit);
                    }
                    else
                    {
                        IdInput <long> idInput = new IdInput <long>()
                        {
                            Id = (creditCardEntryDocumentDetail.AccountingItemId * (-1))
                        };
                        await _chargeEntryDocumentDetailUnitManager.DeleteAsync(idInput);
                    }
                }
            }
            await CurrentUnitOfWork.SaveChangesAsync();
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <IdOutputDto <long> > CreateCreditCardEntryDocumentUnit(CreditCardEntryDocumentInputUnit input)
        {
            var creditEntryTransactions = input.MapTo <ChargeEntryDocumentUnit>();
            IdOutputDto <long> response = new IdOutputDto <long>
            {
                Id = await _chargeEntryDocumentUnitManager.CreateAsync(creditEntryTransactions)
            };

            //Null Checking of CreditCardEntryDetailList
            if (!ReferenceEquals(input.CreditCardEntryDetailList, null))
            {
                //Bulk Insertion of creditCardEntryDocumentDetail
                foreach (var creditCardEntryDocumentDetail in input.CreditCardEntryDetailList)
                {
                    creditCardEntryDocumentDetail.AccountingDocumentId = response.Id;
                    var invoiceEntryDocumentDetailUnit = creditCardEntryDocumentDetail.MapTo <ChargeEntryDocumentDetailUnit>();
                    await _chargeEntryDocumentDetailUnitManager.CreateAsync(invoiceEntryDocumentDetailUnit);
                }
            }
            await CurrentUnitOfWork.SaveChangesAsync();

            return(response);
        }