home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2005 June (DVD) / DPPRO0605DVD.iso / dotNETSDK / SETUP.EXE / netfxsd1.cab / FL_LoanLib_asmx________.3643236F_FC70_11D3_A536_0090278A1BB8 < prev    next >
Encoding:
Text File  |  2001-02-09  |  2.4 KB  |  98 lines

  1. <%@ WebService Language="C#" Class="LoanLibWrapper" %>
  2.  
  3. using System;
  4. using System.Data;
  5. using System.Web.Services;
  6. using LoanLib;
  7.  
  8. public class LoanLibWrapper : WebService
  9. {
  10.     [WebMethod]
  11.     public double Calculate(double Balance, double Rate, short Term, double Payment)
  12.     {
  13.         Loan ln = new Loan();
  14.         ln.OpeningBalance = Balance;
  15.         ln.Rate = Rate/100;
  16.         ln.Term = Term;
  17.         ln.Payment = Payment;
  18.         
  19.         if (Rate > 0.0 && Term > 0.0 && Balance > 0.0)
  20.         {
  21.             ln.ComputePayment();
  22.             return ln.Payment;
  23.         }
  24.         else if (Rate == 0.0) 
  25.         {
  26.             ln.ComputeRate();
  27.             return ln.Rate*100;
  28.         }
  29.         else if (Term == 0.0) 
  30.         {
  31.             ln.ComputeTerm();
  32.             return ln.Term;
  33.         }
  34.         else if (Balance == 0.0) 
  35.         {
  36.             ln.ComputeOpeningBalance();
  37.             return ln.OpeningBalance;
  38.         }
  39.         return 0;
  40.     }
  41.     
  42.     [WebMethod]
  43.     public DataSet Amortize(double Balance, double Rate, short Term, double Payment)
  44.     {
  45.         Loan ln = new Loan();
  46.         ln.OpeningBalance = Balance;
  47.         ln.Rate = Rate/100;
  48.         ln.Term = Term;
  49.         ln.Payment = Payment;
  50.         
  51.         if (Rate > 0.0 && Term > 0.0 && Balance > 0.0)
  52.             ln.ComputePayment();
  53.         else if (Rate == 0.0) 
  54.             ln.ComputeRate();
  55.         else if (Term == 0.0) 
  56.             ln.ComputeTerm();
  57.         else if (Balance == 0.0) 
  58.             ln.ComputeOpeningBalance();
  59.             
  60.         DataSet ds = new DataSet();
  61.         DataTable dt = new DataTable();
  62.         DataColumn dc;
  63.         DataRow dr;
  64.             
  65.         dc = new DataColumn("month", System.Type.GetType("System.Int16"));
  66.         dt.Columns.Add(dc);
  67.         dc = new DataColumn("payment", System.Type.GetType("System.Double"));
  68.         dt.Columns.Add(dc);
  69.         dc = new DataColumn("principal", System.Type.GetType("System.Double"));
  70.         dt.Columns.Add(dc);
  71.         dc = new DataColumn("interest", System.Type.GetType("System.Double"));
  72.         dt.Columns.Add(dc);
  73.         dc = new DataColumn("balance", System.Type.GetType("System.Double"));
  74.         dt.Columns.Add(dc);
  75.         
  76.         ds.Tables.Add(dt);
  77.         
  78.         bool MorePmts;
  79.         double curBalance = 0.0;
  80.         double Principal = 0.0;
  81.         double Interest = 0.0;
  82.  
  83.         MorePmts = ln.GetFirstPmtDistribution(ln.Payment, out curBalance, out Principal, out Interest);
  84.  
  85.         for (short PmtNbr = 1; MorePmts; PmtNbr++) 
  86.         {
  87.             dr = dt.NewRow();
  88.             dr["month"] = PmtNbr;
  89.             dr["payment"] = ln.Payment;
  90.             dr["principal"] = Principal;
  91.             dr["interest"] = Interest;
  92.             dr["balance"] = curBalance;
  93.             dt.Rows.Add(dr);        
  94.             
  95.             MorePmts = ln.GetNextPmtDistribution(ln.Payment, ref curBalance, out Principal, out Interest);        }        
  96.         return ds;
  97.     }
  98. }