Home > Entity Model > Example preview
 

Example preview

November 21st, 2008

Entity Model

Here are drafts of a source code and a class diagram of what it should be about the usage of the database.

Exemple Preview Class Diagram

//-----------------------------------------------------------------------------
[Serializable]
public class AlarmPeriodicity
{
  public int PeriodType { get; set; };
  public DateTime Value { get; set; };
}

//-----------------------------------------------------------------------------
[Serializable]
public class AlarmPeriodicityProperty : EntityProperty < AlarmPeriodicity >
{
  public AlarmPeriodicityProperty(EntityItem owneritem)
    : base(owneritem) { }
  public AlarmPeriodicityProperty(EntityItem owneritem, AlarmPeriodicity value)
    : base(owneritem, value) { }
}

//-----------------------------------------------------------------------------
[Serializable]
public class AlarmItem : EntityItem
{
  public StringEntityProperty Title { get { return _Title; } }
  private StringEntityProperty _Title;

  public AlarmPeriodicityProperty Periodicity { get { return _Periodicity; } }
  private AlarmPeriodicityProperty _Periodicity;

  public AlarmItem(IEntityCollection ownerset, UserItem creator)
    : base(ownerset, creator)
  {
  }
}

//-----------------------------------------------------------------------------
[Serializable]
public class AlarmsCollection : EntityCollection < AlarmItem >
{
  public AlarmsCollection(SessionManager manager)
    : base(manager, "Alarms")
  {
  }
}

//-----------------------------------------------------------------------------
// Methods raise an exception if user have no access right to the element.
//-----------------------------------------------------------------------------
[Serializable]
public class DatabaseConnexion : SessionManager
{
  public AlarmsCollection Alarms { get { return _Alarms; } }
  static private AlarmsCollection _Alarms;

  public DatabaseConnexion(string usercode, string userpwd)
    : base(usercode, userpwd) { }

  static public void RunSample()
  {
    DatabaseConnexion session = new DatabaseConnexion("user", "password");

    AlarmItem item1 = (AlarmItem)session.Alarms.CreateEntity();
    item1.Lock();
    item1.Edit();
    item1.Title.Value = "Title";
    item1.Periodicity.Value.PeriodType = 1;
    item1.Apply();
    item1.Unlock();

    AlarmItem item2 = (AlarmItem)session.Alarms.CreateEntity();
    item2.LockEdit();
    item2.Title.Value = "Title";
    item2.Periodicity.Value.PeriodType = 2;
    item2.ApplyUnlock();

    var list = from AlarmItem item
               in session.Alarms
               where ( item.Title.Value == "Title" )
               select item;

    session.Alarms.Lock();
    session.Alarms.Edit();
    foreach ( var item in list )
    {
      Console.WriteLine(item.Title.Value);
      item.Title.Value = "Another Title";
    }
    session.Alarms.Cancel();
    session.Alarms.Remove(item2);
    session.Alarms.Unlock();
  }
}

Print Print      Email Email