/// <summary>
        ///     send contact email to support
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public IActionResult UnSubscription(string email)
        {
            try
            {
                if (_databaseConnection.Subscriptions.Where(n => n.Email == email).ToList().Count < 0)
                {
                    //display notification
                    TempData["display"] =
                        "You currently do not have an active subscription on Afriplugz to Opt out of!";
                    TempData["notificationtype"] = NotificationType.Error.ToString();
                    return(RedirectToAction("Index"));
                }

                var subscription = _databaseConnection.Subscriptions.SingleOrDefault(n => n.Email == email);
                if (subscription != null)
                {
                    subscription.Status = "InActive";
                    _databaseConnection.Entry(subscription).State = EntityState.Modified;
                    _databaseConnection.SaveChanges();
                }

                //display notification
                TempData["display"]          = "You have successfully Unsubscribed from the Afriplugz Newsletter!";
                TempData["notificationtype"] = NotificationType.Success.ToString();
                return(RedirectToAction("Index"));
            }
            catch (Exception)
            {
                //display notification
                TempData["display"]          = "Request is unavailable, Try again Later!";
                TempData["notificationtype"] = NotificationType.Error.ToString();
                return(RedirectToAction("Index"));
            }
        }
        /// <summary>
        ///     Activate user account from SSO
        /// </summary>
        /// <param name="accessCode"></param>
        /// <returns></returns>
        public ActionResult AccountActivationLink(string accessCode)
        {
            var accessKey =
                _databaseConnection.AppUserAccessKeys.SingleOrDefault(n => n.AccountActivationAccessCode == accessCode);
            var appUser =
                _databaseConnection.AppUsers.Include(n => n.Role)
                .SingleOrDefault(n =>
                                 accessKey != null && n.AppUserId == accessKey.AppUserId);

            if (appUser != null)
            {
                if (appUser.Status == UserStatus.Inactive.ToString())
                {
                    //update user
                    appUser.Status = UserStatus.Active.ToString();
                    _databaseConnection.Entry(appUser).State = EntityState.Modified;
                    _databaseConnection.SaveChanges();
                    if (accessKey != null)
                    {
                        //update accessKeys
                        accessKey.AccountActivationAccessCode = new Md5Ecryption().RandomString(24);
                        accessKey.DateLastModified            = DateTime.Now;
                        accessKey.ExpiryDate = DateTime.Now.AddDays(1);
                        _databaseConnection.Entry(accessKey).State = EntityState.Modified;
                        _databaseConnection.SaveChanges();

                        HttpContext.Session.SetString("FrscQuestionLoggedInUserId", appUser.AppUserId.ToString());
                        HttpContext.Session.SetString("FrscQuestionLoggedInUser", JsonConvert.SerializeObject(appUser));
                        //display notification
                        TempData["display"] =
                            "You have successfully verified your account!";
                        TempData["notificationtype"] = NotificationType.Success.ToString();
                        return(RedirectToAction("Index", "Home"));
                    }

                    //display notification
                    TempData["display"] =
                        "There was an issue Activating your Account Try again or Contact Graceland Support!";
                    TempData["notificationtype"] = NotificationType.Error.ToString();
                }

                if (appUser.Status == UserStatus.Active.ToString())
                {
                    //display notification
                    TempData["display"] =
                        "You have already activated your account, use your username and password to login!";
                    TempData["notificationtype"] = NotificationType.Info.ToString();
                    return(RedirectToAction("Index", "Home"));
                }
            }

            //display notification
            TempData["display"] =
                "Your Request is Invalid, Try again Later!";
            TempData["notificationtype"] = NotificationType.Error.ToString();
            return(RedirectToAction("Login", "Account"));
        }
