Fire up your applications with Jetfire
RSS
Jetfire Wiki

About Us

Code Plex Projects

COR COR Administration Debug GUI Jetfire Administration Jetfire Code Jetfire Core Jetfire Language Jetfire Web Part Library misc Release Notes Roles Solutions States Training User Administration Versioning Web Parts Web Service Website Design Website Procedures Wiki conventions WordML Workflow Administration

Quick Search
»
Advanced Search »

PoweredBy

Table of Contents [Hide/Show]


Jetfire Code: Person

The Jetfire Code Class for Person is shown below in the box. This class is used for a person.

// P E R S O N   
//===================================================================================
// Person.txt
//===================================================================================
// Copyright (C) 2007 TrackerRealm Corporation
// This file is part of Jetfire.  http://Jetfire.ca
// 
// Jetfire is open software: you can redistribute it and/or modify it under the terms of the 
// GNU General Public License as published by the Free Software Foundation, version 3 of the License.
// 
// Jetfire is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
// without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
// See the GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License along with Jetfire.  
// If not, see http://www.gnu.org/licenses.
// REMOVAL OF THIS NOTICE IS VIOLATION OF THE COPYRIGHT.
//===================================================================================
//
// Person: Person is a contact that describes people.
// Worker: Worker is a class used to describe a worker in a Workflow

// DisplayName = "Person";
// ToolTip = "Configuration for a person contact.";
//
namespace JetfireContacts
{
   public workflow Person : Contact
   {
      // C O N S T R U C T O R - Instantiate the Person 
      // Person starts in the Start State.
      public Person()
      {
	     this.Subject = " New Person";
      }
      public Person(string subject)
      {
	     this.Subject = subject;
      }
      public Person(string subject, string first, string middle, string last)
      {
	     this.Subject = subject;
	     this.FirstName = first;
	     this.MiddleName = middle;
	     this.LastName = last;
      }
      // P R O P E R T I E S 
      string first;
      string middle;
      string last;
      Gender gender = Gender.na;
      Salutation salutation = Salutation.None;
      Date dob;
      
      public string FirstName
      {
		 get { return this.first;	}
		 set 
		 {
			this.first = value;
			this.SetSubject();
		 }
	  }
	  public string MiddleName
	  {
		 get { return this.middle;	}
		 set 
		 {
		    this.middle = value;
			this.SetSubject();
		 }
	  }
	  public string LastName
	  {
		 get { return this.last;	}
		 set 
		 {
			this.last = value;
			this.SetSubject();
		 }
	  }
	  public Gender Gender
	  {
		 get { return this.gender;	}
		 set { this.gender = value;	}
	  }
	  public Salutation Salutation
	  {
		 get { return this.salutation;	}
		 set { this.salutation = value;	}
	  }
	  public Date DOB
	  {
		 get { return this.dob;		}
		 set { this.dob = value;	}
	  }

      // S T A T E    T R A N S I T I O N S
      // State Transition     Command       Comment
      // Start -> Active      Approve       The contact is added to the contact list
      // Active -> Inactive   Deactivate    The contact is deactivated
      // Inactive -> Active   Activate      The contact is re-activated
      // Active -> PendingVacation    VacationRequest   A person requests a vacation
      // PendingVacation -> Vacation  VacationApproved  The vacation is approved
      // Vacation -> Active   Activate       The contact is re-activated
      //
      // S T A T E   M E T H O D S
      public VacationPending()
      {
      }
      public Vacation()
      {
      }
      // Methods
      public void AddName(string first, string middle, string last)
      {
			this.FirstName = first;	
			this.MiddleName = middle;
			this.LastName = last;
		}

		// Private Methods
		// Set the Subject when the name of the person changes
		private void SetSubject()
		{
			string ou;
			if (this.ShowContactAs == ShowContactAs.FirstName_LastName)
			{
				this.GetFirstNameLastName();
			}
			else
			{
				if (this.ShowContactAs == ShowContactAs.LastName_FirstName_Company)
				{
					if (this.OrgUnit == null)
					{
						this.GetLastNameFirstName();
					}
					else
					{
						this.GetLastNameFirstName();
						Subject += " (";
						Subject += OrgUnit.Subject;
						Subject += ")";
					}
				}
				else
				{
					this.GetLastNameFirstName();
				}
			}
			if (Subject == ",")
			{
				Subject = " Person";
			}
		}
		private void GetLastNameFirstName()
		{
			if (FirstName.Length == 0)
			{
				if (LastName.Length == 0)
				{
					Subject = " Person";
					return;
				}
				Subject = LastName;
				return;
			}
			else
			{
				if (LastName.Length == 0)
				{
					Subject = FirstName;
					return;
				}
			}
			Subject = (LastName + "," + FirstName);
		}
		private void GetFirstNameLastName()
		{
			if (FirstName.Length == 0)
			{
				if (LastName.Length == 0)
				{
					Subject = " Person";
					return;
				}
				Subject = LastName;
				return;
			}
			else
			{
				if (LastName.Length == 0)
				{
					Subject = FirstName;
					return;
				}
			}
			Subject = (FirstName + " " + LastName);
		}

      // C O M M A N D S
       // The Vacation Request command
      public void VacationRequest() //: states(Active)
      {
         enterstate this.VacationPending();
      }
      // The Vacation Approved command
      public void VacationApproved() : states(VacationPending)
      {
         enterstate this.Vacation();
      }
	}
	
//  Workflow Name = "Worker";
//  ToolTip = "Represents a Worker.";
	public workflow Worker
	{
		// C O N S T R U C T O R - Instantiate the Worker
		public Worker()
		{
			Subject = " New Worker";
		}
		public Worker(string subject)
		{
			Contact = new Person(subject);
		}
		public Worker(Contact contact)
		{
			Contact = contact;
		}

		// P R O P E R T I E S
		Contact contact = Contact.None;

		public Contact Contact
		{
			get { return contact;		}
			set
			{
				contact = value;
				this.UpdateSubject();
			}
		}
		public bool IsMandatoryAttendee
		{
			get;
			set;
		}
		public uint PercentageAllocation
		{
			get;
			set;
		}

		// Private Methods
		private void UpdateSubject()
		{
			this.Subject = "Worker: " + this.Contact.Subject;
		}
	}
}

See Also

Jetfire Code Library
Jetfire Contacts Code Library

ScrewTurn Wiki version 3.0.4.560. Some of the icons created by FamFamFam.