public string deposit([FromBody] dwacc value)
        {
            GetListRep ob = new GetListRep();
            var        customeraccounts = ob.GetCustomeraccountsList();

            string        data    = JsonConvert.SerializeObject(value);
            StringContent content = new StringContent(data, Encoding.UTF8, "application/json");

            HttpResponseMessage response = client.PostAsync(client.BaseAddress + "/Transaction/deposit/", content).Result;

            if (response.IsSuccessStatusCode)
            {
                _log4net.Info(" Amount Deposited ");
                string data1 = response.Content.ReadAsStringAsync().Result;
                if (data1 == "Success")
                {
                    if (value.AccountId % 2 == 0)
                    {
                        var sa = savingsAccounts.Find(a => a.SAId == value.AccountId);
                        sa.SBal = sa.SBal + value.Balance;
                        return("Deposited Successfully.New Account Rs." + sa.SBal + ".00");
                    }
                    var ca = currentAccounts.Find(a => a.CAId == value.AccountId);
                    ca.CBal = ca.CBal + value.Balance;
                    return("Deposited Successfully.New Account Rs." + ca.CBal + ".00");
                }
                return("Deposition Failed");
            }
            return("Link Failure");
        }
        public customeraccount createAccount([FromBody] Customer customer)
        {
            GetListRep ob = new GetListRep();
            var        customeraccounts = ob.GetCustomeraccountsList();

            _log4net.Info("Account Created");
            customeraccount a = new customeraccount
            {
                custId = customer.id,
                CAId   = (customer.id * 100) + acid,
                SAId   = (customer.id * 100) + (acid + 1)
            };

            customeraccounts.Add(a);
            var            cust = customeraccounts.Find(c => c.custId == customer.id);
            CurrentAccount ca   = new CurrentAccount
            {
                CAId = (customer.id * 100) + acid,
                CBal = 0.00
            };
            SavingsAccount sa = new SavingsAccount
            {
                SAId = (customer.id * 100) + (acid + 1),
                SBal = 0.00
            };

            return(cust);
        }
        public IEnumerable <Statement> getAccountStatement(int AccountId, int from_date, int to_date)
        {
            _log4net.Info("Account Statement Shown");
            GetListRep ob = new GetListRep();
            var        ac = ob.GetAccountStatementsList();

            if (from_date != 0 || to_date != 0)
            {
                var accs = ac.Find(a => a.AccId == AccountId);
                var s    = accs.Statements;
                foreach (var n in s)
                {
                    if (n.date >= from_date && n.date <= to_date)
                    {
                        return(s);
                    }
                }
            }
            var accs1 = ac.Find(a => a.AccId == AccountId);
            var s1    = accs1.Statements;

            foreach (var n in s1)
            {
                if (n.date > 01092020 && n.date < 30092020)
                {
                    return(s1);
                }
            }
            return(null);
        }
        public string getCustomerAccounts(int id)
        {
            GetListRep ob = new GetListRep();
            var        customeraccounts = ob.GetCustomeraccountsList();

            _log4net.Info(" Got Customer Account");
            var a  = customeraccounts.Find(c => c.custId == id);
            var ca = currentAccounts.Find(cac => cac.CAId == a.CAId);
            var sa = savingsAccounts.Find(sac => sac.SAId == a.SAId);

            return("Current Account(" + ca.CAId.ToString() + "):: Rs." + ca.CBal.ToString() + ".00\n" + "Savings Account(" + sa.SAId.ToString() + "):: Rs." + sa.SBal.ToString() + ".00");
        }
        public string getAccount(int id)
        {
            GetListRep ob = new GetListRep();
            var        customeraccounts = ob.GetCustomeraccountsList();

            _log4net.Info(" Getting Account Info");
            if (id % 2 != 0)
            {
                var ca = currentAccounts.Find(a => a.CAId == id);
                return("Current Account(" + ca.CAId + "):: Rs." + ca.CBal + ".00");
            }

            var sa = savingsAccounts.Find(a => a.SAId == id);

            return("Savings Account(" + sa.SAId + "):: Rs." + sa.SBal + ".00");
        }
        public string transfer([FromBody] transfers value)
        {
            GetListRep ob = new GetListRep();
            var        customeraccounts = ob.GetCustomeraccountsList();
            //    var currentAccounts = ob.GetCurrentAccountsList();
            //  var savingsAccounts = ob.GetSavingsAccountsList();
            double        sb = 0.0, db = 0.0;
            string        data    = JsonConvert.SerializeObject(value);
            StringContent content = new StringContent(data, Encoding.UTF8, "application/json");

            HttpResponseMessage response = client.PostAsync(client.BaseAddress + "/Transaction/transfer/", content).Result;

            if (response.IsSuccessStatusCode)
            {
                _log4net.Info("Amount Transferred");
                string data1 = response.Content.ReadAsStringAsync().Result;
                if (data1 == "No Warning")
                {
                    if (value.source_accid % 2 == 0)
                    {
                        var sas = savingsAccounts.Find(a => a.SAId == value.source_accid);
                        sas.SBal = sas.SBal - value.amount;
                        if (sas.SBal >= 0)
                        {
                            sb = sas.SBal;
                        }
                        else
                        {
                            sas.SBal = sas.SBal + value.amount;
                            return("Insufficient Fund");
                        }
                    }
                    else
                    {
                        var cas = currentAccounts.Find(a => a.CAId == value.source_accid);
                        cas.CBal = cas.CBal - value.amount;
                        if (cas.CBal >= 0)
                        {
                            sb = cas.CBal;
                        }
                        else
                        {
                            cas.CBal = cas.CBal + value.amount;
                            return("Insufficient Fund");
                        }
                    }
                    if (value.destination_accid % 2 == 0)
                    {
                        var sa = savingsAccounts.Find(a => a.SAId == value.destination_accid);
                        sa.SBal = sa.SBal + value.amount;
                        db      = sa.SBal;
                    }
                    else
                    {
                        var ca = currentAccounts.Find(a => a.CAId == value.destination_accid);
                        ca.CBal = ca.CBal + value.amount;
                        db      = ca.CBal;
                    }
                    return("Sender Account Balance Rs." + sb + ".00\n" + "Receiver Account Balance Rs." + db + ".00");
                }
                else
                {
                    if (value.source_accid % 2 == 0)
                    {
                        var sas = savingsAccounts.Find(a => a.SAId == value.source_accid);
                        sas.SBal = sas.SBal - value.amount;
                        if (sas.SBal >= 0)
                        {
                            sb = sas.SBal;
                        }
                        else
                        {
                            sas.SBal = sas.SBal + value.amount;
                            return("Insufficient Fund");
                        }
                    }
                    else
                    {
                        var cas = currentAccounts.Find(a => a.CAId == value.source_accid);
                        cas.CBal = cas.CBal - value.amount;
                        if (cas.CBal >= 0)
                        {
                            sb = cas.CBal;
                        }
                        else
                        {
                            cas.CBal = cas.CBal + value.amount;
                            return("Insufficient Fund");
                        }
                    }
                    if (value.destination_accid % 2 == 0)
                    {
                        var sa = savingsAccounts.Find(a => a.SAId == value.destination_accid);
                        sa.SBal = sa.SBal + value.amount;
                        db      = sa.SBal;
                    }
                    else
                    {
                        var ca = currentAccounts.Find(a => a.CAId == value.destination_accid);
                        ca.CBal = ca.CBal + value.amount;
                        db      = ca.CBal;
                    }
                    return("Sender Account Balance Rs." + sb + ".00\n" + "Receiver Account Balance Rs." + db + ".00\n but service charge will be deducted at the end of month from your account");
                }
            }
            return("Link Failure");
        }
        public string withdraw([FromBody] dwacc value)
        {
            GetListRep ob = new GetListRep();
            var        customeraccounts = ob.GetCustomeraccountsList();

            string        data    = JsonConvert.SerializeObject(value);
            StringContent content = new StringContent(data, Encoding.UTF8, "application/json");

            HttpResponseMessage response = client.PostAsync(client.BaseAddress + "/Transaction/withdraw/", content).Result;

            if (response.IsSuccessStatusCode)
            {
                _log4net.Info("Amount Withdrawn");
                string data1 = response.Content.ReadAsStringAsync().Result;
                if (data1 == "No Warning")
                {
                    if (value.AccountId % 2 == 0)
                    {
                        var sa = savingsAccounts.Find(a => a.SAId == value.AccountId);
                        sa.SBal = sa.SBal - value.Balance;
                        if (sa.SBal >= 0)
                        {
                            return("Withdrawn Successfully.New Balance Rs." + sa.SBal + ".00");
                        }
                        else
                        {
                            sa.SBal = sa.SBal + value.Balance;
                            return("Insufficient Fund");
                        }
                    }

                    var car = currentAccounts.Find(a => a.CAId == value.AccountId);
                    car.CBal = car.CBal - value.Balance;
                    if (car.CBal >= 0)
                    {
                        return("Withdrawn Successfully.New Balance Rs." + car.CBal + ".00");
                    }
                    else
                    {
                        car.CBal = car.CBal + value.Balance;
                        return("Insufficient Fund");
                    }
                }
                if (value.AccountId % 2 == 0)
                {
                    var sa = savingsAccounts.Find(a => a.SAId == value.AccountId);
                    sa.SBal = sa.SBal - value.Balance;
                    if (sa.SBal >= 0)
                    {
                        return("Withdrawn Successfully.New Balance Rs." + sa.SBal + ".00 but service charge will be deducted at the end of month");
                    }
                    else
                    {
                        sa.SBal = sa.SBal + value.Balance;
                        return("Insufficient Fund");
                    }
                }
                var ca = currentAccounts.Find(a => a.CAId == value.AccountId);
                ca.CBal = ca.CBal - value.Balance;
                if (ca.CBal >= 0)
                {
                    return("Withdrawn Successfully.New Balance Rs." + ca.CBal + ".00 but service charge will be deducted at the end of month");
                }
                else
                {
                    ca.CBal = ca.CBal + value.Balance;
                    return("Insufficient Fund");
                }
            }
            return("Link Failure");
        }