Beispiel #3
0
        public IActionResult AppCredential(AppCredential credential)
        {
            var authorizedUser = new AppUser();

            if (HttpContext.Session.GetString("FrscQuestionLoggedInUser") != null)
            {
                var userString = HttpContext.Session.GetString("FrscQuestionLoggedInUser");
                authorizedUser = JsonConvert.DeserializeObject <AppUser>(userString);
            }

            if (!authorizedUser.Role.AccessAdminConsole || !authorizedUser.Role.ManageApplicationUser)
            {
                return(RedirectToAction("UnauthorizedAccess", "Home"));
            }

            var signedInUserId = Convert.ToInt64(HttpContext.Session.GetString("FrscQuestionLoggedInUserId"));

            credential.DateLastModified = DateTime.Now;
            credential.LastModifiedBy   = signedInUserId;

            if (credential.AppCredentialId > 0)
            {
                credential.LastModifiedBy   = signedInUserId;
                credential.DateLastModified = DateTime.Now;
                _databaseConnection.Entry(credential).State = EntityState.Modified;
                _databaseConnection.SaveChanges();
            }
            else
            {
                credential.CreatedBy   = signedInUserId;
                credential.DateCreated = DateTime.Now;
                _databaseConnection.AppCredentials.Add(credential);
                _databaseConnection.SaveChanges();
            }

            TempData["display"]          = "You have successfully modified the Application Private Credentials!";
            TempData["notificationtype"] = NotificationType.Success.ToString();
            return(RedirectToAction("Dashboard", "User"));
        }
        public ActionResult Edit(Question question)
        {
            var authorizedUser = new AppUser();

            if (HttpContext.Session.GetString("FrscQuestionLoggedInUser") != null)
            {
                var userString = HttpContext.Session.GetString("FrscQuestionLoggedInUser");
                authorizedUser = JsonConvert.DeserializeObject <AppUser>(userString);
            }

            if (!authorizedUser.Role.AccessAdminConsole ||
                !authorizedUser.Role.EditQuestion)
            {
                return(RedirectToAction("UnauthorizedAccess", "Home"));
            }

            try
            {
                // TODO: Add update logic here
                var signedInUserId = Convert.ToInt64(HttpContext.Session.GetString("FrscQuestionLoggedInUserId"));
                question.DateLastModified = DateTime.Now;
                question.LastModifiedBy   = signedInUserId;
                if (_databaseConnection.Questions.Where(n => n.QuestionValue == question.QuestionValue && n.QuestionId != question.QuestionId).ToList()
                    .Count > 0)
                {
                    //display notification
                    TempData["display"]          = "Unable to perform the action because this record already exist!";
                    TempData["notificationtype"] = NotificationType.Error.ToString();
                    return(View(question));
                }

                _databaseConnection.Entry(question).State = EntityState.Modified;
                _databaseConnection.SaveChanges();

                //display notification
                TempData["display"]          = "You have successfully modified the Question!";
                TempData["notificationtype"] = NotificationType.Success.ToString();
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                //display notification
                TempData["display"]          = ex.Message;
                TempData["notificationtype"] = NotificationType.Error.ToString();
                return(View(question));
            }
        }
Beispiel #5
0
        public ActionResult Edit(Faq faq)
        {
            var authorizedUser = new AppUser();

            if (HttpContext.Session.GetString("FrscQuestionLoggedInUser") != null)
            {
                var userString = HttpContext.Session.GetString("FrscQuestionLoggedInUser");
                authorizedUser = JsonConvert.DeserializeObject <AppUser>(userString);
            }

            if (!authorizedUser.Role.AccessAdminConsole ||
                !authorizedUser.Role.ManageFaq)
            {
                return(RedirectToAction("UnauthorizedAccess", "Home"));
            }

            try
            {
                // TODO: Add update logic here
                var signedInUserId = Convert.ToInt64(HttpContext.Session.GetString("FrscQuestionLoggedInUserId"));
                faq.DateLastModified = DateTime.Now;
                faq.LastModifiedBy   = signedInUserId;
                _databaseConnection.Entry(faq).State = EntityState.Modified;
                _databaseConnection.SaveChanges();

                //display notification
                TempData["display"]          = "You have successfully modified the FAQ!";
                TempData["notificationtype"] = NotificationType.Success.ToString();
                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                //display notification
                TempData["display"]          = ex.Message;
                TempData["notificationtype"] = NotificationType.Error.ToString();
                return(View());
            }
        }
        public ActionResult ChangePassword(AccountModel model)
        {
            var access         = new AccessLog();
            var signedInUserId = Convert.ToInt64(HttpContext.Session.GetString("FrscQuestionLoggedInUserId"));
            var appUser        = _databaseConnection.AppUsers.Find(model.AppUserId);

            try
            {
                if (appUser != null)
                {
                    appUser.LastModifiedBy   = signedInUserId;
                    appUser.DateLastModified = DateTime.Now;
                    appUser.Password         = new Hashing().HashPassword(model.Password);
                    appUser.ConfirmPassword  = appUser.Password;
                    _databaseConnection.Entry(appUser).State = EntityState.Modified;
                    _databaseConnection.SaveChanges();

                    //determine access logs save transaction
                    access.Message =
                        "You have successfully overridden the Account Password!";
                    access.Status           = AccessStatus.Approved.ToString();
                    access.Category         = AccessCategory.ForgotPassword.ToString();
                    access.DateCreated      = DateTime.Now;
                    access.DateLastModified = DateTime.Now;
                    access.CreatedBy        = appUser.AppUserId;
                    access.LastModifiedBy   = appUser.AppUserId;
                    access.AppUserId        = appUser.AppUserId;
                    _databaseConnection.AccessLogs.Add(access);
                    _databaseConnection.SaveChanges();
                }

                //display notification
                TempData["display"]          = access.Message;
                TempData["notificationtype"] = NotificationType.Success.ToString();
                return(RedirectToAction("Index", "AppUser"));
            }
            catch (Exception)
            {
                //display notification
                TempData["display"]          = "There was an issue overriding the account password, Check and Try again!";
                TempData["notificationtype"] = NotificationType.Error.ToString();
                return(View("ChangePassword", model));
            }
        }