Exemple #1
0
        private async Task ProcessMembershipFee(string RRR, string orderID)
        {
            MembershipFee membershipRegistration;

            if (string.IsNullOrEmpty(orderID))
            {
                membershipRegistration = await _db.MembershipFee.AsNoTracking()
                                         .Where(x => x.ReferenceNo.Equals(RRR))
                                         .FirstOrDefaultAsync();
            }
            else
            {
                membershipRegistration = await _db.MembershipFee.AsNoTracking()
                                         .Where(x => x.OrderId.Equals(orderID.Trim()))
                                         .FirstOrDefaultAsync();
            }
            if (membershipRegistration != null)
            {
                if (membershipRegistration.Status.Equals(true))
                {
                }
                else
                {
                    var log = await _db.RemitaPaymentLog.AsNoTracking()
                              .Where(x => x.OrderId.Equals(membershipRegistration.OrderId))
                              .FirstOrDefaultAsync();

                    var hashed = _query.HashRemitedValidate(membershipRegistration.OrderId, RemitaConfigParam.APIKEY,
                                                            RemitaConfigParam.MERCHANTID);
                    string url = RemitaConfigParam.CHECKSTATUSURL + "/" + RemitaConfigParam.MERCHANTID + "/" +
                                 orderID + "/" + hashed + "/" + "orderstatus.reg";
                    string         jsondata = new WebClient().DownloadString(url);
                    RemitaResponse result   = JsonConvert.DeserializeObject <RemitaResponse>(jsondata);

                    if (result.Status.Equals("00") || result.Status.Equals("01"))
                    {
                        membershipRegistration.Status           = true;
                        membershipRegistration.PaymentStatus    = result.Message;
                        membershipRegistration.ReferenceNo      = result.Rrr;
                        _db.Entry(membershipRegistration).State = EntityState.Modified;

                        log.Rrr                = result.Rrr;
                        log.StatusCode         = result.Status;
                        log.TransactionMessage = result.Message;
                        _db.Entry(log).State   = EntityState.Modified;
                        await _db.SaveChangesAsync();
                    }
                    else
                    {
                        membershipRegistration.Status           = false;
                        membershipRegistration.PaymentStatus    = result.Message;
                        membershipRegistration.ReferenceNo      = result.Rrr;
                        _db.Entry(membershipRegistration).State = EntityState.Modified;

                        log.Rrr                = result.Rrr;
                        log.StatusCode         = result.Status;
                        log.TransactionMessage = result.Message;
                        _db.Entry(log).State   = EntityState.Modified;
                        await _db.SaveChangesAsync();
                    }
                }
            }
        }