Example #1
0
        public JsonResult Contribute(int agreementPrimaryId, int id, string address)
        {
            try
            {
                TransactionInfo transactionDetail;
                using (var ibisaRepository = new IBISARepository())
                {
                    transactionDetail = ibisaRepository.GetLatestTransactionDetailsByTrsanactionType(agreementPrimaryId, (int)EnumHelper.TransactionType.Contribution);
                }

                if (transactionDetail == null || transactionDetail.AgreementPrimaryId <= 0)
                {
                    return(Json(new { status = 0 }));
                }

                var     date            = transactionDetail.DateOfAgreement.AddMonths(1);
                var     amount          = transactionDetail.Amount;
                dynamic response        = PostRequest(string.Format("/contribute/{0}/{1}/{2}/{3}", id, address, ((DateTimeOffset)date).ToUnixTimeSeconds(), amount));
                var     jsonResponse    = (JObject.Parse(response)).data;
                var     transactionHash = jsonResponse.tx_hash;

                var transaction = new Transaction
                {
                    AgreementPrimaryId = agreementPrimaryId,
                    TransactionHash    = transactionHash,
                    DateOfAgreement    = date,
                    Amount             = amount,
                    TransactionDate    = DateTime.Now,
                    TransactionTypeId  = (int)EnumHelper.TransactionType.Contribution
                };

                var result = false;
                using (var ibisaRepository = new IBISARepository())
                {
                    result = ibisaRepository.SaveTransaction(transaction);
                }

                if (result)
                {
                    return(Json(response));
                }
            }
            catch (Exception ex)
            {
                ExceptionHelper.Log("Method: Contribute()", ex);
            }
            return(Json(new { status = 0 }));
        }