///<summary>Determines if the Task is in the Clinic's region.</summary> private bool IsTaskInRegionAndUnrestricted(Task task, Userod user) { bool retVal = false; Clinic clinic = Clinics.GetClinic(user.ClinicNum); List <long> listUserClinicNums = Clinics.GetAllForUserod(user).Select(x => x.ClinicNum).ToList(); switch (task.ObjectType) { case TaskObjectType.Appointment: Appointment appt = Appointments.GetOneApt(task.KeyNum); Clinic clinicAppt = Clinics.GetClinic(appt.ClinicNum); //Is Appointment's clinic in the same region as passed in clinic, and user has permission to view the clinicAppt? //0 Region also allowed. if (clinicAppt.Region == 0 || (clinicAppt.Region == clinic.Region && listUserClinicNums.Any(x => x == clinicAppt.ClinicNum))) { retVal = true; } break; case TaskObjectType.Patient: Patient pat = Patients.GetPat(task.KeyNum); Clinic clinicPat = Clinics.GetClinic(pat.ClinicNum); //Is Appointment's clinic in the same region as passed in clinic, and user has permission to view the clinicPat? //0 Region also allowed. if (clinicPat.Region == 0 || (clinicPat.Region == clinic.Region && listUserClinicNums.Any(x => x == clinicPat.ClinicNum))) { retVal = true; } break; case TaskObjectType.None: retVal = true; break; } return(retVal); }