private void UpdateGridSelection(Appointment apt)
        {
            XPAppointment xpApt     = (XPAppointment)apt.GetSourceObject(schedulerStorage1);
            int           rowHandle = FindRowHandleByXPAppointment(xpApt);

            gridView1.SelectRow(rowHandle);
            gridView1.MakeRowVisible(rowHandle, false);
        }
 XPAppointment[] GetGridSelectedRows()
 {
     int[]           rowHandles = gridView1.GetSelectedRows();
     XPAppointment[] rows       = new XPAppointment[rowHandles.Length];
     for (int i = 0; i < rowHandles.Length; i++)
     {
         rows[i] = (XPAppointment)gridView1.GetRow(rowHandles[i]);
     }
     return(rows);
 }
        private void schedulerStorage1_FilterAppointment(object sender, PersistentObjectCancelEventArgs e)
        {
            Appointment   apt0 = e.Object as Appointment;
            Appointment   apt  = GetAppointmentPattern(apt0);
            XPAppointment row  = (XPAppointment)schedulerStorage1.GetObjectRow(apt);

            if (!AppointmentHash.ContainsKey(row))
            {
                AppointmentHash.Add(row, apt);
            }
            else
            {
                AppointmentHash.Remove(row);
                AppointmentHash.Add(row, apt);
            }
        }
 // Fill in the appointment's hash table using the FilterAppointment event.
 private void schedulerStorage1_AppointmentCollectionLoaded(object sender, EventArgs e)
 {
     foreach (Appointment apt in schedulerStorage1.Appointments.Items)
     {
         XPAppointment row = (XPAppointment)schedulerStorage1.GetObjectRow(apt);
         if (!AppointmentHash.ContainsKey(row))
         {
             AppointmentHash.Add(row, apt);
         }
         else
         {
             AppointmentHash.Remove(row);
             AppointmentHash.Add(row, apt);
         }
     }
 }
    void CreateTask(XPResource res, string taskName, int status, int label)
    {
        XPAppointment apt = new XPAppointment(unitOfWork);

        apt.ResourceIds = GenerateResourcesCollectionForAppointments();
        apt.Subject     = res.Name + "'s " + taskName;

        int rangeInHours = 72;

        apt.Created = DateTime.Today + TimeSpan.FromHours(RandomInstance.Next(0, rangeInHours));
        apt.Finish  = apt.Created + TimeSpan.FromHours(RandomInstance.Next(0, rangeInHours / 12));

        apt.Status = status;
        apt.Label  = label;

        apt.Save();
    }
 protected Appointment FindAppointmentByRow(XPAppointment row)
 {
     return(AppointmentHash[row] as Appointment);
 }
 protected int FindRowHandleByXPAppointment(XPAppointment row)
 {
     return((int)GridRowHash[row]);
 }