public IActionResult AddMasterLogin()
        {
            try
            {
                //List<BusinessEntity.SP_CGDropDownFill_Result> objCGMasterMenuDropdownList = CGCommonFunction.DropDownFill("CGMasterMenu", 0, "PID").ToList();

                DropDownFillMethod();

                AddMasterLoginViewModel objAddMasterLoginViewModel = new AddMasterLoginViewModel();
                objAddMasterLoginViewModel.Mode                     = CommonFunction.Mode.SAVE;
                objAddMasterLoginViewModel.IsActive                 = true;
                objAddMasterLoginViewModel.MasterLoginId            = CommonFunction.NextMasterId("ADMasterLogin", apiBaseUrl);
                objAddMasterLoginViewModel.MasterRegistrationTypeId = 2;
                objAddMasterLoginViewModel.MasterLoginId            = 0;
                objAddMasterLoginViewModel.MasterProfileId          = 2;

                //Return View doesn't make a new requests, it just renders the view
                return(View("~/Views/Administrator/MasterLogin/AddMasterLogin.cshtml", objAddMasterLoginViewModel));
            }
            catch (Exception ex)
            {
                string ActionName     = this.ControllerContext.RouteData.Values["action"].ToString();
                string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                string ErrorMessage   = "Controler:" + ControllerName + " , Action:" + ActionName + " , Exception:" + ex.Message;

                _logger.LogError(ErrorMessage);
                return(View("~/Views/Shared/Error.cshtml", CommonFunction.HandleErrorInfo(ex, ActionName, ControllerName)));
            }
            return(new EmptyResult());
        }
        public IActionResult ViewMasterLogin(long MasterLoginId)
        {
            try
            {
                AddMasterLoginViewModel objAddMasterLoginViewModel = null;
                string        endpoint        = apiBaseUrl + "MasterLogins/" + MasterLoginId;
                Task <string> HttpGetResponse = CommonFunction.GetWebAPI(endpoint);

                if (HttpGetResponse != null)
                {
                    objAddMasterLoginViewModel = JsonConvert.DeserializeObject <AddMasterLoginViewModel>(HttpGetResponse.Result);
                }
                else
                {
                    objAddMasterLoginViewModel = new AddMasterLoginViewModel();
                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                }

                DropDownFillMethod();

                objAddMasterLoginViewModel.Mode     = CommonFunction.Mode.UPDATE;
                objAddMasterLoginViewModel.Password = CommonFunction.Decrypt(objAddMasterLoginViewModel.Password, true);

                //Return View doesn't make a new requests, it just renders the view
                return(View("~/Views/Administrator/MasterLogin/AddMasterLogin.cshtml", objAddMasterLoginViewModel));
            }
            catch (Exception ex)
            {
                string ActionName     = this.ControllerContext.RouteData.Values["action"].ToString();
                string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                string ErrorMessage   = "Controler:" + ControllerName + " , Action:" + ActionName + " , Exception:" + ex.Message;

                _logger.LogError(ErrorMessage);
                return(View("~/Views/Shared/Error.cshtml", CommonFunction.HandleErrorInfo(ex, ActionName, ControllerName)));
            }
            return(new EmptyResult());
        }
        public IActionResult SaveMasterLogin(AddMasterLoginViewModel objAddMasterLoginViewModel)
        {
            try
            {
                objAddMasterLoginViewModel.EnterById    = 1;
                objAddMasterLoginViewModel.EnterDate    = DateTime.Now;
                objAddMasterLoginViewModel.ModifiedById = 1;
                objAddMasterLoginViewModel.ModifiedDate = DateTime.Now;
                objAddMasterLoginViewModel.Password     = CommonFunction.Encrypt(objAddMasterLoginViewModel.Password, true);;
                if (objAddMasterLoginViewModel.IsVerified == null)
                {
                    objAddMasterLoginViewModel.IsVerified = false;
                }

                if (objAddMasterLoginViewModel.IsFirstLogin == null)
                {
                    objAddMasterLoginViewModel.IsFirstLogin = false;
                }

                if (objAddMasterLoginViewModel.IsActive == null)
                {
                    objAddMasterLoginViewModel.IsActive = false;
                }

                var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => new { x.Key, x.Value.Errors }).ToArray();

                if ((ModelState.IsValid) && (!MasterLoginExists(objAddMasterLoginViewModel.UserName) || objAddMasterLoginViewModel.Mode == CommonFunction.Mode.UPDATE))
                {
                    string endpoint = apiBaseUrl + "MasterLogins";

                    Task <string> HttpPostResponse = null;

                    if (objAddMasterLoginViewModel.Mode == CommonFunction.Mode.SAVE)
                    {
                        HttpPostResponse = CommonFunction.PostWebAPI(endpoint, objAddMasterLoginViewModel);
                        //Notification Message
                        //Session is used to store object
                        HttpContext.Session.SetObjectAsJson("GlobalMessage", CommonFunction.GlobalMessage(1, 2, 4, "Master Function", "Master Function Insert Successfully!", ""));
                    }
                    else if (objAddMasterLoginViewModel.Mode == CommonFunction.Mode.UPDATE)
                    {
                        endpoint         = apiBaseUrl + "MasterLogins/" + objAddMasterLoginViewModel.MasterLoginId;
                        HttpPostResponse = CommonFunction.PutWebAPI(endpoint, objAddMasterLoginViewModel);

                        //Notification Message
                        //Session is used to store object
                        HttpContext.Session.SetObjectAsJson("GlobalMessage", CommonFunction.GlobalMessage(1, 2, 4, "Master Function", "Master Function Update Successfully!", ""));
                    }

                    if (HttpPostResponse != null)
                    {
                        objAddMasterLoginViewModel = JsonConvert.DeserializeObject <AddMasterLoginViewModel>(HttpPostResponse.Result);
                        _logger.LogInformation("Database Insert/Update: ");//+ JsonConvert.SerializeObject(objAddMasterLoginViewModel)); ;
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        DropDownFillMethod();
                        ModelState.Clear();
                        ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                        return(View("~/Views/Administrator/MasterLogin/AddMasterLogin.cshtml", objAddMasterLoginViewModel));
                    }
                }
                else
                {
                    ModelState.Clear();
                    if (ModelState.IsValid == false)
                    {
                        ModelState.AddModelError(string.Empty, "Validation error. Please contact administrator.");
                    }
                    else if (!MasterLoginExists(objAddMasterLoginViewModel.UserName) || objAddMasterLoginViewModel.Mode == CommonFunction.Mode.SAVE)
                    {
                        ModelState.AddModelError(string.Empty, "UserName Allready Exist!");
                    }

                    DropDownFillMethod();

                    //Return View doesn't make a new requests, it just renders the view
                    return(View("~/Views/Administrator/MasterLogin/AddMasterLogin.cshtml", objAddMasterLoginViewModel));
                }
            }
            catch (Exception ex)
            {
                string ActionName     = this.ControllerContext.RouteData.Values["action"].ToString();
                string ControllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
                string ErrorMessage   = "Controler:" + ControllerName + " , Action:" + ActionName + " , Exception:" + ex.Message;

                _logger.LogError(ErrorMessage);
                return(View("~/Views/Shared/Error.cshtml", CommonFunction.HandleErrorInfo(ex, ActionName, ControllerName)));
            }
        }