public static WorkflowItemRespObj LoadWorkflowItems(WorkflowItemSearchObj regObj, string username)
        {
            var response = new WorkflowItemRespObj
            {
                Status = new APIResponseStatus
                {
                    IsSuccessful = false,
                    Message      = new APIResponseMessage(),
                },
            };

            try
            {
                var apiResponse = new APIHelper(APIEndpoints.LOAD_WORKFLOW_ITEMS_ENDPOINT, username, Method.POST).ProcessAPI <WorkflowItemSearchObj, WorkflowItemRespObj>(regObj, out var msg);
                if (msg.Code == 0 && string.IsNullOrEmpty(msg.TechMessage) && string.IsNullOrEmpty(msg.Message))
                {
                    return(apiResponse);
                }

                response.Status.Message.FriendlyMessage  = msg.Message;
                response.Status.Message.TechnicalMessage = msg.TechMessage;
                return(response);
            }
            catch (Exception ex)
            {
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.GetBaseException().Message);
                response.Status.Message.FriendlyMessage  = "Error Occurred! Please try again later";
                response.Status.Message.TechnicalMessage = "Error: " + ex.GetBaseException().Message;
                return(response);
            }
        }
        public ActionResult Index(int?ExpenseRequisitionId)
        {
            try
            {
                ViewBag.Error = "";
                #region current user session check

                var userData = MvcApplication.GetUserData(User.Identity.Name);
                if (userData == null || userData.UserId < 1)
                {
                    ViewBag.Error = "Session Has Expired! Please Re-Login";
                    return(View(new List <WorkflowItemObj>()));
                }

                #endregion

                var searchObjForUser = new UserSearchObj
                {
                    AdminUserId = userData.UserId,
                    Status      = -2,
                    StopDate    = "",
                    StartDate   = "",
                    UserId      = 0,
                };
                var retValForUsers = new PortalUserManager().LoadUsers(searchObjForUser, userData.Username);
                var usersList      = retValForUsers.Users.Where(m => m.Status == 1).ToList();
                Session["_usersList_"] = usersList;
                var searchObj = new  WorkflowItemSearchObj
                {
                    AdminUserId    = userData.UserId,
                    WorkflowItemId = 0,
                    Status         = -2,
                    StartDate      = "",
                    StopDate       = "",
                };
                var retVal = WorkflowItemServices.LoadWorkflowItems(searchObj, userData.Username);
                if (retVal?.Status == null)
                {
                    ViewBag.Error = " WorkflowItem list is empty!";
                    return(View(new List <WorkflowItemObj>()));
                }

                if (retVal.WorkflowItems == null || !retVal.WorkflowItems.Any())
                {
                    return(View(new List <WorkflowItemObj>()));
                }
                var WorkflowItems = retVal.WorkflowItems.OrderBy(m => m.WorkflowItemId).Where(x => x.ExpenseRequisitionId == ExpenseRequisitionId).ToList();
                return(View(WorkflowItems));
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.Message;
                UtilTools.LogE(ex.StackTrace, ex.Source, ex.Message);
                return(View(new List <WorkflowItemObj>()));
            }
        }