Beispiel #1
0
        ///<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);
        }