Beispiel #1
0
        public ActionResult RecoverPassword(RecoverPasswordVm data)
        {
            try
            {
                using (_entities)
                {
                    if (!ModelState.IsValid)
                    {
                        return(View(data));
                    }

                    //Check that email address is exist
                    var userInfo = _entities.UserMasters.FirstOrDefault(s => s.Email == data.Email.Trim());

                    if (userInfo != null)
                    {
                        //Generate and save token
                        var randomStringGenerator = new Utilities.RandomStringGenerator();
                        userInfo.Tokens = randomStringGenerator.GetRandomString(64,
                                                                                Utilities.RandomStringGenerator.AlphanumericCaps.ToCharArray());
                        userInfo.TokensGenerated = DateTime.Now;
                        _entities.Entry(userInfo);
                        _entities.SaveChanges();

                        //Send mail HERE
                        var replacement = new Dictionary <string, string>
                        {
                            { "#name#", userInfo.Name },
                            { "#link#", BasicProperty.RecoverPasswordLink + userInfo.Tokens }
                        };

                        //Sent email from HERE
                        var isEailSent = SendEmail.Templete(replacement, data.Email,
                                                            (int)EnumList.EmailTemplete.ForgotPassword);

                        if (isEailSent)
                        {
                            TempData["Success"] = "Please check your mailbox.";
                        }
                        else
                        {
                            TempData["Error"] = "Unable to send mail to your mail box.";
                        }
                    }
                    else
                    {
                        TempData["Error"] = "This email is not registered with us";
                    }

                    return(View(data));
                }
            }
            catch (Exception e)
            {
                TempData["Error"] = e.Message;
                throw;
            }
        }
Beispiel #2
0
        public async Task <ActionResult> Create(UserMaster data)
        {
            using (_entities)
            {
                if (data.UserMasterId > 0)
                {
                    var userMaster = await _entities.UserMasters.FindAsync(data.UserMasterId);

                    if (userMaster != null)
                    {
                        //Update code HERE
                        userMaster.Name                   = data.Name;
                        userMaster.Email                  = data.Email;
                        userMaster.RoleMasterId           = data.RoleMasterId;
                        userMaster.Mobile                 = data.Mobile;
                        userMaster.CompanyName            = data.CompanyName;
                        userMaster.SkypeId                = data.SkypeId;
                        userMaster.CreatedBy              = Convert.ToInt64(CookieHelper.GetCookie(CookieName.UserMasterId));
                        userMaster.IsActive               = true;
                        userMaster.IsDelete               = false;
                        userMaster.CreatedDate            = DateTime.Now;
                        _entities.Entry(userMaster).State = EntityState.Modified;
                        await _entities.SaveChangesAsync();

                        TempData["Success"] = "User details updated successfully";
                    }
                    else
                    {
                        return(RedirectToAction("Create"));
                    }
                }
                else
                {
                    //Add code HERE
                    var randomStringGenerator = new Utilities.RandomStringGenerator();
                    //var password = randomStringGenerator.GetRandomString(6,
                    //    Utilities.RandomStringGenerator.AlphanumericCaps.ToCharArray());
                    var password = "******";

                    //Create HASH & SALT
                    var salt = Utilities.GenerateSalt(32);
                    var hash = Utilities.GenerateHash(password, data.Email.Trim(), salt);

                    data.CreatedBy   = Convert.ToInt64(CookieHelper.GetCookie(CookieName.UserMasterId));
                    data.IsActive    = true;
                    data.IsDelete    = false;
                    data.Salt        = salt;
                    data.Hash        = hash;
                    data.CreatedDate = DateTime.Now;
                    _entities.UserMasters.Add(data);
                    await _entities.SaveChangesAsync();

                    //Todo: Send Password Code HERE
                    //Send mail HERE
                    var replacement = new Dictionary <string, string>
                    {
                        { "#name#", data.Name },
                        { "#password#", password }
                    };

                    //Sent email from HERE
                    var isEailSent = SendEmail.Templete(replacement, data.Email, (int)EnumList.EmailTemplete.Welcome);


                    TempData["Success"] = "User details added successfully";
                }

                return(RedirectToAction("List"));
            }
        }