public void ShareActivity(ShareActivity model, Controller ctrl)
        {
            List <PlayerDailyActivityCSV> ListOfActivitiesCSV = CreateListOfActivities(model, ctrl);

            //Get Player Details
            PlayersRepository playerRepo = new PlayersRepository();
            var player = playerRepo.ReadOne(model.PlayerID);

            var leagueName = (string.IsNullOrEmpty(player.SelectedLeagueName) == false ? player.SelectedLeagueName : "No League Selected");

            string FileName = "DailyActivity_" + player.FullName.Replace(" ", string.Empty) + "_" + DateTime.Now.ToString("ddMMyyyyHHmmss") + ".csv";

            //Now Create CSV
            string fullFilePath = CreateCSV(ListOfActivitiesCSV, FileName, player.FullName, player.EmailAddress, leagueName, ctrl);

            //Now Send Email

            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var sys = sysRepo.GetSystemSettings();

            PlayerDashboardRepository pdRepo = new PlayerDashboardRepository();
            var playerDashboard = pdRepo.ReadOne(model.PlayerID);

            EmailsRepository emailRepo = new EmailsRepository();

            string Body = "Hi," +
                          "<br/><br/> I would like to share my Daily Activity Data with you " +
                          "<br/><br/> Personal Message: " + model.MsgBody;
            Guid guid = Guid.NewGuid();

            EmailThread = new Thread(() =>
                                     emailRepo.SendEmailWithAttachment(playerDashboard.PlayerEmailAddress, model.EmailAddress, "Daily Activity Data - " + playerDashboard.PlayerFullName, Body, fullFilePath, EmailThread, ctrl, sys.SupportEmailAddress, null, false));
            EmailThread.Name = "DailyActivityData_" + guid.ToString();
            EmailThread.Start();
        }
Пример #2
0
        public PlayerImagesExt ReadOne(string FileName)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

            var model = db.PlayerImages.Include("Players").Where(m => m.FileName == FileName).FirstOrDefault();

            return(Map(model, CurrentDomain));
        }
Пример #3
0
        public List <PlayerImagesExt> ReadAll_ProgressGallery(string PlayerEmailAddress)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

            var result = db.PlayerImages.Include("Players").Where(m => m.Players.EmailAddress == PlayerEmailAddress && m.MarkForDeletion == false && m.Display == true).ToList().Select(m => Map(m, CurrentDomain)).OrderByDescending(m => m.UploadDateTime).ToList();

            return(result);
        }
Пример #4
0
        public string Delete(long PlayerImageID, ref string Msg, ref bool status, Controller ctrl)
        {
            string FileName = "";

            try
            {
                //TODO: Get Current Object from DB
                var ItemToDelete = db.PlayerImages.FirstOrDefault(m => m.PlayerImageID == PlayerImageID);
                if (ItemToDelete != null)
                {
                    if (ItemToDelete.DefaultImage)
                    {
                        status = false;
                        Msg    = "You cannot Delete Default Image, Please mark any other image as default in order to Delete this Image.";
                    }
                    else
                    {
                        SystemSettingsRepository sysRepo = new SystemSettingsRepository();
                        var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

                        FileName = ItemToDelete.FileName;
                        long PlayerID   = ItemToDelete.PlayerID;
                        var  ForAudiLog = Map(ItemToDelete, CurrentDomain);
                        //TODO: Check if it is not null, then Remove from DB
                        db.PlayerImages.Remove(ItemToDelete);
                        db.SaveChanges();

                        //Add To Log
                        AuditLog(ctrl, AuditAction.Delete, null, ForAudiLog);

                        //Now Delete the Physical Image

                        string PlayerImagesFolder = Path.Combine(ctrl.Server.MapPath("~" + SecurityUtils.Players_ImagePath + ""), PlayerID.ToString());

                        string FullFilePath = Path.Combine(PlayerImagesFolder, FileName);

                        if (System.IO.File.Exists(FullFilePath))
                        {
                            // The files are not actually removed in this demo
                            System.IO.File.Delete(FullFilePath);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Msg    = ErrorHandling.HandleException(ex);
                status = false;
            }

            return(FileName);
        }
Пример #5
0
        public List <PlayerImagesExt> ReadAll(bool?OnlyAnimated)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

            var pImages = db.PlayerImages.Include("Players").ToList().Select(m => Map(m, CurrentDomain)).ToList();

            var Filtered_pImages = (from pimg in pImages
                                    where (OnlyAnimated.HasValue == false || pimg.IsAnimated == OnlyAnimated)
                                    select pimg).ToList();

            return(Filtered_pImages);
        }
Пример #6
0
        public List <PlayerImagesExt> ReadAll(long PlayerID, bool?OnlyAnimated, bool All)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

            var pImages = db.PlayerImages.Include("Players").Where(m => m.PlayerID == PlayerID).ToList().Select(m => Map(m, CurrentDomain));

            var Filtered_pImages = (from pimg in pImages
                                    where pimg.PlayerID == PlayerID &&
                                    (OnlyAnimated.HasValue == false || pimg.IsAnimated == OnlyAnimated) &&
                                    (All == true || pimg.MarkForDeletion == false) //if it is calling from backend then return all pics but if from Player Progress Image page then only which are not marked as Deletetion
                                    select pimg);

            return(Filtered_pImages.OrderByDescending(m => m.UploadDateTime).ToList());
        }
Пример #7
0
        public List <PlayerImagesExt> GetPlayerProgressImages(long PlayerID, long LeagueFixtureID)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

            var model = db.SelectPlayerProgressImages(PlayerID, LeagueFixtureID).ToList();

            if (model.Count != 0)
            {
                return(model.Select(m => MapProgressImages(m, CurrentDomain)).ToList());
            }
            else
            {
                return(new List <PlayerImagesExt>());
            }
        }
Пример #8
0
        public long CreateOrUpdate(ref PlayerImagesExt model, ref string Msg, ref bool status, Controller ctrl)
        {
            long PlayerImageID = model.PlayerImageID;

            try
            {
                if (model.PlayerImageID == 0)
                {
                    model.UploadDateTime = DateTime.Now;
                    //Create New Record
                    //TODO: Map to DB Object
                    var dbmodel = Map(model);
                    //TODO: Save DB Changes and Set the Return Primary Key ID
                    db.PlayerImages.Add(dbmodel);
                    db.SaveChanges();
                    PlayerImageID = dbmodel.PlayerID;
                    Msg           = "New Player Image Created Successfully";
                    //TOD: Add to Audit Log
                    AuditLog(ctrl, AuditAction.Create, ReadOne(dbmodel.PlayerImageID), null);
                }
                else
                {
                    SystemSettingsRepository sysRepo = new SystemSettingsRepository();
                    var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

                    //Update Existing Record
                    var dbmodel     = db.PlayerImages.FirstOrDefault(p => p.PlayerImageID == PlayerImageID);
                    var ForAuditLog = Map(dbmodel, CurrentDomain);
                    //TODO: Map to DB Object
                    MapUpdate(ref dbmodel, model);
                    //TODO: Update DB Changes
                    db.SaveChanges();
                    PlayerImageID = dbmodel.PlayerImageID;
                    Msg           = "Player Image Updated Successfully";
                    //TOD: Add to Audit Log
                    AuditLog(ctrl, AuditAction.Update, ForAuditLog, ReadOne(dbmodel.PlayerImageID));
                }
            }
            catch (Exception ex)
            {
                Msg    = ErrorHandling.HandleException(ex);
                status = false;
            }

            return(PlayerImageID);
        }
        public RegistrationExt NewRegistration(Controller ctrl, RegistrationExt RegExt)
        {
            model = RegExt;
            if (model == null)
            {
                model = new RegistrationExt();
            }

            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var sys = sysRepo.GetSystemSettings();

            bool?RegSuccess = null;

            if (ctrl.Request.QueryString["Reg"] != null)
            {
                RegSuccess = true;

                //When Registration Success then Delete the Cookie and Remove all Sessions

                ctrl.Session.RemoveAll();

                ctrl.Session.Clear();
            }
            else
            {
                #region Initialize Viewmodels

                ctrl.ViewBag.Heights        = DropDownLists.GetHeights(model.HeightID);
                ctrl.ViewBag.HowActives     = DropDownLists.GetHowActives(model.HowActiveID);
                ctrl.ViewBag.Advertisements = DropDownLists.GetAdvertisements(model.AdvertisementID);

                #endregion
            }

            ctrl.ViewBag.RegSuccess = RegSuccess;

            return(model);
        }
