public JsonResult ProcessEditAlertProviderItemRequest(AlertProviderItemObj model)
        {
            try
            {
                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                var selAlertProviderItem = Session["_CurrentSelAlertProviderItem_"] as AlertProviderItemObj;
                if (selAlertProviderItem == null || selAlertProviderItem.AlertProviderItemId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }


                if (model.AlertItemId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Kindly select valid Alert Item" }));
                }

                var passObj = new EditAlertProviderItemObj
                {
                    AdminUserId         = userData.UserId,
                    AlertProviderItemId = selAlertProviderItem.AlertProviderItemId,
                    AlertProviderId     = selAlertProviderItem.AlertProviderId,
                    AlertItemId         = model.AlertItemId,
                    Status = model.StatusVal ? 1 : 0,
                };

                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }


                var response = AlertProviderItemService.UpdateAlertProviderItem(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelAlertProviderItem_"] = null;
                Session["_AlertProviderItemList_" + selAlertProviderItem.AlertProviderId] = null;
                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#2
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.HttpContext.Request.IsAjaxRequest())
            {
                return;
            }
            filterContext.HttpContext.Response.StatusCode     = 600;
            filterContext.Controller.ViewBag.ValidAuthourized = "0";

            var modelList = filterContext.ActionParameters.Where(ap => ap.Key == "model").ToList();

            if (modelList.IsNullOrEmpty())
            {
                filterContext.HttpContext.Response.AppendHeader("message", "Invalid Registration Information");
                return;
            }
            if (!modelList.Any() || modelList.Count != 1)
            {
                filterContext.HttpContext.Response.AppendHeader("message", "Invalid Registration Information");
                return;
            }

            if (!(modelList[0].Value is PortalUserContract model))
            {
                filterContext.HttpContext.Response.AppendHeader("message", "Invalid Registration Information");
                return;
            }

            if (!GenericVal.Validate(model, out var msg))
            {
                filterContext.Controller.ViewBag.Error = msg;
                return;
            }

            if (string.IsNullOrEmpty(model.UserName) || string.IsNullOrEmpty(model.Password) || string.IsNullOrEmpty(model.FirstName) || string.IsNullOrEmpty(model.LastName))
            {
                filterContext.HttpContext.Response.AppendHeader("message", "Invalid Registration Information");
                return;
            }


            //string msg;
            //var retVal = ProfileService.RegisterNewUser(model, out msg);
            //if (!retVal)
            //{
            //    filterContext.HttpContext.Response.AppendHeader("message", msg.Length > 0 ? msg : "Invalid Registration Information");
            //    return;
            //}
            filterContext.HttpContext.Response.StatusCode = (int)HttpStatusCode.OK;
            filterContext.HttpContext.Response.AppendHeader("", "");
            filterContext.Controller.ViewBag.ValidAuthourized = "1";
            base.OnActionExecuting(filterContext);
        }
示例#3
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.Controller.ViewBag.IsSuccessful = false;

            var modelList = filterContext.ActionParameters.Where(ap => ap.Key == "model").ToList();

            if (modelList.IsNullOrEmpty())
            {
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }
            if (!modelList.Any() || modelList.Count != 1)
            {
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }

            if (!(modelList[0].Value is ResetPasswordContract model))
            {
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }

            if (!GenericVal.Validate(model, out var msg))
            {
                filterContext.Controller.ViewBag.Error = msg;
                return;
            }

            var contract = new ControlUserObj
            {
                AdminUserId = 1,
                Email       = model.Username,
                ControlType = (int)UserControlType.Locked_Out
            };

            var lockUser = new PortalUserManager().LockUser(contract, model.Username);

            if (lockUser == null)
            {
                filterContext.Controller.ViewBag.Error = "Process Failed! Unable to unlock account";
                return;
            }
            if (!lockUser.Status.IsSuccessful)
            {
                filterContext.Controller.ViewBag.Error = string.IsNullOrEmpty(lockUser.Status.Message.FriendlyMessage) ? "Process Failed! Unable to update user's account" : lockUser.Status.Message.FriendlyMessage;
                return;
            }

            filterContext.Controller.ViewBag.IsSuccessful = true;
            base.OnActionExecuting(filterContext);
        }
示例#4
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.Controller.ViewBag.IsSuccessful = false;
            filterContext.Controller.ViewBag.Error        = "";

            var modelList = filterContext.ActionParameters.Where(ap => ap.Key == "model").ToList();

            if (modelList.IsNullOrEmpty())
            {
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }
            if (!modelList.Any() || modelList.Count != 1)
            {
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }

            if (!(modelList[0].Value is ResetPasswordContract model))
            {
                filterContext.Controller.ViewBag.Error = "Invalid update information";
                return;
            }
            if (!GenericVal.Validate(model, out var msg))
            {
                filterContext.Controller.ViewBag.Error = msg;
                return;
            }

            var contract = new ResetPasswordObj
            {
                AdminUserId = 1,
                Email       = model.Username,
            };

            var passReset = new PortalUserManager().ResetPassword(contract, model.Username);

            if (passReset == null)
            {
                filterContext.Controller.ViewBag.Error = "Process Failed! Unable to reset password";
                return;
            }
            if (!passReset.Status.IsSuccessful)
            {
                filterContext.Controller.ViewBag.Error = string.IsNullOrEmpty(passReset.Status.Message.FriendlyMessage) ? "Process Failed! Unable to update password" : passReset.Status.Message.FriendlyMessage;
                return;
            }

            filterContext.Controller.ViewBag.IsSuccessful    = true;
            filterContext.Controller.ViewBag.ThisNewPassword = passReset.NewPassword;
            base.OnActionExecuting(filterContext);
        }
