Example #1
0
        static void Main()
        {
            Account myAccount = CreateAccount();

            Account[] payeeList = CreatePayeeList();

            DisplayPayeeList(payeeList);
            Account otherAccount = ChoosePayee(payeeList);

            //Account otherAccount = CreateAccount();
            decimal amountToTransfer = GetAmount();

            bool debitStatus  = myAccount.DebitAmount(amountToTransfer);
            bool creditStatus = otherAccount.CreditAmount(amountToTransfer);

            if (debitStatus && creditStatus)
            {
                Transcation.Commit(myAccount, otherAccount, amountToTransfer);
                Console.WriteLine("amount has been transferred sucessfully");
            }
            else
            {
                Transcation.Commit(myAccount, otherAccount, amountToTransfer);
                Console.WriteLine("amount transfer failed...");
            }
        }
Example #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            Transcation transcation = db.Transcations.Find(id);

            db.Transcations.Remove(transcation);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #3
0
 public ActionResult Edit([Bind(Include = "Id,PayeeAccountNo,BenificiaryAccNo,ChequeNo,PayeeName,Amount,BankName,IFSC")] Transcation transcation)
 {
     if (ModelState.IsValid)
     {
         db.Entry(transcation).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(transcation));
 }
Example #4
0
        public IList <string> InvalidTransactions(string[] transactions)
        {
            IList <string>     result  = new List <string>();
            List <Transcation> ts      = new List <Transcation>();
            List <Transcation> invalid = new List <Transcation>();

            foreach (string transaction in transactions)
            {
                Transcation t = new Transcation(transaction);
                ts.Add(t);
            }
            ts.Sort((a, b) => { return(a.Time > b.Time ? 1 : -1); });
            for (int i = 0; i < ts.Count; i++)
            {
                if (ts[i].Amount > 1000)
                {
                    invalid.Add(ts[i]);
                    continue;
                }
                if (i > 0)
                {
                    bool isThisInvalid = false;
                    for (int j = i - 1; j >= 0; j--)
                    {
                        if (ts[j].City != ts[i].City && ts[j].Time + 60 > ts[i].Time && ts[j].Name == ts[i].Name)
                        {
                            invalid.Add(ts[i]);
                            isThisInvalid = true;
                            break;
                        }
                    }
                    if (isThisInvalid)
                    {
                        continue;
                    }
                }
                if (i < ts.Count - 1)
                {
                    for (int j = i + 1; j < ts.Count; j++)
                    {
                        if (ts[j].City != ts[i].City && ts[i].Time + 60 > ts[j].Time && ts[j].Name == ts[i].Name)
                        {
                            invalid.Add(ts[i]);
                            break;
                        }
                    }
                }
            }
            foreach (Transcation transcation in invalid)
            {
                result.Add(transcation.ToString());
            }
            return(result);
        }
Example #5
0
        public ActionResult Create([Bind(Include = "Id,PayeeAccountNo,BenificiaryAccNo,ChequeNo,PayeeName,Amount,BankName,IFSC")] Transcation transcation)
        {
            if (ModelState.IsValid)
            {
                db.Transcations.Add(transcation);
                db.SaveChanges();
                return(Content("<script language='javascript' type='text/javascript'>alert('Your Transcation created Successfully.!');" +
                               "window.location='Index';</script>"));
            }

            return(View(transcation));
        }
Example #6
0
        public async Task <Transcation> CreateCharge(ChargeDetails details)
        {
            if (details.Taxes == null)
            {
                _logger?.LogInformation($"charge details are missing taxes, calcuulating default default");
                details.Taxes = await CalculateTax(details);
            }

            details.TotalAmmount = details.Items.Sum(item => item.LineTotal) + details.Taxes.Sum(tax => tax.Amount);

            if (_configuration.Testing)
            {
                var result = new Transcation()
                {
                    ID        = Guid.NewGuid(),
                    ChargeID  = details.ID,
                    Amount    = details.TotalAmmount,
                    Status    = TranscationStatus.Completed,
                    Timestamp = DateTime.UtcNow
                };

                return(result);
            }
            else if (!string.IsNullOrEmpty(_configuration.FlakyServerBaseUrl))
            {
                if (details.PaymentDetails == null)
                {
                    throw new InvalidOperationException("Can't complete charge without payment details");
                }

                _logger?.LogInformation($"about to complete charge ID {details.ID}");

                var chargeClient = new Flaky.SDK.Client.ChargeClient()
                {
                    BaseUrl = _configuration.FlakyServerBaseUrl
                };

                var key           = Newtonsoft.Json.JsonConvert.DeserializeObject <EncryptionDetails>(await chargeClient.GetPublicKeyAsync());
                var encryption    = Encryption.CreateEncryption(key);
                var encodedCharge = encryption.EncryptToBase64(Newtonsoft.Json.JsonConvert.SerializeObject(details));
                var transcation   = await chargeClient.CompleteAsync(encodedCharge);

                _logger?.LogInformation($"got new transcation from server {transcation.Id} for charge {transcation.ChargeID}");

                return(_mapper.Map <Transcation>(transcation));
            }
            else
            {
                throw new MissingConfiguration("Please set configuration as Testing or set ServerBaseUrl");
            }
        }
