Skip to content

Instantly share code, notes, and snippets.

@ArnisL
Created November 30, 2011 08:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ArnisL/1408454 to your computer and use it in GitHub Desktop.
Save ArnisL/1408454 to your computer and use it in GitHub Desktop.
public class Show{
public Show(DateTime startsOn, DateTime endsOn, string location, ShowType showType){
StartsOn = startsOn;
EndsOn = endsOn;
Location = location;
ShowType = showType;
Speakers = new List<Speaker>();
Attendees = new List<Attendee>();
AssociatedCampaigns = new List<Campaign>();
}
public DateTime StartsOn { get; set; }
public DateTime EndsOn { get; set; }
public string Location { get; set; }
public ShowType ShowType { get; set; }
public string Agenda { get; set; }
public bool IsCanceled { get; set; }
public ICollection<Speaker> Speakers { get; set; }
public ICollection<Attendee> Attendees { get; set; }
public ICollection<Campaign> AssociatedCampaigns { get; set; }
public void AssignSpeaker(Speaker speaker){
Speakers.Add(speaker);
}
public void WithdrawSpeaker(Speaker speaker){
Speakers.Remove(speaker);
}
public void RegisterAttendee(Attendee attendee){
Attendees.Add(attendee);
}
public void WithdrawAttendee(Attendee attendee){
Attendees.Remove(attendee);
}
public void PromoteCampaign(Campaign campaign){
AssociatedCampaigns.Add(campaign);
}
public void DisassociateCampaign(Campaign campaign){
AssociatedCampaigns.Remove(campaign);
}
public void Cancel(){
IsCanceled = true;
}
}
public enum ShowType{ Exhibition, Conference, TradeShow }
public class Campaign{
public Campaign(DateTime startsOn, DateTime endsOn){
StartsOn = startsOn;
EndsOn = endsOn;
}
public DateTime StartsOn { get; set; }
public DateTime EndsOn { get; set; }
}
public class Attendee{}
public class Speaker{}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment