Beispiel #1
0
        public ActionResult ForgottenPassword(ForgottenPasswordModel model)
        {
            bool   status = true;
            string exMsg  = "";

            if (ModelState.IsValid)
            {
                using (DBEntities db = new DBEntities())
                {
                    var playerDashboard = db.PlayerDashboard.FirstOrDefault(u => u.DashboardURL == model.DashboardURLId);

                    PlayersRepository playerRepo = new PlayersRepository();
                    var player = playerRepo.ReadOne_ByEmailAddress(model.Email, true);

                    if (playerDashboard != null && player != null)
                    {
                        //Now Send an Email to User for Username and Password!
                        //  if (sys.EmailsEnabled)
                        {
                            try
                            {
                                SystemSettingsRepository sysRepo = new SystemSettingsRepository();
                                var sys = sysRepo.GetSystemSettings();

                                //Random rndm = new Random();
                                //var RandomNum = rndm.Next(10001, int.MaxValue);
                                Guid   guid = Guid.NewGuid();
                                string EncryptedRandomNum = guid.ToString();
                                SecurityUtils.CheckforInvalidFileNameChar(ref EncryptedRandomNum); //it will remove any unsupported characters
                                playerDashboard.PasswordResetCode = EncryptedRandomNum;
                                playerDashboard.ResetCodeExpiry   = DateTime.Now.AddHours(24);
                                db.SaveChanges();

                                status = SendEmail(player, EncryptedRandomNum, sys.CurrentDomain);
                            }
                            catch (Exception ex)
                            {
                                model.Reason    = "Failed to send an Email. Please contact your Site Administrator" + ex.Message;
                                model.AlertType = "danger";
                                exMsg           = ex.Message;
                            }

                            if (status)
                            {
                                //Add To Log
                                SecurityUtils.AddAuditLog("Requested for Forgotten Password", "User \"" + player.FullName + "\" requested for Forgotten Password , Email Sent to: \"" + player.EmailAddress + "\"", this);
                                model.Reason    = "Your Login Details has been sent to above email address. <a style='color:black' href='/Member/Login/" + model.DashboardURLId + "'> Log In </a>";
                                model.AlertType = "success";
                            }
                            else
                            {
                                model.Reason    = "Failed to send an Email. Please contact your Site Administrator." + exMsg + " - " + EmailsRepository.EmailErrorMsg;
                                model.AlertType = "danger";
                            }
                        }
                    }
                    else
                    {
                        model.Reason    = "Your provided email address is not valid. Please contact us at [email protected]";
                        model.AlertType = "danger";
                    }
                }
            }

            ViewBag.ModelIsLogin = true;

            return(View(model));
        }
        /// <summary>
        /// Save Player Progress Image
        /// </summary>
        /// <param name="PlayerProgressImages">List of Uploaded Images</param>
        /// <param name="PlayerEmailAddress">Player Email Address to match and save against Player record in DB</param>
        /// <param name="LeagueID">League ID from current League Home Page</param>
        /// <param name="IsFront">IsFront</param>
        /// <param name="IsSide">IsSide</param>
        /// <returns></returns>
        public ActionResult SavePlayerProgressImages(IEnumerable <HttpPostedFileBase> PlayerProgressImages_Front, IEnumerable <HttpPostedFileBase> PlayerProgressImages_Side,
                                                     string PlayerEmailAddress, long LeagueID, bool IsFront, bool IsSide)
        {
            IEnumerable <HttpPostedFileBase> PlayerProgressImages = null;
            List <PlayerImagesExt>           ListOfPlayerImages   = new List <PlayerImagesExt>();

            if (PlayerProgressImages_Front != null)
            {
                PlayerProgressImages = PlayerProgressImages_Front;
            }
            else if (PlayerProgressImages_Side != null)
            {
                PlayerProgressImages = PlayerProgressImages_Side;
            }

            PlayersRepository playerRepo = new PlayersRepository();
            var player = playerRepo.ReadOne_ByEmailAddress(PlayerEmailAddress);

            PlayerImagesRepository modelRepo = new PlayerImagesRepository();

            if (player != null)
            {
                ListOfPlayerImages = modelRepo.ReadAll(player.PlayerID, false, false);
            }

            var ErrorMsg = ValidatePlayer_ForProgressImage(player, ListOfPlayerImages, LeagueID, IsFront, IsSide);

            if (!string.IsNullOrEmpty(ErrorMsg))
            {
                return(Content(ErrorMsg));
            }
            else
            {
                var ParamPlayerID = player.PlayerID;

                string FinalFileName = "";
                // The Name of the Upload component is "files"
                if (PlayerProgressImages != null)
                {
                    string PlayerImagesFolder = Path.Combine(Server.MapPath("~" + SecurityUtils.Players_ImagePath + ""), ParamPlayerID.ToString());

                    foreach (var file in PlayerProgressImages)
                    {
                        if (!(System.IO.Directory.Exists(PlayerImagesFolder)))
                        {
                            System.IO.Directory.CreateDirectory(PlayerImagesFolder);
                        }

                        // Some browsers send file names with full path. This needs to be stripped.
                        string IEFileName = "", FileNameWithExtension = "";

                        if (Request.Browser.Browser.ToLower().Equals("ie") || Request.Browser.Browser.ToLower().Equals("internetexplorer"))
                        {
                            IEFileName = Path.GetFileName(file.FileName);
                        }

                        if (IEFileName != "")
                        {
                            FileNameWithExtension = IEFileName;
                            SecurityUtils.CheckforInvalidFileNameChar(ref FileNameWithExtension);
                        }
                        else
                        {
                            FileNameWithExtension = file.FileName;
                            SecurityUtils.CheckforInvalidFileNameChar(ref FileNameWithExtension);
                        }

                        var fileExtension = Path.GetExtension(FileNameWithExtension);

                        //Following Code will rename the file if it is already Exists
                        int count = 1;

                        string fileNameOnly = Guid.NewGuid().ToString(); //Path.GetFileNameWithoutExtension(FileNameWithExtension);
                        string extension    = Path.GetExtension(FileNameWithExtension);
                        string newFullPath  = FileNameWithExtension;
                        newFullPath = Path.Combine(PlayerImagesFolder, fileNameOnly + extension);

                        while (System.IO.File.Exists(newFullPath))
                        {
                            string tempFileName = string.Format("{0}({1})", fileNameOnly, count++);
                            newFullPath = Path.Combine(PlayerImagesFolder, tempFileName + extension);
                        }

                        fileNameOnly = Path.GetFileNameWithoutExtension(newFullPath);

                        //Update Filename from Repository
                        string Msg    = "";
                        bool   status = true;
                        FinalFileName = fileNameOnly + extension;

                        //Save the file to the Disk
                        file.SaveAs(newFullPath);

                        // ImageWaterMark imgWaterMark = new ImageWaterMark();

                        string PlayerImagePath = Path.Combine(PlayerImagesFolder, FinalFileName);

                        string WaterMarkImagePath = Server.MapPath("~/Images/verticle_mvff.png");

                        Image_Combine imgCombine = new Image_Combine();

                        string FinalFileName_WaterMarked = imgCombine.CombineBitmap_WatermarkImage(PlayerImagesFolder, FinalFileName, WaterMarkImagePath);
                        //imgWaterMark.GenerateWaterMarkOnImage(PlayerImagesFolder, FinalFileName, false, true, WaterMarkImagePath, null, false, false, true, false, false);

                        //Clear the Object
                        imgCombine = null;

                        PlayerImagesExt PlayerImg = new PlayerImagesExt()
                        {
                            PlayerID       = ParamPlayerID,
                            FileName       = FinalFileName_WaterMarked,
                            IsAnimated     = false,
                            Display        = true,
                            DefaultImage   = false,
                            IsFront        = IsFront,
                            IsSide         = IsSide,
                            UploadDateTime = DateTime.Now
                        };

                        modelRepo.CreateOrUpdate(ref PlayerImg, ref Msg, ref status, this);

                        string NonWaterMarkImagePath = Path.Combine(PlayerImagesFolder, FinalFileName);

                        if (System.IO.File.Exists(NonWaterMarkImagePath))
                        {
                            System.IO.File.Delete(NonWaterMarkImagePath);
                        }
                    }
                }

                // Return an empty string to signify success
                return(Content(""));
            }
        }