• Share
    • Twitter
    • LinkedIn
    • Facebook
    • Email
  • Feedback
  • Edit
Show / Hide Table of Contents

Create an Appointment entity through an entity

Some tooltip text!
• 4 minutes to read
 • 4 minutes to read

Creating an appointment through an entity can be done in 2 different ways:

  • If you create an entity called A and assign it to an entity called B, when saving B - entity A will be saved through NestedPersistent

  • you can create an entity that is a property of another entity. Then when saving the main entity, the entity created as the property of it will be saved as well.

Both these would give the same results.

Example 1

using SuperOffice.CRM.Entities;
using SuperOffice;
using(SoSession mySession = SoSession.Authenticate("sam", "sam"))
{
  //Create an Appointment Entity
  Appointment newAppointment = Appointment.CreateNew();

  //Setting the Default values for the Appointment
  newAppointment.SetDefaults();

  //Assigning values to the individual properties of theAppointment Entity
  //Assigning basic properties to the Appointment
  newAppointment.Location = "Seminar Room 665";
  newAppointment.EndDate = new DateTime(2007, 3, 4);
  newAppointment.Status = SuperOffice.Data.AppointmentStatusNotStarted;
  newAppointment.Private = SuperOffice.Data.AppointmentPrivatePublic;
  newAppointment.HasAlarm = 1;
  newAppointment.Alarm = 5;

  //Assigning a Row type property to the Appointment Entity
  newAppointment.Associate = SuperOffice.CRM.Rows.AssociateRowGetFromIdxAssociateId(100);

  //Assigning an Entity type property to the Appointment
  newAppointment.Contact = Contact.GetFromIdxContactId(20);
  newAppointment.Person = Person.GetFromIdxPersonId(10);

  //Retrieving an Instance of another Entity
  Contact newContact = Contact.GetFromIdxContactId(10);

  //Assigning the Created Contact to the other Entity
  newContact.Appointments.Add(newAppointment);

  //Saving the Updated Entity
  newContact.Save();
}

In the example above, we have created an appointment as explained in this example. The difference is that here we do not save the created appointment. Instead, we assign it to the Appointments property of the Contact instance created and then save the Contact:

Contact newContact = Contact.GetFromIdxContactId(10);
newContact.Appointments.Add(newAppointment);
newContact.Save();

Example 2

Below is an example of how we may use the AddNew method available in the Appointments property of the Contact class to create a new appointment.

using SuperOffice.CRM.Entities;
using SuperOffice;
using(SoSession mySession = SoSession.Authenticate("sam", "sam"))
{
  //Retrieving an Instance of another Entity
  Contact newContact = Contact.GetFromIdxContactId(10);

  //Create a new instance of the Appointment ot be added to the Collection
  newContact.Appointments.AddNew();

  //Set Deafult Values to the created Appointment
  newContact.Appointments[0].SetDefaults();

  //Assigning values to the individual properties of the Appointment Entity
  //Assigning basic properties to the Appointment
  newContact.Appointments[0].Location = "Seminar Room 664";
  newContact.Appointments[0].EndDate = new DateTime(2007, 3, 4);
  newContact.Appointments[0].Status = SuperOffice.Data.AppointmentStatus.NotStarted;
  newContact.Appointments[0].Private = SuperOffice.Data.AppointmentPrivate.Public;
  newContact.Appointments[0].HasAlarm = 1;
  newContact.Appointments[0].Alarm = 5;

  //Assigning a Row type property to the Appointment Entity
  newContact.Appointments[0].Associate = SuperOffice.CRM.Rows.AssociateRow.GetFromIdxAssociateId(100);

  //Assigning an Entity type property to the Appointment
  newContact.Appointments[0].Contact = Contact.GetFromIdxContactId(20);
  newContact.Appointments[0].Person = Person.GetFromIdxPersonId(10);

  //Saving the Updated Entity
  newContact.Save();
}

The difference between example 1 and example 2 is that here we have created an instance of the Appointment to be added to the Appointments collection and by indexing through the collection we have assigned the desired values for the specific appointment as shown below.

//Create a new instance of the Appointment ot be added to the Collection
newContact.Appointments[0].Location = "Seminar Room 664";
newContact.Appointments[0].Contact = Contact.GetFromIdxContactId(20);

The Appointment created will be saved when saving the Contact entity with the use of its Save method.

Note

When adding an appointment by indexing through the Appointment collection of any entity, you should take caution to identify and add to the newly created Appointment, without updating an earlier Appointment.

For instance, in example 2 if there was an appointment already existing in Appointment[0] location when you assigned values to properties what actually would happen is an update instead of an insert since the values that already exist in the 0th location will be modified.

© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top