/// <summary> /// Creates a link that defines a link between a Person and an Event /// </summary> /// <param name="linkedPerson">Linked Person</param> /// <param name="linkedEvent">Event linked</param> /// <param name="type">How a Person was involved in an Event</param> /// <param name="started">Date Started</param> /// <param name="ended">Date Ended</param> public PersonalInvolvement CreateInvolvementBetweenPersonAndEvent(Person linkedPerson, PastEvent linkedEvent, PersonalInvolvementType type, GameTime.GameTime started, GameTime.GameTime ended = null) { var personalInvolvement = new PersonalInvolvement(linkedEvent, linkedPerson, type, Guid.NewGuid(), started, ended); linkedPerson.AddPersonalInvolvement(personalInvolvement); linkedEvent.AddAssociatedPerson(personalInvolvement); return(personalInvolvement); }
/// <summary> /// Creates a link that defines a link between a Person and an Event /// </summary> /// <param name="linkedPerson">Person linked to the event</param> /// <param name="linkedEvent">Event linked to the Person</param> /// <param name="type">How a Person was involved in an Event</param> public PersonalInvolvement CreateInvolvementBetweenPersonAndEvent(Person linkedPerson, PastEvent linkedEvent, PersonalInvolvementType type) { var personalInvolvement = new PersonalInvolvement(linkedEvent, linkedPerson, type, Guid.NewGuid()); linkedPerson.AddPersonalInvolvement(personalInvolvement); linkedEvent.AddAssociatedPerson(personalInvolvement); return(personalInvolvement); }
/// <summary> /// Add a link to an event. This should be called only by the factory /// </summary> /// <param name="eventInvolvement">link to event to add</param> internal void AddPersonalInvolvement(PersonalInvolvement eventInvolvement) { if (_linkedEvents == null) { _linkedEvents = new List <PersonalInvolvement>(); } if (!_linkedEvents.Exists(e => e.Name == eventInvolvement.Name)) { _linkedEvents.Add(eventInvolvement); } }
internal void AddAssociatedPerson(PersonalInvolvement newinvolvedPerson) { if (_linkedPersons == null) { _linkedPersons = new List <PersonalInvolvement>(); } if (!_linkedPersons.Exists(p => p.LinkedPerson.Name == newinvolvedPerson.Name)) { _linkedPersons.Add(newinvolvedPerson); } }
/// <inheritdoc /> public override MemoryItem GetAccurateCopy() { var copy = new PersonalInvolvement(LinkedEvent, LinkedPerson, Type, ReferenceId) { ItemType = ItemType, Description = Description, ReverseDescription = ReverseDescription, Started = Started, Ended = Ended, Name = Name }; return(copy); }
/// <inheritdoc /> public override MemoryItem GetInaccurateCopy() { GameTime.GameTime started = Started; GameTime.GameTime ended = Ended; PersonalInvolvementType type = Type; //TODO : Randomize name int falsificationCase = RandomValueGenerator.GenerateIntWithMaxValue(4); switch (falsificationCase) { case 1: int variance = RandomValueGenerator.GenerateRealWithinValues(-10, 10); started?.SetYear(started.GetYear() + variance); break; case 2: int deathVariance = RandomValueGenerator.GenerateRealWithinValues(-10, 10); ended?.SetYear(ended.GetYear() + deathVariance); break; case 3: type = (PersonalInvolvementType)RandomValueGenerator.GenerateIntWithMaxValue(Enum.GetNames(typeof(PersonalInvolvementType)).Length); break; case 4: type = (PersonalInvolvementType)RandomValueGenerator.GenerateIntWithMaxValue(Enum.GetNames(typeof(PersonalInvolvementType)).Length); variance = RandomValueGenerator.GenerateRealWithinValues(-10, 10); started?.SetYear(started.GetYear() + variance); break; } var copy = new PersonalInvolvement(LinkedEvent, LinkedPerson, type, ReferenceId) { ItemType = ItemType, Description = Description, ReverseDescription = ReverseDescription, Started = started, Ended = ended, Name = Name }; return(copy); }