public IActionResult ViewMasterEmployee(long MasterEmployeeId)
        {
            try
            {
                AddMasterEmployeeViewModel objAddMasterEmployeeViewModel = null;
                string        endpoint        = apiBaseUrl + "MasterEmployees/" + MasterEmployeeId;
                Task <string> HttpGetResponse = CommonFunction.GetWebAPI(endpoint);

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

                DropDownFillMethod();
                objAddMasterEmployeeViewModel.CostOfAssetsAssign = "2,15,000";
                objAddMasterEmployeeViewModel.Mode = CommonFunction.Mode.UPDATE;

                IEnumerable <ProductDetailResult> objProductDetailResultList = null;
                endpoint = assetsApiBaseUrl + "Dashboard/" + MasterEmployeeId;
                Task <string> HttpGetResponseProduct = CommonFunction.GetWebAPI(endpoint);

                if (HttpGetResponse != null)
                {
                    objProductDetailResultList = JsonConvert.DeserializeObject <IEnumerable <ProductDetailResult> >(HttpGetResponseProduct.Result).ToList();
                }
                else
                {
                    objProductDetailResultList = Enumerable.Empty <ProductDetailResult>().ToList();

                    ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                }

                objAddMasterEmployeeViewModel.ProductDetailResultList = objProductDetailResultList.ToList();
                objAddMasterEmployeeViewModel.CostOfAssetsAssign      = objProductDetailResultList.Sum(a => a.TotalAssetsCost).ToString();
                return(View("~/Views/Master/MasterEmployee/AddMasterEmployee.cshtml", objAddMasterEmployeeViewModel));
            }
            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 AddMasterEmployee()
        {
            try
            {
                AddMasterEmployeeViewModel objAddMasterEmployeeViewModel = new AddMasterEmployeeViewModel();
                objAddMasterEmployeeViewModel.Mode                    = CommonFunction.Mode.SAVE;
                objAddMasterEmployeeViewModel.IsActive                = true;
                objAddMasterEmployeeViewModel.MasterSalutationId      = 1;
                objAddMasterEmployeeViewModel.Gender                  = 1;
                objAddMasterEmployeeViewModel.MasterDesignationId     = 1;
                objAddMasterEmployeeViewModel.MasterDepartmentId      = 1;
                objAddMasterEmployeeViewModel.MasterEmployeeTypeId    = 1;
                objAddMasterEmployeeViewModel.MasterEmployeeStatusId  = 2;
                objAddMasterEmployeeViewModel.MasterTimeZoneId        = 91;
                objAddMasterEmployeeViewModel.MasterPaymentTypeId     = 1;
                objAddMasterEmployeeViewModel.MasterBankAccountTypeId = 1;
                objAddMasterEmployeeViewModel.MasterCountryId         = 101;
                objAddMasterEmployeeViewModel.MasterBranchId          = 1;
                objAddMasterEmployeeViewModel.MasterCountryId         = 1;
                objAddMasterEmployeeViewModel.DateOfJoining           = DateTime.Now;
                objAddMasterEmployeeViewModel.DateOfBirth             = DateTime.Now;
                objAddMasterEmployeeViewModel.MasterEmployeeId        = CommonFunction.NextMasterId("ADMasterEmployee", apiBaseUrl);
                objAddMasterEmployeeViewModel.MasterEmployeeId        = 0;
                objAddMasterEmployeeViewModel.EmployeeCode            = CommonFunction.Encrypt("P@ssword", true);
                objAddMasterEmployeeViewModel.EmployeeCode            = CommonFunction.RamdomCode("EMPLOYEE", apiBaseUrl);
                objAddMasterEmployeeViewModel.CostOfAssetsAssign      = "0";

                DropDownFillMethod();
                objAddMasterEmployeeViewModel.ProductDetailResultList = new List <ProductDetailResult>();
                //Return View doesn't make a new requests, it just renders the view
                return(View("~/Views/Master/MasterEmployee/AddMasterEmployee.cshtml", objAddMasterEmployeeViewModel));
            }
            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 SaveMasterEmployee(AddMasterEmployeeViewModel objAddMasterEmployeeViewModel, IFormFile _EmployeeLogo)
        {
            try
            {
                //for main image Logo
                if (_EmployeeLogo != null)
                {
                    objAddMasterEmployeeViewModel.EmployeeLogo = UploadedImageFile(_EmployeeLogo, objAddMasterEmployeeViewModel.EmployeeLogo);
                }

                objAddMasterEmployeeViewModel.EnterById    = 1;
                objAddMasterEmployeeViewModel.EnterDate    = DateTime.Now;
                objAddMasterEmployeeViewModel.ModifiedById = 1;
                objAddMasterEmployeeViewModel.ModifiedDate = DateTime.Now;
                objAddMasterEmployeeViewModel.IsActive     = true;

                if (objAddMasterEmployeeViewModel.Gender == null)
                {
                    objAddMasterEmployeeViewModel.Gender = 2;
                }

                var errors = ModelState.Where(x => x.Value.Errors.Count > 0).Select(x => new { x.Key, x.Value.Errors }).ToArray();
                if (ModelState.IsValid)
                {
                    string endpoint = apiBaseUrl + "MasterEmployees";

                    Task <string> HttpPostResponse = null;

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

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

                    if (HttpPostResponse != null)
                    {
                        objAddMasterEmployeeViewModel = JsonConvert.DeserializeObject <AddMasterEmployeeViewModel>(HttpPostResponse.Result);
                        _logger.LogInformation("Database Insert/Update: ");//+ JsonConvert.SerializeObject(objAddMasterEmployeeViewModel)); ;
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        DropDownFillMethod();
                        ModelState.Clear();
                        ModelState.AddModelError(string.Empty, "Server error. Please contact administrator.");
                        return(View("~/Views/Master/MasterEmployee/AddMasterEmployee.cshtml", objAddMasterEmployeeViewModel));
                    }
                }
                else
                {
                    ModelState.Clear();
                    if (ModelState.IsValid == false)
                    {
                        ModelState.AddModelError(string.Empty, "Validation error. Please contact administrator.");
                    }
                    DropDownFillMethod();

                    //Return View doesn't make a new requests, it just renders the view
                    return(View("~/Views/Master/MasterEmployee/AddMasterEmployee.cshtml", objAddMasterEmployeeViewModel));
                }
            }
            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());
        }