public IEnumerable <Export_By_Service_Group_And_Time_District_Po_BCCP> Export_By_Service_Group_And_Time_District_Po_PPTT(string fromDate, string toDate, int districtId, int poId, string currentUser, string userSelected) { // define role of user bool isAdmin = _userRepository.CheckRole(currentUser, "Administrator"); bool isManager = _userRepository.CheckRole(currentUser, "Manager"); bool isSupport = _userRepository.CheckRole(currentUser, "Support"); //get user info var user = _userRepository.getByUserId(userSelected); string userId = null; if (user != null) { userId = user.Id; } if (isAdmin || isSupport) //is admin { if (districtId == 0) { return(_statisticRepository.Export_By_Service_Group_And_Time_PPTT(fromDate, toDate)); } else { if (poId == 0) { return(_statisticRepository.Export_By_Service_Group_And_Time_District_PPTT(fromDate, toDate, districtId)); } else // po id and district id not null { if (userId == null) { return(_statisticRepository.Export_By_Service_Group_And_Time_District_Po_PPTT(fromDate, toDate, districtId, poId)); } else { return(_statisticRepository.Export_By_Service_Group_And_Time_District_Po_User_PPTT(fromDate, toDate, districtId, poId, userId)); } } } } else { if (isManager) // is manager { if (poId == 0) { districtId = _districtRepository.GetDistrictByUserName(currentUser).ID; return(_statisticRepository.Export_By_Service_Group_And_Time_District_PPTT(fromDate, toDate, districtId)); } else // po id and district id not null { if (userId == null) { districtId = _districtRepository.GetDistrictByUserName(currentUser).ID; //poId = _poRepository.GetPOByCurrentUser(currentUser).ID; return(_statisticRepository.Export_By_Service_Group_And_Time_District_Po_PPTT(fromDate, toDate, districtId, poId)); } else { districtId = _districtRepository.GetDistrictByUserName(currentUser).ID; //poId = _poRepository.GetPOByCurrentUser(currentUser).ID; return(_statisticRepository.Export_By_Service_Group_And_Time_District_Po_User_PPTT(fromDate, toDate, districtId, poId, userId)); } } } else //is basic user { return(_statisticRepository.Export_By_Service_Group_And_Time_District_Po_User_PPTT(fromDate, toDate, districtId, poId, currentUser)); } } }