Beispiel #1
0
        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"));
        }