public async Task <HttpResponseMessage> GetExplanationsRequestAssignedList(HttpRequestMessage request, string userId, string groupId, string column, bool isDesc, int page, int pageSize, [FromBody] FilterDelegationAssignedModel filter) { return(await CreateHttpResponse(request, () => { if (string.IsNullOrEmpty(userId) || string.IsNullOrEmpty(groupId)) { return request.CreateErrorResponse(HttpStatusCode.BadRequest, nameof(userId) + MessageSystem.NoValues + nameof(groupId) + MessageSystem.NoValues); } var model = GetExplanationAssignedListViewModel(userId, groupId, column, isDesc, page, pageSize, filter); var totalRow = model.Count(); model = CheckExpireDate(model); PaginationSet <ExplanationRequestViewModel> pagedSet = new PaginationSet <ExplanationRequestViewModel>() { PageIndex = page, PageSize = pageSize, TotalRows = totalRow, Items = model, }; HttpResponseMessage response = request.CreateResponse(HttpStatusCode.OK, pagedSet); return response; })); }
/// <summary> /// Bind data explanation list to view model /// </summary> /// <param name="userId">id of user logged</param> /// <param name="groupId">groupId of user logged</param> /// <param name="column">name of column to sort</param> /// <param name="isDesc">parameter to check to sort by asc or desc</param> /// <param name="page">current page(use in paging)</param> /// <param name="pageSize">number of page showing(use in paging)</param> /// <param name="filter">list conditions to filter</param> /// <returns> explanations list as view model type </returns> public List <ExplanationRequestViewModel> GetExplanationAssignedListViewModel(string userId, string groupId, string column, bool isDesc, int page, int pageSize, FilterDelegationAssignedModel filter) { List <ExplanationRequestViewModel> listModel = new List <ExplanationRequestViewModel>(); // get explanation list //var model = _explanationRequestService.GetExplanationsRequestAssignedList(userId, groupId, column, isDesc, page, pageSize, filter); var model = _explanationRequestService.GetListExplanationAssigned(userId, groupId); //Check Data have status delegated have date now > end date foreach (var item in model) { if (item.StatusRequest.Name == CommonConstants.StatusDelegation) { var user = AppUserManager.Users.Where(x => x.Id == item.ReceiverId).FirstOrDefault(); //_explanationRequestService.CheckDataDelegationExplanationRequest(item.AppUserCreatedBy.Group.ID, item.ID); _explanationRequestService.CheckDataDelegationAllExplanationRequest(item.AppUserCreatedBy.Group.ID, item.ID, Convert.ToInt32(user.GroupId)); } } _explanationRequestService.Save(); var data = _explanationRequestService.GetExplanationsRequestAssignedList(userId, groupId, column, isDesc, page, pageSize, filter); // bind data to view model foreach (var item in data) { listModel.Add(new ExplanationRequestViewModel { ID = item.ID, Title = item.Title, User = new AppUserViewModel { Id = item.AppUserCreatedBy.Id, FullName = item.AppUserCreatedBy.FullName, Email = item.AppUserCreatedBy.Email, Group = new GroupViewModel { Name = item.FingerTimeSheet.FingerMachineUsers.AppUser.Group.Name } }, Receiver = new AppUserViewModel { Id = item.Receiver.Id, FullName = item.Receiver.FullName }, ReasonDetail = item.ReasonDetail, CreatedDate = (DateTime)item.CreatedDate, UpdatedDate = item.UpdatedDate, ExplanationDate = item.FingerTimeSheet.DayOfCheck, StatusRequest = new StatusRequestViewModel { ID = item.StatusRequest.ID, Name = item.StatusRequest.Name }, Approver = item.UpdatedBy != null ? new AppUserViewModel { Id = item.AppUserUpdatedBy.Id, FullName = item.AppUserUpdatedBy.FullName } : new AppUserViewModel { }, Delegate = item.DelegateId != null ? new AppUserViewModel { Id = item.Delegate.Id, FullName = item.Delegate.FullName } : new AppUserViewModel { }, AbnormalReason = _explanationRequestService.GetAbnormalById(item.TimeSheetId).Select(m => new AbnormalCaseReasonViewModel { ReasonId = m.AbnormalReason.ID, ReasonName = m.AbnormalReason.Name }).ToList() }); } return(listModel); }
public async Task <HttpResponseMessage> GetAllRequestIsAssignedForUser(HttpRequestMessage request, string userID, string groupID, string column, bool isDesc, int page, int pageSize, [FromBody] FilterDelegationAssignedModel filter) { Func <HttpResponseMessage> func = () => { if (string.IsNullOrEmpty(userID) || string.IsNullOrEmpty(groupID)) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, nameof(userID) + MessageSystem.NoValues + nameof(groupID) + MessageSystem.NoValues)); } //var model = _requestService.GetDelegationRequest(userID, groupID, filter); var model = _requestService.GetAllAssignedRequestForUser(userID, groupID); var groupLeadId = __groupService.GetGroupLeadIdByGroup(Int32.Parse(groupID)); //Check Data have status delegated have date now > end date foreach (var item in model) { if (item.StatusRequest.Name == CommonConstants.StatusDelegation) { var user = AppUserManager.Users.Where(x => x.Id == item.DelegateId).FirstOrDefault(); //_requestService.CheckDataDelegationRequest(groupID, item.ID); _requestService.CheckDataDelegationAllRequest(groupID, item, user.GroupId.ToString()); } } var requestData = _requestService.GetDelegationRequest(userID, groupID, filter); var data = requestData.OrderByField(column, isDesc).Skip((page - 1) * pageSize).Take(pageSize); var responseData = Mapper.Map <IEnumerable <Request>, IEnumerable <RequestViewModel> >(data); var paginationSet = new PaginationSet <RequestViewModel>() { Items = responseData, PageIndex = page, TotalRows = requestData.Count(), PageSize = pageSize }; return(request.CreateResponse(HttpStatusCode.OK, paginationSet)); }; return(await CreateHttpResponse(request, func)); }