示例#5
0
        public JsonResult ProcessAddClientUserRequest(RegClientUserObj model)
        {
            try
            {
                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }


                if (model.ClientId < 1 || model.UserId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid User Selection" }));
                }

                model.AdminUserId = userData.UserId;

                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }


                var response = ClientService.AddClientUser(model, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#6
0
        static void Main(string[] args)
        {
            //Generic type is a string in this case
            GenericClass <string> genStr = new GenericClass <string>();
            string name = genStr.GenericMethod("Tochukwu");

            genStr.GenericProperty = "Programmer";
            Console.WriteLine("{0}, {1}", name, genStr.GenericProperty);

            //Generic type is now an int in this case
            GenericClass <int> genInt = new GenericClass <int>();
            int salary = genInt.GenericMethod(33000);

            genInt.GenericProperty = 4;
            Console.WriteLine("R{0} - {1}yrs", salary, genInt.GenericProperty);

            /*Generic class with restrictions*/
            GenericRef <Person>     person  = new GenericRef <Person>();
            GenericVal <int>        number  = new GenericVal <int>();
            GenericPerson <Person>  madu    = new GenericPerson <Person>();
            GenericPerson <Student> learner = new GenericPerson <Student>();

            /*Generic method*/
            Example             example = new Example();
            int                 wages   = example.NoRestrict(33000);
            GenericRef <Person> someone = example.Restrict(person);

            Console.WriteLine(wages);
            Console.WriteLine(someone);

            example.Multiple <string, int>("Tochi", 33000);
            example.Multiple("Tochi", 33000);



            Console.ReadLine();
        }
        public JsonResult ProcessEditBeneficiaryRequest(BeneficiaryObj model)
        {
            try
            {
                #region Current User Session Check

                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                #endregion

                #region Model Validations

                var selBeneficiary = Session["_CurrentSelBeneficiary_"] as BeneficiaryObj;
                if (selBeneficiary == null || selBeneficiary.BeneficiaryId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model.ClientId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Client required " }));
                }
                if (model.BeneficiaryId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "BeneficiaryId required" }));
                }

                var previousBeneficiaryList = (List <BeneficiaryObj>)Session["_BeneficiaryList_"];
                if (previousBeneficiaryList != null)
                {
                    if (previousBeneficiaryList.Count(x => x.CompanyName.ToLower().Trim().ToStandardHash() == model.CompanyName.ToLower().Trim().ToStandardHash() &&
                                                      x.ProductId == model.ProductId &&
                                                      x.FirstName == model.FirstName &&
                                                      x.LastName == model.LastName &&
                                                      x.ClientId == model.ClientId &&
                                                      x.ProductItemId == model.ProductItemId &&
                                                      x.BeneficiaryId != model.BeneficiaryId) > 0)
                    {
                        return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Beneficiary Already Exist!" }));
                    }
                }

                #endregion

                #region Build Object
                var passObj = new EditBeneficiaryObj()
                {
                    ClientId        = model.ClientId,
                    ProductId       = model.ProductId,
                    AdminUserId     = userData.UserId,
                    Status          = model.StatusVal ? 1 : 0,
                    ProductItemId   = model.ProductItemId,
                    MiddleName      = model.MiddleName,
                    FirstName       = model.FirstName,
                    LastName        = model.LastName,
                    CompanyName     = model.CompanyName,
                    BeneficiaryCode = "23flave23",
                    BeneficiaryType = model.BeneficiaryType,
                    DepartmentId    = model.DepartmentId,
                    Email           = model.Email,
                    MobileNumber    = model.MobileNumber,
                    BeneficiaryId   = model.BeneficiaryId,
                };
                #endregion

                #region Response Validations

                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }


                var response = BeneficiaryServices.UpdateBeneficiary(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }


                #endregion

                Session["_CurrentSelBeneficiary_"] = null;

                #region Request and Response Validation

                var searchObj = new BeneficiarySearchObj
                {
                    AdminUserId   = userData.UserId,
                    BeneficiaryId = 0,
                    Status        = -2
                };

                ViewBag.ClientId      = model.ClientId;
                ViewBag.ProductId     = model.ProductId;
                ViewBag.ProductItemId = model.ProductItemId;

                var retVal = BeneficiaryServices.LoadBeneficiaries(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.Beneficiaries != null)
                {
                    var Beneficiarys = retVal.Beneficiaries.OrderBy(m => m.BeneficiaryId).ToList();
                    Session["_BeneficiaryList_"] = Beneficiarys;
                }

                #endregion

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
        public JsonResult ProcessEditRequestTypeSettingRequest(RequestTypeSetting model)
        {
            try
            {
                #region Current User session check

                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                #endregion

                var selRequestTypeSetting = Session["_CurrentSelRequestTypeSetting_"] as RequestTypeSetting;

                #region Model validation check

                if (selRequestTypeSetting == null || selRequestTypeSetting.RequestTypeSettingId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model.ClientId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Client required " }));
                }
                if (model.RequestTypeSettingId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "RequestTypeSettingId required" }));
                }
                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }
                #endregion

                #region Check if item already exist from Session

                var requestTypeSettingList = (List <RequestTypeSetting>)Session["_RequestTypeSettingList_"];
                if (requestTypeSettingList != null)
                {
                    if (requestTypeSettingList.Count(x => x.RequestType == model.RequestType &&
                                                     x.ClientId == model.ClientId &&
                                                     x.ProductId == model.ProductId &&
                                                     x.ProductItemId == model.ProductItemId &&
                                                     x.RequestTypeSettingId != model.RequestTypeSettingId) > 0)
                    {
                        return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Request Type Already Exist!" }));
                    }
                }


                #endregion

                #region Build request Object

                var requestObj = new EditRequestTypeSettingObj
                {
                    ClientId             = model.ClientId,
                    ProductId            = model.ProductId,
                    AdminUserId          = userData.UserId,
                    Status               = 1,
                    ProductItemId        = model.ProductItemId,
                    AllowedTaskTimeSpan  = model.AllowedTaskTimeSpan,//Convert.ToInt32(UtilTools.CurrentTimeStamp()),
                    AmountAllowed        = model.AmountAllowed,
                    RequestType          = model.RequestType,
                    TimeElapseAction     = 1,//Convert.ToInt32(DateTime.Now.Day), //model.TimeElapseAction,
                    TimeStampRegistered  = UtilTools.CurrentTimeStamp(),
                    RequestFrequencyType = model.RequestFrequencyType,
                    RequestTypeSettingId = model.RequestTypeSettingId,
                };

                #endregion

                #region Request and response validations

                var response = RequestTypeSettingServices.UpdateRequestTypeSetting(requestObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelRequestTypeSetting_"] = null;

                var searchObj = new RequestTypeSettingSearchObj
                {
                    AdminUserId          = userData.UserId,
                    RequestTypeSettingId = 0,
                    Status = -2
                };


                var retVal = RequestTypeSettingServices.LoadRequestTypeSettings(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.RequestTypeSettings != null)
                {
                    var RequestTypeSettings = retVal.RequestTypeSettings.OrderBy(m => m.RequestTypeSettingId).ToList();
                    Session["_RequestTypeSettingList_"] = RequestTypeSettings.Where(m => m.ClientId == model.ClientId &&
                                                                                    m.ProductId == model.ProductId &&
                                                                                    m.ProductItemId == model.ProductItemId).ToList();
                }

                #endregion

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#9
0
        public JsonResult ProcessEditExpenseItemSettingRequest(ExpenseItemSettingObj model)
        {
            try
            {
                #region User Session Check

                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }
                #endregion

                #region Check if Item Session is null
                var selExpenseItemSetting = Session["_CurrentSelExpenseItemSetting_"] as ExpenseItemSettingObj;
                if (selExpenseItemSetting == null || selExpenseItemSetting.ExpenseItemSettingId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }
                #endregion

                #region Model Validations

                if (model == null)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model.ClientId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "client required " }));
                }

                if (model.ProductItemId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Product Item required " }));
                }

                if (model.ProductId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Product required " }));
                }

                if (model.ExpenseCategoryId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "ExpenseCategory required " }));
                }
                if (model.ExpenseClassificationId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Expense Classification required " }));
                }

                if (model.ExpenseItemId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Expense Item required " }));
                }

                if (model.ExpenseTypeId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Expense Type required " }));
                }

                if (model.PreferedVendorId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Prefered Vendor required " }));
                }

                if (model.RequestFrequency < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Request Frequency required " }));
                }
                if (model.RequestFrequencyType < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Request Frequency Type required " }));
                }

                if (model.UnitPrice < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Unit Price  required " }));
                }
                if (model.ExpenseItemSettingId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Unit Price  required " }));
                }

                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }


                #endregion

                #region Build Request Object

                var passObj = new EditExpenseItemSettingObj()
                {
                    ClientId                = model.ClientId,
                    ProductId               = model.ProductId,
                    AdminUserId             = userData.UserId,
                    RegisteredBy            = userData.UserId,
                    ProductItemId           = model.ProductItemId,
                    ExpenseCategoryId       = model.ExpenseCategoryId,
                    ExpenseClassificationId = model.ExpenseClassificationId,
                    ExpenseItemId           = model.ExpenseItemId,
                    ExpenseTypeId           = model.ExpenseTypeId,
                    IsEnabled               = true,
                    PreferedVendorId        = model.PreferedVendorId,
                    RegularQuantity         = model.RegularQuantity,
                    RequestFrequency        = model.RequestFrequency,
                    RequestFrequencyType    = model.RequestFrequencyType,
                    Status               = 1,
                    UnitPrice            = model.UnitPrice,
                    ExpenseItemSettingId = model.ExpenseItemSettingId,
                };

                #endregion

                #region Response and Validations Check
                var response = ExpenseItemSettingServices.UpdateExpenseItemSetting(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelExpenseItemSetting_"] = null;

                var searchObj = new ExpenseItemSettingSearchObj
                {
                    AdminUserId          = userData.UserId,
                    ExpenseItemSettingId = 0,
                    Status = -2
                };

                var retVal = ExpenseItemSettingServices.LoadExpenseItemSettings(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.ExpenseItemSettings != null)
                {
                    var ExpenseItemSettings = retVal.ExpenseItemSettings.OrderBy(m => m.ExpenseItemSettingId).ToList();
                    Session["_ExpenseItemSettingList_"] = ExpenseItemSettings.Where(m => m.ClientId == model.ClientId && m.ProductId == model.ProductId && m.ProductItemId == model.ProductItemId).ToList();
                }

                #endregion

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#10
0
        public JsonResult ProcessEditClientRequest(ClientObj model)
        {
            try
            {
                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                var selClient = Session["_CurrentSelClient_"] as ClientObj;
                if (selClient == null || selClient.ClientId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model.ClientId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid Selection" }));
                }

                if (string.IsNullOrEmpty(model.ClientName) || model.ClientName.Length < 2)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid Client Name" }));
                }
                if (string.IsNullOrEmpty(model.Address) || model.Address.Length < 2)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid Address " }));
                }
                if (string.IsNullOrEmpty(model.MobileNumber) || model.MobileNumber.Length < 7 || model.MobileNumber.Length > 15)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid Mobile Number " }));
                }


                var passObj = new RegResetObj
                {
                    AdminUserId  = userData.UserId,
                    ClientName   = model.ClientName,
                    Address      = model.Address,
                    ClientId     = selClient.ClientId,
                    MobileNumber = model.MobileNumber,
                    Email        = model.Email,
                    Status       = model.StatusVal ? 1 : 0,
                };

                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }


                var response = ClientService.UpdateClient(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelClient_"] = null;

                var searchObj = new ClientSearchObj
                {
                    AdminUserId = userData.UserId,
                    ClientId    = 0,
                    Status      = -2
                };

                var retVal = ClientService.LoadClients(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.Clients != null)
                {
                    var clients = retVal.Clients.OrderBy(m => m.ClientId).ToList();
                    Session["_ClientList_"] = clients;
                }
                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#11
0
        public JsonResult ProcessEditDepartmentUserRequest(DepartmentUserObj model)
        {
            try
            {
                #region Current User Session Check

                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();
                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                #endregion

                #region Model Validation

                if (model == null)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model.ClientId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "client required " }));
                }
                if (model.DepartmentUserId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Department User Id required " }));
                }

                if (model.ProductItemId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Product Item required " }));
                }

                if (model.ProductId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Product required " }));
                }
                if (model.DepartmentId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "Department  required " }));
                }
                if (model.UserId < 1)
                {
                    return(Json(new { isauthenticated = true, issuccessful = false, isreload = false, error = "User required " }));
                }
                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }
                #endregion

                #region Check if Item Already Exist

                var previousDepartmentList = (List <DepartmentUserObj>)Session["_DepartmentUserList_"];
                if (previousDepartmentList != null)
                {
                    if (previousDepartmentList.Count(x => x.DepartmentId == model.DepartmentId &&
                                                     x.ClientId == model.ClientId &&
                                                     x.ProductId == model.ProductId &&
                                                     x.ProductItemId == model.ProductItemId &&
                                                     x.UserId == model.UserId &&
                                                     x.DepartmentUserId != x.DepartmentUserId) > 0)
                    {
                        return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "User Already Added to Department" }));
                    }
                }

                #endregion

                #region Request from Users Service

                var searchObj2 = new UserSearchObj
                {
                    AdminUserId = userData.UserId,
                    Status      = -2,
                    StopDate    = "",
                    StartDate   = "",
                    UserId      = 0,
                };

                var userRetVal = new PortalUserManager().LoadUsers(searchObj2, userData.Username);

                if (userRetVal?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                var userList = userRetVal.Users.OrderBy(x => x.UserId).ToList();

                #endregion


                var previousDepartmentUserList = (List <DepartmentUserObj>)Session["_DepartmentUserList_"];

                #region Build Request


                var passObj = new EditDepartmentUserObj()
                {
                    ClientId         = model.ClientId,
                    ProductId        = model.ProductId,
                    AdminUserId      = userData.UserId,
                    Status           = 1,
                    ProductItemId    = model.ProductItemId,
                    DepartmentId     = model.DepartmentId,
                    UserId           = model.UserId,
                    UserRoles        = string.Join(",", userList.FirstOrDefault(x => x.UserId == model.UserId).RoleNames),
                    Email            = userList.FirstOrDefault(x => x.UserId == model.UserId).Email,
                    FullName         = userList.FirstOrDefault(x => x.UserId == model.UserId).FirstName + " " + userList.FirstOrDefault(x => x.UserId == model.UserId).LastName,
                    DepartmentUserId = model.DepartmentUserId
                };


                #endregion

                #region Request and Response Validations

                var response = DepartmentUserServices.UpdateDepartmentUser(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelDepartmentUser_"] = null;

                var searchObj = new DepartmentUserSearchObj
                {
                    AdminUserId      = userData.UserId,
                    DepartmentUserId = 0,
                    Status           = -2
                };

                var retVal = DepartmentUserServices.LoadDepartmentUsers(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.DepartmentUsers != null)
                {
                    var DepartmentUsers = retVal.DepartmentUsers.OrderBy(m => m.DepartmentUserId).ToList();
                    Session["_DepartmentUserList_"] = DepartmentUsers.Where(m => m.ClientId == model.ClientId && m.ProductId == model.ProductItemId && m.ProductItemId == model.ProductItemId).ToList();
                }

                #endregion



                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#12
0
        public JsonResult ProcessEditSMSRouteRequest(SMSRouteObj model)
        {
            try
            {
                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                var selSMSRoute = Session["_CurrentSelSMSRoute_"] as SMSRouteObj;
                if (selSMSRoute == null || selSMSRoute.SMSRouteId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model.SMSRouteId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid Selection" }));
                }

                if (string.IsNullOrEmpty(model.Name) || model.Name.Length < 2)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid SMSRoute Name" }));
                }

                if (string.IsNullOrEmpty(model.Name) || model.Name.Length < 2)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Invalid SMSRoute Name" }));
                }

                var passObj = new EditSMSRouteObj
                {
                    AdminUserId = userData.UserId,
                    Name        = model.Name,
                    SMSRouteId  = selSMSRoute.SMSRouteId,
                    Rate        = model.Rate,
                    Bonus       = model.Bonus,
                    AppBonus    = model.AppBonus,
                    Loyalty     = model.Loyalty,
                    Status      = model.StatusVal ? 1 : 0,
                };

                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }


                var response = SMSRouteService.UpdateSMSRoute(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelSMSRoute_"] = null;
                Session["_SMSRouteList_"]       = null;
                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#13
0
        public JsonResult ProcessEditWorkflowSettingRequest(WorkflowSettingObj model)
        {
            try
            {
                #region Current user session check

                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                #endregion

                #region Check if Settings list is null else return to view

                var selWorkflowSetting = Session["_CurrentSelWorkflowSetting_"] as WorkflowSettingObj;
                if (selWorkflowSetting == null || selWorkflowSetting.WorkflowSettingId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                #endregion

                #region model validations


                if (model.ClientId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Client required " }));
                }
                if (model.WorkflowSettingId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "WorkflowSettingId required" }));
                }
                if (model.RequestType < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Request Type required" }));
                }
                if (model.ProductItemId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "ProductItemId required" }));
                }
                if (string.IsNullOrEmpty(model.ApprovalWorkflow))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Approval Workflow required" }));
                }
                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }

                #endregion

                #region Build Request object

                var passObj = new EditWorkflowSettingObj()
                {
                    ClientId             = model.ClientId,
                    ProductId            = model.ProductId,
                    AdminUserId          = userData.UserId,
                    RegisteredBy         = userData.UserId,
                    ProductItemId        = model.ProductItemId,
                    RequestType          = model.RequestType,
                    TimeStampRegiestered = DateTime.Now.ToString("yy-MMM-dd ddd"),
                    ApprovalWorkflow     = model.ApprovalWorkflow,
                    Status            = model.StatusVal ? 1 : 0,
                    WorkflowSettingId = model.WorkflowSettingId,
                };


                #endregion

                #region Request and response validations

                var response = WorkflowSettingServices.UpdateWorkflowSetting(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelWorkflowSetting_"] = null;

                var searchObj = new WorkflowSettingSearchObj
                {
                    AdminUserId       = userData.UserId,
                    WorkflowSettingId = 0,
                    Status            = -2
                };

                var retVal = WorkflowSettingServices.LoadWorkflowSettings(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.WorkflowSettings != null)
                {
                    var WorkflowSettings = retVal.WorkflowSettings.OrderBy(m => m.WorkflowSettingId).ToList();
                    Session["_WorkflowSettingList_"] = WorkflowSettings.Where(m => m.ClientId == model.ClientId &&
                                                                              m.ProductId == model.ProductId &&
                                                                              m.ProductItemId == model.ProductItemId);
                }

                #endregion

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
        public JsonResult ProcessEditExpenseLookupRequest(ExpenseLookupObj model)
        {
            try
            {
                #region Current User Session Check

                var userData = MvcApplication.GetUserData(User.Identity.Name) ?? new UserData();

                if (userData.UserId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                #endregion

                #region Validation Checks
                var selExpenseLookup = Session["_CurrentSelExpenseLookup_"] as ExpenseLookupObj;
                if (selExpenseLookup == null || selExpenseLookup.ExpenseLookupId < 1)
                {
                    return(Json(new { IsSuccessful = false, Error = "Your session has expired", IsAuthenticated = false }));
                }

                if (model.ClientId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Client required " }));
                }
                if (model.ExpenseLookupId < 1)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "ExpenseLookupId required" }));
                }

                if (string.IsNullOrEmpty(model.LookupName) || model.LookupName.Length < 2)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Lookup Name is required" }));
                }
                if (!GenericVal.Validate(model, out var msg))
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = $"Validation Error Occurred! Detail: {msg}" }));
                }
                #endregion

                #region Build Requesr Object


                var passObj = new EditExpenseLookupObj()
                {
                    ClientId            = model.ClientId,
                    ProductId           = model.ProductId,
                    AdminUserId         = userData.UserId,
                    ChannelCode         = "Channel",
                    ExclusionList       = model.ExclusionList,
                    InclusionList       = model.InclusionList,
                    IsEnabled           = model.IsEnabled,
                    LookupItem          = model.LookupItem,
                    LookupName          = model.LookupName,
                    RegisteredBy        = 1,
                    Status              = 1,
                    TimeStampRegistered = DateTime.Now.ToString("ddd-mmm-yyyy"),
                    ExpenseLookupId     = model.ExpenseLookupId,
                    ProductItemId       = model.ProductItemId
                };


                #endregion

                #region Request and responses Validation checks

                var response = ExpenseLookUpServices.UpdateExpenseLookup(passObj, userData.Username);
                if (response?.Status == null)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Error Occurred! Please try again later" }));
                }

                if (!response.Status.IsSuccessful)
                {
                    return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = string.IsNullOrEmpty(response.Status.Message.TechnicalMessage) ? "Process Failed! Unable to add course of study" : response.Status.Message.TechnicalMessage }));
                }

                Session["_CurrentSelExpenseLookup_"] = null;

                var searchObj = new ExpenseLookupSearchObj
                {
                    AdminUserId     = userData.UserId,
                    ExpenseLookupId = 0,
                    Status          = -2
                };

                var retVal = ExpenseLookUpServices.LoadExpenseLookups(searchObj, userData.Username);
                if (retVal?.Status != null && retVal.ExpenseLookups != null)
                {
                    var ExpenseLookups = retVal.ExpenseLookups.OrderBy(m => m.ExpenseLookupId).ToList();
                    Session["_ExpenseLookupList_"] = ExpenseLookups.Where(m => m.ProductId == model.ProductId && m.ClientId == model.ClientId && m.ProductItemId == model.ProductItemId).ToList();
                }

                #endregion

                return(Json(new { IsAuthenticated = true, IsSuccessful = true, IsReload = false, Error = "" }));
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(Json(new { IsAuthenticated = true, IsSuccessful = false, IsReload = false, Error = "Process Error Occurred! Please try again later" }));
            }
        }