Пример #10
0
        public bool Delete(string FileName, ref string Msg, Controller ctrl)
        {
            bool status = true;

            try
            {
                //TODO: Get Current Object from DB
                var ItemToDelete = db.PlayerImages.FirstOrDefault(m => m.FileName == FileName);
                if (ItemToDelete != null)
                {
                    if (ItemToDelete.DefaultImage)
                    {
                        status = false;
                        Msg    = "You cannot Delete Default Image, Please mark any other image as default in order to Delete this Image.";
                    }
                    else
                    {
                        SystemSettingsRepository sysRepo = new SystemSettingsRepository();
                        var CurrentDomain = sysRepo.GetSystemSettings().CurrentDomain;

                        var ForAudiLog = Map(ItemToDelete, CurrentDomain);
                        //TODO: Check if it is not null, then Remove from DB
                        db.PlayerImages.Remove(ItemToDelete);
                        db.SaveChanges();

                        //Add To Log
                        AuditLog(ctrl, AuditAction.Delete, null, ForAudiLog);
                    }
                }
            }
            catch (Exception ex)
            {
                Msg    = ErrorHandling.HandleException(ex);
                status = false;
            }

            return(status);
        }
        public Boolean SendEmail_WithCC(string From, string To, string Subject, string Body, string CC = null, string BCC = null)
        {
            //  SecurityUtils.AddAuditLog("Inside SendEmail", "From = " + From + " To = " + To + "Subject =" +Subject+ "  Body = "+ Body);
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var sys = sysRepo.GetSystemSettings();

            //SecurityUtils.AddAuditLog("GetSystemSettings", "sys.EmailsEnabled = " + sys.EmailsEnabled.ToString() + " sys.TempEmailAddress = " + sys.TempEmailAddress);

            bool status = true;

            try
            {
                // using (SmtpClient smtp = new SmtpClient("mail.manvfatfootball.org", 587))
                using (SmtpClient smtp = new SmtpClient())
                {
                    // smtp.Credentials = new NetworkCredential("*****@*****.**", "Email@manvfat123");
                    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    smtp.EnableSsl      = false;
                    if (sys.EmailsEnabled)
                    {
                        if (!string.IsNullOrEmpty(To))
                        {
                            MailMessage mm;
                            MailAddress from = new MailAddress(From, "MANvFAT Football");
                            //(1) Create the MailMessage instance
                            if (sys.SendTempEmail)
                            {
                                mm            = new MailMessage(From, sys.TempEmailAddress, Subject, Body);
                                mm.IsBodyHtml = true;
                            }
                            else
                            {
                                mm = new MailMessage();

                                mm.IsBodyHtml = true;
                                mm.From       = from;
                                mm.Subject    = Subject;
                                mm.Body       = Body;
                            }

                            mm.To.Add(To);

                            if (!string.IsNullOrEmpty(BCC))
                            {
                                string[] EmailAddresses_BCC = BCC.Replace(" ", string.Empty).Split(';');

                                foreach (var item_BCC in EmailAddresses_BCC)
                                {
                                    if (!string.IsNullOrEmpty(item_BCC))
                                    {
                                        mm.Bcc.Add(item_BCC);
                                    }
                                }
                            }

                            if (!string.IsNullOrEmpty(CC))
                            {
                                string[] EmailAddresses_CC = CC.Replace(" ", string.Empty).Split(';');

                                foreach (var item_CC in EmailAddresses_CC)
                                {
                                    if (!string.IsNullOrEmpty(item_CC))
                                    {
                                        mm.CC.Add(item_CC);
                                    }
                                }
                            }

                            //Now Send Email
                            smtp.Send(mm);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                SecurityUtils.AddAuditLog("EmailErrorMsg", ex.Message);
                status        = false;
                EmailErrorMsg = ex.Message;// + " - " + ex.InnerException != null ? ex.InnerException.Message : "";
                SecurityUtils.AddAuditLog("Failed to send Email", "Email Send Failed with Error = " + EmailErrorMsg + "<br/> Stack Trace:<br/>" + ex.StackTrace);
            }

            return(status);
        }
        public Boolean SendEmailWithAttachment(string From, string To, string Subject, string Body, string filePath, Thread thread, Controller ctrl, string BCC = null, string CC = null, bool DeleteAttchedFile = false)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var sys = sysRepo.GetSystemSettings();

            string[] EmailAddresses = To.Replace(" ", string.Empty).Split(';');

            bool status = true;

            try
            {
                // using (SmtpClient smtp = new SmtpClient("mail.manvfatfootball.org", 587))
                using (SmtpClient smtp = new SmtpClient())
                {
                    // smtp.Credentials = new NetworkCredential("*****@*****.**", "Email@manvfat123");
                    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    smtp.EnableSsl      = false;
                    if (sys.EmailsEnabled)
                    {
                        foreach (var item in EmailAddresses)
                        {
                            if (item != "")
                            {
                                MailMessage mm;
                                MailAddress from = new MailAddress(From);
                                //(1) Create the MailMessage instance
                                if (sys.SendTempEmail)
                                {
                                    mm            = new MailMessage(From, sys.TempEmailAddress, Subject, Body);
                                    mm.IsBodyHtml = true;
                                }
                                else
                                {
                                    mm = new MailMessage();

                                    mm.IsBodyHtml = true;
                                    mm.From       = from;
                                    mm.Subject    = Subject;
                                    mm.Body       = Body;
                                }

                                mm.To.Add(item);

                                if (!string.IsNullOrEmpty(BCC))
                                {
                                    string[] EmailAddresses_BCC = BCC.Replace(" ", string.Empty).Split(';');

                                    foreach (var item_BCC in EmailAddresses_BCC)
                                    {
                                        if (!string.IsNullOrEmpty(item_BCC))
                                        {
                                            mm.Bcc.Add(item_BCC);
                                        }
                                    }
                                }

                                if (!string.IsNullOrEmpty(CC))
                                {
                                    string[] EmailAddresses_CC = CC.Replace(" ", string.Empty).Split(';');

                                    foreach (var item_CC in EmailAddresses_CC)
                                    {
                                        if (!string.IsNullOrEmpty(item_CC))
                                        {
                                            mm.CC.Add(item_CC);
                                        }
                                    }
                                }

                                System.Net.Mail.Attachment attachment;
                                attachment = new System.Net.Mail.Attachment(filePath);
                                mm.Attachments.Add(attachment);

                                smtp.Send(mm);
                            }
                        }
                    }
                    thread.Join(0);
                }
            }
            catch (ThreadAbortException e)
            {
                SecurityUtils.AddAuditLog("The Email Thread Aborted Successfully", "Email Subject \"" + Subject + "\" has been Sent to " + To);
            }
            catch (Exception ex)
            {
                status        = false;
                EmailErrorMsg = ex.Message + " - " + ex.InnerException != null ? ex.InnerException.Message : "";
                SecurityUtils.AddAuditLog("Failed to send Email", "Email Send Failed with Error = " + EmailErrorMsg + "<br/> Stack Trace:<br/>" + ex.StackTrace);
            }
            finally
            {
                SecurityUtils.AddAuditLog("The Email Thread Completed Successfully", "Email Subject \"" + Subject + "\" has been Sent to " + To);

                //If Deleted tru then Delete the file after sending Email.
                if (DeleteAttchedFile)
                {
                    if (System.IO.File.Exists(filePath))
                    {
                        System.IO.File.Delete(filePath);
                    }
                }
            }

            return(status);
        }
        public Boolean SendEmail(string From, string To, string Subject, string Body, Thread thread)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var sys = sysRepo.GetSystemSettings();

            string[] EmailAddresses = To.Replace(" ", string.Empty).Split(';');
            bool     status         = true;

            try
            {
                // using (SmtpClient smtp = new SmtpClient("mail.manvfatfootball.org", 587))
                using (SmtpClient smtp = new SmtpClient())
                {
                    // smtp.Credentials = new NetworkCredential("*****@*****.**", "Email@manvfat123");
                    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    smtp.EnableSsl      = false;
                    if (sys.EmailsEnabled)
                    {
                        foreach (var item in EmailAddresses)
                        {
                            if (item != "")
                            {
                                MailMessage mm;
                                MailAddress from = new MailAddress(From);
                                //(1) Create the MailMessage instance
                                if (sys.SendTempEmail)
                                {
                                    mm            = new MailMessage(From, sys.TempEmailAddress, Subject, Body);
                                    mm.IsBodyHtml = true;
                                }
                                else
                                {
                                    mm = new MailMessage();

                                    mm.IsBodyHtml = true;
                                    mm.From       = from;
                                    mm.Subject    = Subject;
                                    mm.Body       = Body;
                                }

                                mm.To.Add(item);

                                smtp.Send(mm);
                            }
                        }
                    }

                    thread.Join(0);
                }
            }
            catch (ThreadAbortException e)
            {
                SecurityUtils.AddAuditLog("The Email Thread Aborted Successfully", "Email Subject \"" + Subject + "\" has been Sent to " + To);
            }
            catch (Exception ex)
            {
                status        = false;
                EmailErrorMsg = ex.Message + " - " + ex.InnerException != null ? ex.InnerException.Message : "";
                SecurityUtils.AddAuditLog("Failed to send Email", "Email Send Failed with Error = " + EmailErrorMsg + "<br/> Stack Trace:<br/>" + ex.StackTrace);
            }
            finally
            {
                SecurityUtils.AddAuditLog("The Email Thread Completed Successfully", "Email Subject \"" + Subject + "\" has been Sent to " + To);
            }

            return(status);
        }
        /*
         * public bool SendActivationEMail(out string errorMsg)
         * {
         *  string activationLink = "http://usmanchohan.co.uk";
         *  //HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + "/Register/Activation.aspx?id=" + ts.Id;
         *
         *  //send-template(string key, string template_name, array template_content, struct message)
         *  dynamic sendParams = new ExpandoObject();
         *  sendParams.key = "Z46-URL8pJppuh8Hv5Ff3A";
         *  sendParams.template_name = "Secret Project Trial Activation";
         *
         *  sendParams.template_content = new List<dynamic>();
         *
         *  sendParams.message = new ExpandoObject();
         *  sendParams.message.subject = "Here's your Secret Project activation email";
         *  sendParams.message.from_email = "*****@*****.**";
         *  sendParams.message.from_name = "Secret Project";
         *
         *  sendParams.message.to = new List<dynamic>();
         *  sendParams.message.to.Add(new ExpandoObject());
         *  sendParams.message.to[0].email = "*****@*****.**";
         *  sendParams.message.to[0].name = "Usman Akram";
         *
         *  sendParams.message.track_opens = true;
         *  //sendParams.message.track_clicks = true;
         *
         *  sendParams.message.global_merge_vars = new List<dynamic>();
         *  sendParams.message.global_merge_vars.Add(new ExpandoObject());
         *  sendParams.message.global_merge_vars[0].name = "NAME";
         *  sendParams.message.global_merge_vars[0].content = "Chohan";
         *
         *  sendParams.message.global_merge_vars.Add(new ExpandoObject());
         *  sendParams.message.global_merge_vars[1].name = "LINK";
         *  sendParams.message.global_merge_vars[1].content = activationLink;
         *
         *  errorMsg = string.Empty;
         *
         *  MandrillError merr = SendMessage(sendParams);
         *
         *  switch (merr)
         *  {
         *      case MandrillError.OK:
         *          return true;
         *
         *      case MandrillError.WebException:
         *      case MandrillError.HttpNotOk:
         *          errorMsg = "There was an issue sending your activation e-mail. Please try again later or call us directly.";
         *          break;
         *
         *      case MandrillError.Invalid:
         *          errorMsg = "Your email address appears to be invalid. Please try again with a valid address, or call us directly.";
         *          break;
         *
         *      case MandrillError.Rejected:
         *          errorMsg = "Your activation email was rejected. Please try again with a valid address, or call us directly.";
         *          break;
         *
         *      case MandrillError.Unknown:
         *          errorMsg = "There was an unknown problem sending your activation email. Please try again, or call us directly.";
         *          break;
         *  }
         *  return false;
         * }
         */

        #endregion Testing Template

        public bool SendRegistrationEmail(PlayersExt model, Controller ctrl)
        {
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var sys = sysRepo.GetSystemSettings();
            //Add this Postfix if it is a TESTING Site.
            string TestSitePostfix = (sys.CurrentDomain.Contains("test") || sys.CurrentDomain.Contains("localhost")) ? "_TestSite" : "";

            dynamic sendParams = new ExpandoObject();

            sendParams.template_name = "tmpRegistration_PlannedLeagueCOPY" + TestSitePostfix;


            // string LeagueHomePage = sys.CurrentDomain + "/" + league.NewsTag;
            string ReferralPageLink = sys.CurrentDomain + "/Refer/" + model.ReferralCode;
            string ReferralLink     = sys.CurrentDomain + "/refercode/" + model.ReferralCode;

            sendParams.template_content = new List <dynamic>();

            sendParams.message         = new ExpandoObject();
            sendParams.message.subject = "Welcome to MAN v FAT Football";
            sendParams.message.to      = new List <dynamic>();
            sendParams.message.to.Add(new ExpandoObject());
            sendParams.message.to[0].email = model.EmailAddress;
            sendParams.message.to[0].name  = model.FullName;

            //sendParams.message.track_opens = true;
            //sendParams.message.track_clicks = true;

            sendParams.message.global_merge_vars = new List <dynamic>();

            sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[0].name    = "BMI";
            sendParams.message.global_merge_vars[0].content = model.BMI.HasValue ? model.BMI.Value.ToString("N2") : "";

            sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[1].name    = "BODYFAT";
            sendParams.message.global_merge_vars[1].content = model.BodyFat.HasValue ? model.BodyFat.Value.ToString("N2") : "";

            sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[2].name    = "LEAGUEHOMEPAGE";
            sendParams.message.global_merge_vars[2].content = //LeagueHomePage;

                                                              sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[3].name    = "WHATSAPPGROUP";
            sendParams.message.global_merge_vars[3].content = //WhatsAppGroupLink;

                                                              sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[4].name    = "MSGNOEMERGENCYDETAILS";
            sendParams.message.global_merge_vars[4].content = GenerateHtml_EmergencyContactDetails(sys, model);

            sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[5].name    = "REFERRALPAGELINK";
            sendParams.message.global_merge_vars[5].content = ReferralPageLink;

            sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[6].name    = "REFERRALLINK";
            sendParams.message.global_merge_vars[6].content = ReferralLink;

            sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[7].name    = "REFERRALCODE";
            sendParams.message.global_merge_vars[7].content = model.ReferralCode;

            ////Get Premium Dashboard Payment Link
            //PlayerPaymentsRepository playerPaymentsRepo = new PlayerPaymentsRepository();
            //var payment = playerPaymentsRepo.GetPremiumDashboardPayment(model.PlayerID, ctrl);

            //sendParams.message.global_merge_vars.Add(new ExpandoObject());
            //sendParams.message.global_merge_vars[5].name = "PAYLINKDASHBOARD";
            //sendParams.message.global_merge_vars[5].content = payment != null ? SecurityUtils.GeneratePayLinkURL(payment.PaylinkID) : "";

            MandrillError merr     = SendMessage(sendParams, sys);
            string        errorMsg = "";

            switch (merr)
            {
            case MandrillError.OK:
                SecurityUtils.AddAuditLog("Mandrill Email Success", "\"Registration Email\" Email Sent To PlayerID: " + model.PlayerID + " Email = " + model.EmailAddress);
                return(true);

            case MandrillError.WebException:
            case MandrillError.HttpNotOk:
                errorMsg = "There was an issue sending your activation e-mail. Please try again later or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", "\"Registration Email\" Attempt to Send Email To = PlayerID: " + model.PlayerID + " Email = " + model.EmailAddress + " - HttpNotOK: " + errorMsg);
                break;

            case MandrillError.Invalid:
                errorMsg = "Your email address appears to be invalid. Please try again with a valid address, or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", "\"Registration Email\" Invalid: " + errorMsg);
                break;

            case MandrillError.Rejected:
                errorMsg = "Your activation email was rejected. Please try again with a valid address, or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", "\"Registration Email\" Rejected: " + errorMsg);
                break;

            case MandrillError.Unknown:
                errorMsg = "There was an unknown problem sending your activation email. Please try again, or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", "\"Registration Email\" Unknown: " + errorMsg);
                break;
            }
            return(false);
        }
        public bool SendForgottenPassword_Email(PlayersExt model, string ResetPasswordLink)
        {
            //
            SystemSettingsRepository sysRepo = new SystemSettingsRepository();
            var sys = sysRepo.GetSystemSettings();
            //Add this Postfix if it is a TESTING Site.
            string TestSitePostfix = (sys.CurrentDomain.Contains("test") || sys.CurrentDomain.Contains("localhost")) ? "_TestSite" : "";

            dynamic sendParams = new ExpandoObject();

            sendParams.template_name = "ForgottenPassword" + TestSitePostfix;

            sendParams.template_content = new List <dynamic>();

            sendParams.message         = new ExpandoObject();
            sendParams.message.subject = "MANvFAT Football Forgotten Password";
            sendParams.message.to      = new List <dynamic>();
            sendParams.message.to.Add(new ExpandoObject());
            sendParams.message.to[0].email = model.EmailAddress;
            sendParams.message.to[0].name  = model.FullName;

            //sendParams.message.track_opens = true;
            //sendParams.message.track_clicks = true;

            sendParams.message.global_merge_vars = new List <dynamic>();

            sendParams.message.global_merge_vars.Add(new ExpandoObject());
            sendParams.message.global_merge_vars[0].name    = "RESETPASSWORDLINK";
            sendParams.message.global_merge_vars[0].content = ResetPasswordLink;

            MandrillError merr     = SendMessage(sendParams, sys);
            string        errorMsg = "";

            switch (merr)
            {
            case MandrillError.OK:
                SecurityUtils.AddAuditLog("Mandrill Email Success", "\"Forgotten Password Email\" Email Sent To PlayerID: " + model.PlayerID + " Email = " + model.EmailAddress);
                return(true);

            case MandrillError.WebException:
            case MandrillError.HttpNotOk:
                errorMsg = "There was an issue sending your activation e-mail. Please try again later or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", " \"Forgotten Password Email\" Attempt to Send Email To = PlayerID: " + model.PlayerID + " Email = " + model.EmailAddress + " - HttpNotOK: " + errorMsg);
                break;

            case MandrillError.Invalid:
                errorMsg = "Your email address appears to be invalid. Please try again with a valid address, or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", "\"Forgotten Password Email\" Invalid: " + errorMsg);
                break;

            case MandrillError.Rejected:
                errorMsg = "Your activation email was rejected. Please try again with a valid address, or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", "\"Forgotten Password Email\" Rejected: " + errorMsg);
                break;

            case MandrillError.Unknown:
                errorMsg = "There was an unknown problem sending your activation email. Please try again, or call us directly.";
                SecurityUtils.AddAuditLog("Mandrill Email Error", "\"Forgotten Password Email\" Unknown: " + errorMsg);
                break;
            }
            return(false);
        }