private async void checkDefaultedLoanToQue(SecondMarketItem item, int discountRate) { if (item.LastPaymentDate > DateTime.Now.AddDays(35) && item.DesiredDiscountRate <= discountRate) { defaultedLoansQue.Add(item); } }
private async void processRequest(HttpListenerContext context, int[] buyForXDaysArr) { SecondMarketItem secondMarketItem = null; // MessageBox.Show("Gavau..." + context.Request.Headers.ToString()); var body = new StreamReader(context.Request.InputStream).ReadToEnd(); JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); try { ApiResultEvent apiResultEvent = jsonSerializer.Deserialize <ApiResultEvent>(body); secondMarketItem = apiResultEvent.Payload; } catch (Exception e) { } byte[] b = Encoding.UTF8.GetBytes("ACK"); context.Response.StatusCode = 200; context.Response.KeepAlive = false; context.Response.ContentLength64 = b.Length; var output = context.Response.OutputStream; output.Write(b, 0, b.Length); context.Response.Close(); if (secondMarketItem.LoanStatusCode == 2) { checkCurrentLoan(secondMarketItem, buyForXDaysArr[(int)DateTime.Today.DayOfWeek], maxPrice); } else { checkDefaultedLoanToQue(secondMarketItem, DEFAULT_DISCOUNT); } if (secondMarketItem.DesiredDiscountRate <= 0) { string log = ""; log = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "\t" + secondMarketItem.LoanStatusCode.ToString() + "\t" + secondMarketItem.LoanPartId.ToString() + "\t" + secondMarketItem.UserName + "\t" + secondMarketItem.PrincipalRemaining.ToString("0.##€") + "\t" + secondMarketItem.DesiredDiscountRate.ToString("0.##") + "\t" + secondMarketItem.Price.ToString("0.##€") + "\t" + secondMarketItem.PrincipalRepaid.ToString("0.##€") + "\t" + secondMarketItem.LastPaymentDate.ToString() + "\t" + secondMarketItem.NextPaymentDate.ToString() + "\t" + secondMarketItem.NextPaymentNr.ToString("0.##") + "\t" + secondMarketItem.LateAmountTotal.ToString("0.##€") + "\t" + secondMarketItem.ReScheduledOn.ToString(); textBox3.Invoke(new Action(() => textBox3.AppendText(log + "\r\n"))); } }
private async void checkCurrentLoan(SecondMarketItem item, int buyForNextXDays, decimal maxPrice) { bool onlyDiscounted = true; int minPaymets = 1; if (BUY_FIRST_PAYMENT) { minPaymets = 0; } string pastaba = "\t"; DateTime nextPaymentT = DateTime.Today.AddDays(buyForNextXDays); bool buyThisLoan = true; bool logThisLoan = true; if (item.DesiredDiscountRate > 0) { pastaba += "Su antkainiu "; buyThisLoan = false; logThisLoan = false; } if (item.DesiredDiscountRate == 0 && item.NextPaymentDate > nextPaymentT) { pastaba += "Neatitinka kriterijai "; buyThisLoan = false; } if (item.DesiredDiscountRate == 0 && auctionNumbers.Contains(item.AuctionNumber)) { pastaba += "Jau turim "; buyThisLoan = false; } if (item.Price > maxPrice) { pastaba += "Brangu "; buyThisLoan = false; } if (item.NextPaymentNr <= minPaymets) { pastaba += "Mažai įmokų "; buyThisLoan = false; } if (item.LateAmountTotal > 0) { pastaba += string.Format("Vėluojanti suma {0} ", item.LateAmountTotal.ToString("0.##€")); buyThisLoan = false; } if (item.DesiredDiscountRate == 0 && item.LastPaymentDate > DateTime.Today.AddDays(-20)) { pastaba += "Nesenas mokėjimas "; buyThisLoan = false; } int daysSpan = 0; if (item.LastPaymentDate != null) { daysSpan = (int)(item.NextPaymentDate - item.LastPaymentDate).Value.TotalDays; } if (daysSpan > 45) { pastaba += "Didelis tarpas "; buyThisLoan = false; } string rowString = ""; string buyFile; string currFile; if (item.DesiredDiscountRate < 0) { totalDiscountedLoans++; totalDiscountedPrice += item.Price; rowString = "%%\t"; buyFile = "buydiscounted.txt"; currFile = "discLoans.txt"; } else { totalLoans++; totalPrice += item.Price; rowString = "--\t"; buyFile = "buyloans.txt"; currFile = "currLoans.txt"; } rowString += DateTime.Now.ToShortDateString() + DateTime.Now.ToLongTimeString() + "\t" + item.LoanPartId.ToString() + "\t" + item.UserName + "\t" + item.PrincipalRemaining.ToString("0.##€") + "\t" + item.DesiredDiscountRate.ToString("0.##") + "\t" + item.Price.ToString("0.##€") + "\t" + item.PrincipalRepaid.ToString("0.##€") + "\t" + item.LastPaymentDate.ToString() + "\t" + item.NextPaymentDate.ToString() + "\t" + item.NextPaymentNr.ToString("0.##") + "\t" + item.LateAmountTotal.ToString("0.##€") + "\t" + item.ReScheduledOn.ToString(); if (buyThisLoan) { var list = new List <Guid>(); list.Add(item.Id); pastaba += "Perkam... "; int buyStatusCode = await apiClient.BuySecondaryMarketItem(list); if (buyStatusCode == 202) { pastaba += " Nupirkom!"; if (onlyDiscounted) { discountedLoans++; totalDiscountedBuyPrice += item.Price; } else { buyLoans++; totalBuyPrice += item.Price; } auctionNumbers.Add(item.AuctionNumber); WriteToFileThreadSafe(rowString + pastaba, buyFile); } else { switch (buyStatusCode) { case 400: pastaba += "No items specified"; break; case 401: pastaba += "Too many items"; break; case 402: pastaba += "User is not Authorized"; break; case 403: pastaba += "User has no rights"; break; case 404: pastaba += "Not found"; break; case 409: pastaba += "Investment cannot be bought"; break; default: pastaba += buyStatusCode.ToString(); break; } } } if (logThisLoan) { WriteToFileThreadSafe(rowString + pastaba, currFile); } // using (System.IO.StreamWriter file = new System.IO.StreamWriter(currFile, true)) // { // file.WriteLine(rowString + pastaba); // } }