示例#15
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.Controller.ViewBag.UserINFOCode   = null;
            filterContext.Controller.ViewBag.FirstLogin     = null;
            filterContext.Controller.ViewBag.EmailConfirmed = null;
            filterContext.Controller.ViewBag.Error          = "";


            var modelList = filterContext.ActionParameters.Where(ap => ap.Key == "model").ToList();

            if (modelList.IsNullOrEmpty() || !modelList.Any() || modelList.Count != 1)
            {
                filterContext.Controller.ViewBag.Error = "Invalid Login Information";
                return;
            }

            if (!(modelList[0].Value is UserLoginContract model))
            {
                filterContext.Controller.ViewBag.Error = "Invalid Login Information";
                return;
            }

            if (!GenericVal.Validate(model, out var msg))
            {
                filterContext.Controller.ViewBag.Error = msg;
                return;
            }

            if (string.IsNullOrEmpty(model.Username) || string.IsNullOrEmpty(model.Password) || model.Password.Length < 2)
            {
                model.Password = "";
                filterContext.ActionParameters["model"] = model;
                filterContext.Controller.ViewBag.Error  = "Empty / Invalid username or password or password length";
                return;
            }


            UserLoginRespObj user;

            try
            {
                var loginObj = new UserLoginObj
                {
                    Password      = model.Password,
                    Email         = model.Username,
                    LoginChannel  = (int)LoginChannel.Web,
                    SourceAddress = "192.168.17.25",
                };

                user = new PortalUserManager().Login(loginObj);
                if (user == null)
                {
                    model.Password = "";
                    filterContext.ActionParameters["model"] = model;
                    filterContext.Controller.ViewBag.Error  = "Login Failed! Please try again later";
                    return;
                }

                if (!user.Status.IsSuccessful)
                {
                    model.Password = "";
                    filterContext.ActionParameters["model"] = model;
                    filterContext.Controller.ViewBag.Error  = string.IsNullOrEmpty(user.Status.Message.FriendlyMessage)
                        ? "Login Failed!"
                        : user.Status.Message.FriendlyMessage;
                    if (!string.IsNullOrEmpty(user.Status.Message.MessageId) &&
                        user.Status.Message.MessageId.Length > 3)
                    {
                        if (user.Status.Message.MessageId == "1001")
                        {
                            filterContext.Controller.ViewBag.EmailConfirmed = false;
                        }
                    }
                    return;
                }

                if (user.UserItem == null || user.UserItem.UserId < 1)
                {
                    model.Password = "";
                    filterContext.ActionParameters["model"] = model;
                    filterContext.Controller.ViewBag.Error  = string.IsNullOrEmpty(user.Status.Message.FriendlyMessage)
                        ? "Login Failed!"
                        : user.Status.Message.FriendlyMessage;
                    return;
                }
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.GetBaseException().Message);
                model.Password = "";
                filterContext.ActionParameters["model"] = model;
                filterContext.Controller.ViewBag.Error  = "Error Occurred! Unable to complete your request";
                return;
            }

            //Check Multiple Login
            //Log user Out of previous login
            //Create new login
            var code = model.Username.Trim() + model.Password.Trim();

            if (MvcApplication.IsUserAlreadyLoggedIn(code, out _))
            {
                MvcApplication.ResetLogin(code);
                MvcApplication.ResetUserData(model.Username.Trim());
                filterContext.HttpContext.Session["UserINFO"] = null;
                new FormsAuthenticationService().SignOut();
            }

            var userId = user.UserItem.UserId;

            var clientProdList =
                ClientService.LoadClientProductList(new ClientProdSearchObj {
                AdminUserId = userId, UserId = userId
            },
                                                    model.Username.Trim()) ?? new ClientProdsRespObj();

            var userData = new UserData
            {
                UserId            = userId,
                Username          = user.UserItem.Email,
                Email             = user.UserItem.Email,
                Roles             = user.UserItem.RoleNames.ToArray(),
                UserType          = (UserType)user.UserItem.UserType,
                ClientProductList = clientProdList.ClientProductList ?? new List <ClientProductInfo>() //
            };

            if (!MvcApplication.SetPortalTabData(user.UserItem.TabItems, user.UserItem.Email))
            {
                model.Password = "";
                filterContext.ActionParameters["model"] = model;
                filterContext.Controller.ViewBag.Error  = "Invalid authentication!";
                return;
            }

            if (!MvcApplication.SetUserData(userData))
            {
                model.Password = "";
                filterContext.ActionParameters["model"] = model;
                filterContext.Controller.ViewBag.Error  = "Invalid authentication!";
                return;
            }

            var ticketData = userId + "|" + user.UserItem.UserType + "|" + string.Join(";", user.UserItem.RoleNames.ToArray());
            var encTicket  = new FormsAuthenticationService().SignIn(model.Username, false, ticketData);

            if (string.IsNullOrEmpty(encTicket))
            {
                model.Password = "";
                filterContext.ActionParameters["model"] = model;
                filterContext.Controller.ViewBag.Error  = "Invalid authentication!";
                return;
            }

            filterContext.HttpContext.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
            filterContext.Controller.ViewBag.UserINFOCode   = code.GetHashCode().ToString(CultureInfo.InvariantCulture);
            filterContext.Controller.ViewBag.FirstLogin     = user.UserItem.IsFirstTimeLogin;
            filterContext.Controller.ViewBag.EmailConfirmed = user.UserItem.IsEmailConfirmed;
            filterContext.Controller.ViewBag.LoginDataItem  = userData;
            base.OnActionExecuting(filterContext);
        }
