Esempio n. 1
0
 /// <summary>
 /// Function Load All List OT
 /// </summary>
 /// <param name="userID"></param>
 /// <param name="groupID"></param>
 /// <param name="isReadAll"></param>
 /// <returns></returns>
 public List <ListOTModel> GetAllUser(string userID, string groupID, bool isReadAll)
 {
     if (isReadAll)
     {
         return((from otRequest in DbContext.OTRequests
                 join otRequestUser in DbContext.OTRequestUsers on otRequest.ID equals(otRequestUser.OTRequestID)
                 join fingerMachineUser in DbContext.FingerMachineUsers on otRequestUser.UserID equals(fingerMachineUser.UserId)
                 join fingerTimeSheet in DbContext.FingerTimeSheets on fingerMachineUser.ID equals(fingerTimeSheet.UserNo)
                 join explain in DbContext.ExplanationRequests on fingerTimeSheet.ID equals(explain.TimeSheetId)
                 into Ex
                 from e in Ex.DefaultIfEmpty()
                 where otRequest.OTDate == fingerTimeSheet.DayOfCheck
                 select new ListOTModel
         {
             UserName = fingerMachineUser.AppUser.UserName,
             FullName = fingerMachineUser.AppUser.FullName,
             GroupName = otRequest.AppUserCreatedBy.Group.Name,
             OTDate = otRequest.OTDate,
             NameOTDateType = otRequest.OTDateType.Name,
             NameOTDateTime = otRequest.OTTimeType.Name,
             OTCheckIn = (string.IsNullOrEmpty(fingerTimeSheet.OTCheckIn) && e.StatusRequest.Name == CommonConstants.StatusApproved) ? otRequest.StartTime:fingerTimeSheet.OTCheckIn,
             OTCheckOut = (string.IsNullOrEmpty(fingerTimeSheet.OTCheckOut) && e.StatusRequest.Name == CommonConstants.StatusApproved) ? otRequest.EndTime : fingerTimeSheet.OTCheckOut,
             UpdatedByName = otRequest.AppUserUpdatedBy.FullName,
             StatusRequest = otRequest.StatusRequest.Name,
             StatusID = otRequest.StatusRequest.ID
         }).ToList());
     }
     else
     {
         return((from otRequest in DbContext.OTRequests
                 join otRequestUser in DbContext.OTRequestUsers on otRequest.ID equals(otRequestUser.OTRequestID)
                 join fingerMachineUser in DbContext.FingerMachineUsers on otRequestUser.UserID equals(fingerMachineUser.UserId)
                 join fingerTimeSheet in DbContext.FingerTimeSheets on fingerMachineUser.ID equals(fingerTimeSheet.UserNo)
                 join explain in DbContext.ExplanationRequests on fingerTimeSheet.ID equals(explain.TimeSheetId)
                 into Ex from e in Ex.DefaultIfEmpty()
                 where otRequestUser.UserID == userID && otRequest.OTDate == fingerTimeSheet.DayOfCheck
                 select new ListOTModel
         {
             UserName = fingerMachineUser.AppUser.UserName,
             FullName = fingerMachineUser.AppUser.FullName,
             GroupName = otRequest.AppUserCreatedBy.Group.Name,
             OTDate = otRequest.OTDate,
             NameOTDateType = otRequest.OTDateType.Name,
             NameOTDateTime = otRequest.OTTimeType.Name,
             OTCheckIn = (string.IsNullOrEmpty(fingerTimeSheet.OTCheckIn) && e.StatusRequest.Name == CommonConstants.StatusApproved) ? otRequest.StartTime : fingerTimeSheet.OTCheckIn,
             OTCheckOut = (string.IsNullOrEmpty(fingerTimeSheet.OTCheckOut) && e.StatusRequest.Name == CommonConstants.StatusApproved) ? otRequest.EndTime : fingerTimeSheet.OTCheckOut,
             UpdatedByName = otRequest.AppUserUpdatedBy.FullName,
             StatusRequest = otRequest.StatusRequest.Name,
             StatusID = otRequest.StatusRequest.ID
         }).ToList());
     }
 }