Example #7
0
        // GET: Transcation/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Transcation transcation = db.Transcations.Find(id);

            if (transcation == null)
            {
                return(HttpNotFound());
            }
            return(View(transcation));
        }
        public ActionResult Account_summary(Transcation model)
        {
            MC.Transcations.Add(model);
            if (model.PayeeAccountNo == 186745004532)
            {
                return(RedirectToAction("user1"));
            }
            if (model.PayeeAccountNo == 100000002)
            {
                return(RedirectToAction("user2"));
            }
            if (model.PayeeAccountNo == 100000003)
            {
                return(RedirectToAction("user3"));
            }

            return(View());
        }
Example #9
0
        public ActionResult <Transcation> Complete([FromBody] string encodedCharge)
        {
            var charge = EncryptionService.Dercypt <ChargeDetails>(encodedCharge);

            if (charge.Items == null)
            {
                return(BadRequest("items must be set"));
            }

            foreach (var item in charge.Items)
            {
                if (item.LineTotal < 0)
                {
                    return(BadRequest("Item line can't be negative"));
                }
            }

            if (charge.Taxes == null)
            {
                return(BadRequest("taxes must be set"));
            }

            foreach (var tax in charge.Taxes)
            {
                if (tax.Amount <= 0)
                {
                    return(BadRequest("Tax line can't be zero"));
                }
            }

            var result = new Transcation()
            {
                ID        = Guid.NewGuid(),
                ChargeID  = charge.ID,
                Amount    = charge.TotalAmmount,
                Status    = TranscationStatus.Completed,
                Timestamp = DateTime.UtcNow
            };

            return(result);
        }
Example #10
0
        public int AddTranscation(TranscationEnties te)
        {
            db = new MphasisBankEntities();
            var res = db.SavingsAccounts.Where(t => t.Accountid == te.Accountid);

            if (res.Count() > 0)
            {
                if (te.TranscationType == "Withdraw")
                {
                    foreach (var item in res)
                    {
                        if (item.Balance < 0 || item.Balance < te.Balance)
                        {
                            d = 0;
                        }
                        else
                        {
                            Transcation t = new Transcation()
                            {
                                Accountid       = te.Accountid,
                                TranscationType = te.TranscationType,
                                TranscationDate = DateTime.Now,
                                Balance         = te.Balance
                            };
                            db.Transcations.Add(t);
                            item.Balance -= te.Balance;
                            d             = 1;
                        }
                    }
                    if (d == 1)
                    {
                        SavingsAccount sa = new SavingsAccount()
                        {
                            Balance = te.Balance
                        };
                        db.SaveChanges();
                    }
                    return(1);
                }
                else if (te.TranscationType == "Deposite")
                {
                    foreach (var item in res)
                    {
                        if (item.Balance < 0 || item.Balance < te.Balance)
                        {
                            d = 0;
                        }
                        else
                        {
                            Transcation t = new Transcation()
                            {
                                Accountid       = te.Accountid,
                                TranscationType = te.TranscationType,
                                TranscationDate = DateTime.Now,
                                Balance         = te.Balance
                            };
                            db.Transcations.Add(t);
                            item.Balance += te.Balance;
                            d             = 1;
                        }
                    }
                    if (d == 1)
                    {
                        SavingsAccount sa = new SavingsAccount()
                        {
                            Balance = te.Balance
                        };
                        db.SaveChanges();
                    }
                    return(1);
                }
                else
                {
                    return(0);
                }
            }
            else
            {
                return(0);
            }
        }