示例#16
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            filterContext.Controller.ViewBag.IsSuccessful = false;
            filterContext.Controller.ViewBag.Error        = "";

            var modelList = filterContext.ActionParameters.Where(ap => ap.Key == "model").ToList();

            if (modelList.IsNullOrEmpty())
            {
                filterContext.Controller.ViewBag.Error = "Invalid Password Information";
                return;
            }
            if (!modelList.Any() || modelList.Count != 1)
            {
                filterContext.Controller.ViewBag.Error = "Invalid Password Information";
                return;
            }

            if (!(modelList[0].Value is ChangePasswordContract model))
            {
                filterContext.Controller.ViewBag.Error = "Invalid Password Information";
                return;
            }

            if (!GenericVal.Validate(model, out var msg))
            {
                filterContext.Controller.ViewBag.Error = msg;
                return;
            }

            if (
                string.Compare(model.OldPassword.Trim(), model.NewPassword.Trim(),
                               StringComparison.InvariantCultureIgnoreCase) == 0)
            {
                model.ConfirmPassword = "";
                model.NewPassword     = "";
                model.OldPassword     = "";
                filterContext.Controller.ViewBag.Error = "Current Password and New Password cannot be same";
                return;
            }

            if (
                string.Compare(model.ConfirmPassword.Trim(), model.NewPassword.Trim(),
                               StringComparison.InvariantCultureIgnoreCase) != 0)
            {
                model.ConfirmPassword = "";
                model.NewPassword     = "";
                model.OldPassword     = "";
                filterContext.Controller.ViewBag.Error = "New Password and Confirm New Password must match";
                return;
            }

            var passObj = new ChangePasswordObj
            {
                NewPassword = model.NewPassword,
                OldPassword = model.OldPassword,
                UserId      = model.UserId,
                ChangeType  = (int)PasswordChangeType.Regular
            };

            var changePassword = new PortalUserManager().ChangePassword(passObj, model.Username);

            if (changePassword == null)
            {
                filterContext.Controller.ViewBag.Error = "Process Failed! Unable to change password";
                return;
            }
            if (!changePassword.Status.IsSuccessful)
            {
                filterContext.Controller.ViewBag.Error = string.IsNullOrEmpty(changePassword.Status.Message.FriendlyMessage) ? "Process Failed! Unable to change your password" : changePassword.Status.Message.FriendlyMessage;
                return;
            }


            filterContext.Controller.ViewBag.IsSuccessful = true;
            base.OnActionExecuting(filterContext);
        }