예제 #1
0
 public bool AddUpdateDepositBankClosure(deposit_bankclosure entity)
 {
     if (entity.BankClosureId > 0)
     {
         var item = _dataContext.deposit_bankclosure.Find(entity.BankClosureId);
         _dataContext.Entry(item).CurrentValues.SetValues(entity);
     }
     else
     {
         _dataContext.deposit_bankclosure.Add(entity);
     }
     return(_dataContext.SaveChanges() > 0);
 }
        public async Task <Deposit_bankClosureRegRespObj> Handle(AddUpdateBankClosureCommand request, CancellationToken cancellationToken)
        {
            try
            {
                deposit_bankclosure currentItem = null;
                if (request.BankClosureId > 0)
                {
                    currentItem = _repo.GetDepositBankClosure(request.BankClosureId);
                    if (currentItem != null)
                    {
                        if (request.AccountName.Trim().ToLower() == currentItem.AccountName.Trim().ToLower())
                        {
                            return(new Deposit_bankClosureRegRespObj
                            {
                                Status = new APIResponseStatus
                                {
                                    IsSuccessful = false,
                                    Message = new APIResponseMessage
                                    {
                                        FriendlyMessage = "This item already exists",
                                    }
                                }
                            });
                        }
                    }
                }

                var user = await _serverRequest.UserDataAsync();

                var bnkClosure = new deposit_bankclosure
                {
                    BankClosureId    = request.BankClosureId,
                    Structure        = request.Structure,
                    SubStructure     = request.SubStructure,
                    AccountName      = request.AccountName,
                    AccountNumber    = request.AccountNumber,
                    Status           = request.Status,
                    AccountBalance   = request.AccountBalance,
                    Currency         = request.Currency,
                    ClosingDate      = request.ClosingDate,
                    Reason           = request.Reason,
                    Charges          = request.Charges,
                    FinalSettlement  = request.FinalSettlement,
                    Beneficiary      = request.Beneficiary,
                    ModeOfSettlement = request.ModeOfSettlement,
                    TransferAccount  = request.TransferAccount,
                    ApproverName     = request.ApproverName,
                    ApproverComment  = request.ApproverComment,
                    Active           = true,
                    Deleted          = false,
                    CreatedBy        = user.UserName,
                    CreatedOn        = DateTime.Now,
                };
                if (request.BankClosureId > 0)
                {
                    bnkClosure.UpdatedBy = user.UserName;
                    bnkClosure.UpdatedOn = DateTime.Now;
                    bnkClosure.CreatedBy = currentItem.CreatedBy;
                    bnkClosure.CreatedOn = currentItem.CreatedOn;
                }
                var isDone      = _repo.AddUpdateDepositBankClosure(bnkClosure);
                var actionTaken = request.BankClosureId > 0 ? "updated" : "added";
                if (isDone)
                {
                    return(new Deposit_bankClosureRegRespObj
                    {
                        Status = new APIResponseStatus
                        {
                            IsSuccessful = false,
                            Message = new APIResponseMessage
                            {
                                FriendlyMessage = $"Successfully {actionTaken}",
                            }
                        }
                    });
                }
                return(new Deposit_bankClosureRegRespObj
                {
                    Status = new APIResponseStatus
                    {
                        IsSuccessful = false,
                        Message = new APIResponseMessage
                        {
                            FriendlyMessage = "Could not process request",
                        }
                    }
                });
            }
            catch (Exception ex)
            {
                #region Log error to file
                var errorCode = ErrorID.Generate(4);
                _logger.Error($"ErrorID : AddUpdateBankClosureCommandHandler{errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new Deposit_bankClosureRegRespObj
                {
                    Status = new APIResponseStatus
                    {
                        IsSuccessful = false,
                        Message = new APIResponseMessage
                        {
                            FriendlyMessage = "Error occured!! Unable to process item",
                            MessageId = errorCode,
                            TechnicalMessage = $"ErrorID : AddUpdateBankClosureCommandHandler{errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"
                        }
                    }
                });

                #endregion
            }
        }