Beispiel #1
0
        /// <summary>
        /// Creates the fin op.
        /// </summary>
        /// <param name="finOpModel">The fin op model.</param>
        /// <returns></returns>
        public FinOpFromBankViewModel CreateFinOp(FinOpFromBankViewModel finOpModel)
        {
            try
            {
                var finOp = new FinOp
                {
                    AccFromId   = _unitOfWork.OrganizationAccountRepository.GetOrgAccountByName(finOpModel.OrgId, finOpModel.AccFromName).Id,
                    AccToId     = _unitOfWork.OrganizationAccountRepository.GetOrgAccountByName(finOpModel.OrgId, finOpModel.AccToName).Id,
                    TargetId    = _unitOfWork.TargetRepository.GetTargetByName(finOpModel.TargetName).Id,
                    Amount      = finOpModel.Amount,
                    Description = finOpModel.Description,
                    FinOpDate   = DateTime.Now
                };

                var finOpEntity = _unitOfWork.FinOpRepository.Create(finOp);
                _unitOfWork.SaveChanges();

                var createdFinOp = _unitOfWork.FinOpRepository.GetById(finOpEntity.Id);
                createdFinOp.OrgAccountTo.CurrentBalance += finOpModel.Amount;
                _unitOfWork.FinOpRepository.Update(createdFinOp);

                var bankImportDetail = _unitOfWork.BankImportDetailRepository.GetById(finOpModel.BankImportId);
                bankImportDetail.IsLooked = true;
                _unitOfWork.BankImportDetailRepository.ChangeBankImportState(bankImportDetail);

                _unitOfWork.SaveChanges();
                return(finOpModel);
            }
            catch (Exception ex)
            {
                throw new BusinessLogicException(ex.Message, ex);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Creates the fin op.
        /// </Summary>
        /// <param name="finOpModel">The fin op model.</param>
        /// <returns></returns>
        public FinOpFromBankViewModel CreateFinOp(FinOpFromBankViewModel finOpModel)
        {
            try
            {
                var bankImportDetail = _unitOfWork.BankImportDetailRepository.GetById(finOpModel.BankImportId);
                var finOp            = ConvertFinOpFromBankViewModelToFinOpViewModel(finOpModel);

                switch (finOp.FinOpType)
                {
                case Constants.FinOpTypeSpending:
                    CreateSpending(finOp);
                    break;

                case Constants.FinOpTypeIncome:
                    CreateIncome(finOp);
                    break;

                case Constants.FinOpTypeTransfer:
                    CreateTransfer(finOp);
                    break;
                }
                bankImportDetail.IsLooked = true;
                _unitOfWork.BankImportDetailRepository.ChangeBankImportState(bankImportDetail);
                _unitOfWork.SaveChanges();
                return(finOpModel);
            }
            catch (Exception ex)
            {
                throw new BusinessLogicException(ex.Message, ex);
            }
        }
Beispiel #3
0
 public IActionResult CreateFinOp([FromBody] FinOpFromBankViewModel finOpModel)
 {
     if (finOpModel == null)
     {
         return(BadRequest());
     }
     return(Ok(_service.CreateFinOp(finOpModel)));
 }
Beispiel #4
0
        private FinOpViewModel ConvertFinOpFromBankViewModelToFinOpViewModel(FinOpFromBankViewModel finOpModel)
        {
            var finOp = new FinOpViewModel
            {
                Amount      = finOpModel.Amount,
                AccFromId   = finOpModel.CardFromId.GetValueOrDefault(0),
                AccToId     = finOpModel.CardToId.GetValueOrDefault(0),
                Description = finOpModel.Description,
                Date        = finOpModel.FinOpDate,
                FinOpType   = finOpModel.FinOpType,
                UserId      = finOpModel.UserId,
                OrgId       = finOpModel.OrgId,
                TargetId    = finOpModel.TargetId
            };

            return(finOp);
        }
Beispiel #5
0
 public FinOpFromBankViewModel CreateFinOp([FromBody] FinOpFromBankViewModel finOpModel)
 {
     return(this._service.CreateFinOp(finOpModel));
 }