RUDE

Сравнение DateTime в Xamarin.Forms

У меня есть служба встреч, которая возвращает список встреч, я хочу вернуть только предстоящую встречу из базы данных firebase, поэтому я сделал это:

public static async Task<IEnumerable<Appoitment>> GetUserAppointmentsByDate(DateTime? dateTime , string str)
{
    var Patients = await PatientService.GetUserPatients();

    if (Patients == null)
        return new List<Appoitment>();
    else
    {
        List<Appoitment> appointments = new List<Appoitment>();

        foreach (var patient in Patients)
        {
            if (patient.Appointments != null)
                appointments.AddRange(patient.Appointments.Values);
        }

        if (appointments == null && str == "all")
            return new List<Appoitment>();
        else if (appointments == null && str == "up")
            return (appointments.Where(o => o.AppointmentDate.Date.Date > DateTime.Now.Date));
        else if (dateTime.HasValue)
            return (appointments.Where(o => o.AppointmentDate.Date.Date == dateTime.Value.Date));
        else
            return appointments;
    }
}

И тогда я называю это так:

Appoitments = new ObservableCollection<Appoitment>(await AppintmentService.GetUserAppointmentsByDate(null,"up"));

Но когда отображается список, он возвращает все встречи без их фильтрации, так в чем проблема и как ее исправить?


35
1

Ответ:

Решено

Это не правильно

else if (appointments == null && str == "up")

Должен быть

else if (appointments != null && str == "up")