public static RunawayRequestDto ToDto(this RunawayRequest runawayRequest) { return(new RunawayRequestDto { RequesterName = GetUserFullName(runawayRequest.Requester), EstablishmentName = runawayRequest.Establishment.Name, RequestDate = runawayRequest.CreationDate, CancellationDate = runawayRequest.CancellationDate, // TODO : Request Information CancellationReason = runawayRequest.CancellationReason.ToString(), CancellationReasonId = (int)runawayRequest.CancellationReason, RunawayDate = runawayRequest.RunawayDate, Status = runawayRequest.Status.ToString(), StatusId = (int)runawayRequest.Status, RunawayComplaintRequests = runawayRequest.RunawayComplaints?.ToDto() }); }
public IEnumerable <RunawayRequest> GetRunawayRequestByIdNumber(long idNumber) { var allServiceLogs = _serviceLogRepository.Table.Where(s => s.Laborer.IdNo == idNumber.ToString() && (s.ServiceId == (int)ServiceList.LaborRunAwayService || s.ServiceId == (int)ServiceList.CancelRunaway)).ToList(); if (!allServiceLogs.Any()) { return(null); } var runawayRequests = allServiceLogs .Where(s => s.ServiceId == (int)ServiceList.LaborRunAwayService) .Select(s => { RunawayRequest runawayRequest = MapRunawayRequest(s); runawayRequest.Status = RunawayRequestStatusList.Cancelled; runawayRequest.CancellationReason = RunawayCancellationReasonList.Establishment; runawayRequest.CancellationDate = allServiceLogs.Where(sl => sl.CreationDate > s.CreationDate && sl.ServiceId == (int)ServiceList.CancelRunaway).OrderBy(sl => sl.CreationDate).FirstOrDefault().CreationDate; return(runawayRequest); }).ToList(); var laborer = allServiceLogs.First().Laborer; if (laborer.StatusId == (int)LaborerStatusList.Runner) { runawayRequests.First().Status = RunawayRequestStatusList.Active; } else if (laborer.StatusId == (int)LaborerStatusList.Working && runawayRequests.First().CancellationDate == null && laborer.LaborerStatusModificationDate.HasValue) { runawayRequests.First().CancellationDate = laborer.LaborerStatusModificationDate.Value; } return(runawayRequests); }