public async Task <ActionResult> Choose_Benefits(string type, string claimer) { string s = System.Configuration.ConfigurationManager.AppSettings["MaxLevel"]; claimer = claimer.Replace("$25", "/"); claimer = claimer.Replace("$24", "+"); string DecryptId = Cryptoclass.DecryptStringAES(claimer, s); var user = await db.INISubcriberExtraDetails.FindAsync(DecryptId); Random rd = new Random(); int RD = rd.Next(100000); string ProcessingID = string.Concat("PID-", RD.ToString()); #region //Cash_Benefits if (type == "Cash_Benefit") { var bank_details = db.bank_info.Where(bd => bd.Account_holder_id == user.UserID); if (bank_details.Count() > 0) { //Check if claim has already been submitted: this will help eliminate //double claims submission for a single claim var checkClaims = db.BenefitClaimersTb.Where(c => c.SubRefCode == user.User.MyRefferalCode && c.BenefitProcessStatus != "Settled"); if (checkClaims.Count() > 0) { TempData["warning"] = "Oops! You still have an active benefit that is currently being process. Do not click the claim Benefit link again."; return(RedirectToAction("UserpanelCarreer")); } BenefitClaimersTb bctb = new BenefitClaimersTb(); bctb.SubRefCode = user.User.MyRefferalCode; bctb.Name = string.Concat(user.User.FirstName, " ", user.User.LastName); bctb.DownlineSize = user.promo_dl_size + user.Non_promo_dl_size; bctb.BankName = user.User.bank_acct_info.BankName; bctb.AccountName = user.User.bank_acct_info.AccountName; bctb.AccountNumber = user.User.bank_acct_info.AccountNumber; bctb.BenefitCategory = "Cash"; // bctb.MaxDateToMeetTarget = usr.INISubcriberExtraDetails.MaxDT2MtTarget; bctb.B_applicationDate = DateTime.UtcNow; bctb.CashBenefits = user.CurrentBonus; bctb.cashBonus = user.CurrentBonus * 0.1; bctb.totalCashBenefits = bctb.CashBenefits + bctb.cashBonus; bctb.BenefitProcessStatus = "Fresh"; // bctb.BenefitStage = "Career"; bctb.ProcessingId = ProcessingID; bctb.Meet_promo_target = true; // bctb.username = usr.UserName; db.BenefitClaimersTb.Add(bctb); await db.SaveChangesAsync(); //Todo : Send mail to Admin on new benefit claims // body1 contain email content that will be sent to beneficiary of claims by the ihealth mail server string body1 = ems.Notification_Email_Body_Creator(user.User.FullName, "Please, be informed that your request to claim " + "benefit has been recieved. <br/><br/> We will notify you as soon as your benefit is ready." + "<br/><br/> Thank you for choosing iHealth Nigeria GSFM <br/><br/> Best Regards, <br/><br/> iHeath Nigeria GSFM Team."); // body2 will contain message notifying admin of new benefit request. string body2 = ems.Notification_Email_Body_Creator("Admin", "Please, be informed that a fresh request for benefits has been submitted.<br/><br/> Kindly, login to the portal for processing." + "<br/><br/>Thanks.<br/><br/>From: iHealth Nigeria GSFM Mail Sender. "); await em.FreshBenefitClaimNotificationRequest(user.User.Email, "Fresh Benefit Claim Request", body1, body2); TempData["success"] = "Congratulations, Your application for benefit claims having been submitted successfully. We will get back to you shortly"; return(RedirectToAction("UserpanelCarreer")); } else { String UserID = iHealth2.CustomClasses.Cryptoclass.EncryptStringAES(user.UserID, s); UserID = UserID.Replace("/", "$25"); UserID = UserID.Replace("+", "$24"); return(RedirectToAction("BankInfo", "ING", new { ids = UserID })); } } #endregion #region //Health_Benefits else { //Check if claim has already been submitted: this will help eliminate //double claims submission for a single claim var checkClaims = db.BenefitClaimersTb.Where(c => c.SubRefCode == user.User.MyRefferalCode && c.BenefitProcessStatus != "Settled"); if (checkClaims.Count() > 0) { TempData["warning"] = "Oops! You still have an active benefit that is currently being process. Do not click the claim Benefit link again."; return(RedirectToAction("UserpanelCarreer")); } BenefitClaimersTb bctb = new BenefitClaimersTb(); bctb.SubRefCode = user.User.MyRefferalCode; bctb.Name = string.Concat(user.User.FirstName, " ", user.User.LastName); bctb.DownlineSize = user.promo_dl_size; bctb.BenefitCategory = "Health"; bctb.B_applicationDate = DateTime.UtcNow; if (user.promo_dl_size >= 2 && user.promo_dl_size < 5) { bctb.HealthBenefits = "Health Insurance of 2 to 4 referrals"; } else if (user.promo_dl_size >= 4 && user.promo_dl_size < 10) { bctb.HealthBenefits = "Health Insurance of 4 to 8 referrals"; } else if (user.promo_dl_size >= 10) { bctb.HealthBenefits = "High-Class-Networkers"; } bctb.BenefitProcessStatus = "Fresh"; bctb.CashBenefits = user.CurrentBonus; // bctb.BenefitStage = "Career"; bctb.ProcessingId = ProcessingID; bctb.Meet_promo_target = true; // bctb.username = usr.UserName; db.BenefitClaimersTb.Add(bctb); await db.SaveChangesAsync(); //Todo : Send mail to Admin on new benefit claims // body1 contain email content that will be sent to beneficiary of claims by the ihealth mail server string body1 = ems.Notification_Email_Body_Creator(user.User.FullName, "Please, be informed that your request to claim " + "benefit has been recieved. <br/><br/> We will notify you as soon as your benefit is ready." + "<br/><br/> Thank you for choosing iHealth Nigeria GSFM <br/><br/> Best Regards, <br/><br/> iHeath Nigeria GSFM Team."); // body2 will contain message notifying admin of new benefit request. string body2 = ems.Notification_Email_Body_Creator("Admin", "Please, be informed that a fresh request for benefits has been submitted.<br/><br/> Kindly, login to the portal for processing." + "<br/><br/>Thanks.<br/><br/>From: iHealth Nigeria GSFM Mail Sender. "); await em.FreshBenefitClaimNotificationRequest(user.User.Email, "Fresh Benefit Claim Request", body1, body2); TempData["success"] = "Congratulations, Your application for benefit claims having been submitted successfully. We will get back to you shortly"; return(RedirectToAction("UserpanelCarreer")); } #endregion //return View("UserpanelCarreer"); }
public async Task <ActionResult> ClaimBenefits(string ids) { string s = System.Configuration.ConfigurationManager.AppSettings["MaxLevel"]; ids = ids.Replace("$25", "/"); ids = ids.Replace("$24", "+"); string DecryptId = Cryptoclass.DecryptStringAES(ids, s); var user = await db.INISubcriberExtraDetails.FindAsync(DecryptId); Random rd = new Random(); int RD = rd.Next(100000); string ProcessingID = string.Concat("PID-", RD.ToString()); // if today's date is //greater than the promo end date (Maximum date for the subscriber to meet his/her target) //and the member has bonus available then proceed by executing the if condition if (user.CurrentBonus != 0) { if (user.Promotional_Target_Subscription_Status != "Active") { if (user.Promotional_Target_Subscription_Status == "Expired") { if (user.promo_dl_size >= 2) { TempData["dl_size"] = user.promo_dl_size; TempData["bonus"] = user.CurrentBonus; return(RedirectToAction("Choose_Benefit", new { refcode = user.User.MyRefferalCode })); } } var bank_details = db.bank_info.Where(bd => bd.Account_holder_id == user.UserID); if (bank_details.Count() > 0) { //Check if claim has already been submitted: this will help eliminate //double claims submission for a single claim var checkClaims = db.BenefitClaimersTb.Where(c => c.SubRefCode == user.User.MyRefferalCode && c.BenefitProcessStatus != "Settled"); if (checkClaims.Count() > 0) { TempData["warning"] = "Oops! You still have an active benefit that is currently being process. Do not click the claim Benefit link again."; return(RedirectToAction("UserpanelCarreer")); } BenefitClaimersTb bctb = new BenefitClaimersTb(); bctb.SubRefCode = user.User.MyRefferalCode; bctb.Name = string.Concat(user.User.FirstName, " ", user.User.LastName); bctb.DownlineSize = user.promo_dl_size + user.Non_promo_dl_size; bctb.BankName = user.User.bank_acct_info.BankName; bctb.AccountName = user.User.bank_acct_info.AccountName; bctb.AccountNumber = user.User.bank_acct_info.AccountNumber; bctb.BenefitCategory = "Cash"; // bctb.MaxDateToMeetTarget = usr.INISubcriberExtraDetails.MaxDT2MtTarget; bctb.B_applicationDate = DateTime.UtcNow; bctb.CashBenefits = user.CurrentBonus; bctb.cashBonus = 0; bctb.totalCashBenefits = bctb.CashBenefits + bctb.cashBonus; bctb.BenefitProcessStatus = "Fresh"; // bctb.BenefitStage = "Career"; bctb.ProcessingId = ProcessingID; bctb.Meet_promo_target = false; // bctb.username = usr.UserName; db.BenefitClaimersTb.Add(bctb); await db.SaveChangesAsync(); //Todo : Send mail to Admin on new benefit claims // body1 contain email content that will be sent to beneficiary of claims by the ihealth mail server string body1 = ems.Notification_Email_Body_Creator(user.User.FullName, "Please, be informed that your request to claim " + "benefit has been recieved. <br/><br/> We will notify you as soon as your benefit is ready." + "<br/><br/> Thank you for choosing iHealth Nigeria GSFM <br/><br/> Best Regards, <br/><br/> iHeath Nigeria GSFM Team."); // body2 will contain message notifying admin of new benefit request. string body2 = ems.Notification_Email_Body_Creator("Admin", "Please, be informed that a fresh request for benefits has been submitted.<br/><br/> Kindly, login to the portal for processing." + "<br/><br/>Thanks.<br/><br/>From: iHealth Nigeria GSFM Mail Sender. "); await em.FreshBenefitClaimNotificationRequest(user.User.Email, "Fresh Benefit Claim Request", body1, body2); TempData["success"] = "Congratulations, Your application for benefit claims having been submitted successfully. We will get back to you shortly"; return(RedirectToAction("UserpanelCarreer")); } else { String UserID = iHealth2.CustomClasses.Cryptoclass.EncryptStringAES(user.UserID, s); UserID = UserID.Replace("/", "$25"); UserID = UserID.Replace("+", "$24"); return(RedirectToAction("BankInfo", "ING", new { ids = UserID })); } } else { TempData["error"] = "You can only claim benefit at the end of the current promo period, Thanks."; } } else { TempData["error"] = "You currently do not have any bonus available"; } return(View("UserpanelCarreer")); }