// Json Convert Pending approvals task as list public List <ApprovalRequestDTO> ApprovalTasks(UserBackendrequestJsonData userBackendjsonResponse) { //creates list request details object List <ApprovalRequestDTO> requestsDetails = new List <ApprovalRequestDTO>(); //Checks whether the JSON response is not null if (userBackendjsonResponse != null) { //Iterate json format result and bind to Model foreach (userBackendRequest userbackendRequestdetails in userBackendjsonResponse.userBackendRequestResults[0].userBackendRequestinfo) { //Create ApprovalRequestDTO Model object ApprovalRequestDTO requestObj = new ApprovalRequestDTO(); requestObj.approval = new ApprovalDTO(); if (userbackendRequestdetails.approvalDetails != null) { //Get the approval task Request ID requestObj.approval.RequestId = userbackendRequestdetails.approvalDetails.RequestId; //Get the approval task Request Status requestObj.approval.Status = userbackendRequestdetails.approvalDetails.Status; requestObj.approval.TaskTitle = userbackendRequestdetails.approvalDetails.TaskTitle; requestObj.approval.ServiceLayerTaskID = userbackendRequestdetails.approvalDetails.ServiceLayerTaskID; requestObj.approval.DueDate = userbackendRequestdetails.approvalDetails.DueDate; requestObj.approval.DecisionDate = userbackendRequestdetails.approvalDetails.DecisionDate; requestsDetails.Add(requestObj); } } } //Return request details list return(requestsDetails); }
public async Task <ActionResult> GetBackendApprovalrequestcount(SynchRequestDTO syncRequest) { try { //SynchRequestDTO syncRequest = new SynchRequestDTO(); //Assign user id to SynchRequestDTO model syncRequest.userId = userid; //Api Controller object initialization APIController apiControllerObj = new APIController(); //Get Pending approval count from Synch API string stApprovalPendingCount = await apiControllerObj.GetApprovalcompletedcount(syncRequest, userid); //Get approved count details from API syncRequest.parameters.filters.apprStatus = "Approved"; string stApprovalApprovedCount = await apiControllerObj.GetApprovalcompletedcount(syncRequest, userid); // Get Rejected count details from API syncRequest.parameters.filters.apprStatus = "Rejected"; string stApprovalRejectedCount = await apiControllerObj.GetApprovalcompletedcount(syncRequest, userid); //Deseralize the result returned by the API UserBackendrequestJsonData userTaskPendingResponse = JsonConvert.DeserializeObject <UserBackendrequestJsonData>(stApprovalPendingCount); UserBackendrequestJsonData userTaskApprovedResponse = JsonConvert.DeserializeObject <UserBackendrequestJsonData>(stApprovalApprovedCount); UserBackendrequestJsonData userTaskRejectedResponse = JsonConvert.DeserializeObject <UserBackendrequestJsonData>(stApprovalRejectedCount); //creates list Backend model object List <string> userBackends = new List <string>(); userBackends = syncRequest.parameters.filters.backends; List <string> userBackendName = syncRequest.parameters.filters.backendName; //creates lists for Pending/Approval/Reject Count for json object result UserBackendRequestJsonResult[] userBackendwithTaskPendingCount = userTaskPendingResponse.userBackendRequestResults; UserBackendRequestJsonResult[] userBackendwithTaskApprovedCount = userTaskApprovedResponse.userBackendRequestResults; UserBackendRequestJsonResult[] userBackendwithTaskRejectedCount = userTaskRejectedResponse.userBackendRequestResults; List <ApprovalCountDTO> approvalCountobj = new List <ApprovalCountDTO>(); //Checks whether the JSON response is not null if (userTaskPendingResponse != null && userBackends != null) { int i = 0; //Iterate json format result and bind to Model foreach (string backendID in userBackends) { //Create ApprovalCountDTO Model object ApprovalCountDTO approvalCount = new ApprovalCountDTO(); //Get approval backend Id approvalCount.BackendID = backendID; //Get approval backend Name approvalCount.BackendName = userBackendName[i]; //Get Pending approval count if (userBackendwithTaskPendingCount != null) { UserBackendRequestJsonResult taskcountlist = userBackendwithTaskPendingCount.ToList().Find(x => x.userBackend.BackendID == backendID); if (taskcountlist != null) { approvalCount.WaitingCount = taskcountlist.userTaskcountJsonResult.Count; } } //Get Approved approval count if (userBackendwithTaskApprovedCount != null) { UserBackendRequestJsonResult taskcountlist = userBackendwithTaskApprovedCount.ToList().Find(x => x.userBackend.BackendID == backendID); if (taskcountlist != null) { approvalCount.ApprovedCount = taskcountlist.userTaskcountJsonResult.Count; } } //Get Rejected approval count if (userBackendwithTaskRejectedCount != null) { UserBackendRequestJsonResult taskcountlist = userBackendwithTaskRejectedCount.ToList().Find(x => x.userBackend.BackendID == backendID); if (taskcountlist != null) { approvalCount.RejectedCount = taskcountlist.userTaskcountJsonResult.Count; } } //Add ApprovalCountDTO Model object approvalCountobj.Add(approvalCount); i++; } } // Return Json formate object and pass to UI return(Json(approvalCountobj, JsonRequestBehavior.AllowGet)); } catch (Exception exception) { LoggerHelper.WriteToLog(exception + " - Error while creating client context : " + exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error); return(View("Error")); } }
public async Task <ActionResult> GetApprovalDetails(SynchRequestDTO syncRequest) { string userbackend = string.Empty; try { //Assign UI synch request backends to list List <string> backendId = syncRequest.parameters.filters.backends; //Iterate backends and assign the each backend to userbackend string foreach (string backend in backendId) { userbackend = backend; } //SynchRequestDTO syncRequest = new SynchRequestDTO(); syncRequest.userId = userid; //Api Controller object initialization APIController apiControllerObj = new APIController(); //creates list request details object for waiting List <ApprovalRequestDTO> requestsDetails = new List <ApprovalRequestDTO>(); // Get the waiting approval status details if (syncRequest.parameters.filters.apprStatus == "Waiting") { //Get request details from Synch API string stApprovalPendingDetails = await apiControllerObj.GetUserBackendTasks(syncRequest, userid, userbackend); //Deseralize the result returned by the API UserBackendrequestJsonData userBackendjsonResponse = JsonConvert.DeserializeObject <UserBackendrequestJsonData>(stApprovalPendingDetails); //Bind the Json result data to list requestsDetails = ApprovalTasks(userBackendjsonResponse); } else { //creates list request details object for approval and reject List <ApprovalRequestDTO> requestsRejectedDetails = new List <ApprovalRequestDTO>(); // Get the Approved approval status details syncRequest.parameters.filters.apprStatus = "Approved"; //Get request details from Synch API string stApprovalApprovedDetails = await apiControllerObj.GetUserBackendTasks(syncRequest, userid, userbackend); //Deseralize the result returned by the API UserBackendrequestJsonData userBackendjsonResponse = JsonConvert.DeserializeObject <UserBackendrequestJsonData>(stApprovalApprovedDetails); //Bind the Json result data to list requestsDetails = ApprovalTasks(userBackendjsonResponse); // Get the Rejected approval status details syncRequest.parameters.filters.apprStatus = "Rejected"; //Get request details from Synch API string stApprovalRejectedDetails = await apiControllerObj.GetUserBackendTasks(syncRequest, userid, userbackend); //Deseralize the result returned by the API UserBackendrequestJsonData userBackendjsonRejectResponse = JsonConvert.DeserializeObject <UserBackendrequestJsonData>(stApprovalRejectedDetails); //Bind the Json result data to list requestsRejectedDetails = ApprovalTasks(userBackendjsonRejectResponse); //Add approval and rejected details tasks requestsDetails.AddRange(requestsRejectedDetails); } //sorting data for completed tasks based on decision date if (syncRequest.parameters.filters.apprStatus != "Waiting") { List <ApprovalRequestDTO> sortedrequestsDetails = requestsDetails.OrderBy(o => o.approval.DecisionDate).ToList(); requestsDetails = sortedrequestsDetails; } // Return Json formate object and pass to UI return(Json(requestsDetails, JsonRequestBehavior.AllowGet)); } catch (Exception exception) { LoggerHelper.WriteToLog(exception + " - Error while creating client context : " + exception.ToString(), CoreConstants.Priority.High, CoreConstants.Category.Error); return(View("Error")); } }