diff --git a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec index 6f64b14f4689032b43968ee20659619da65be705..e9e6c911221db3241eb5ebf0f31ac65fd3196255 100644 --- a/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec +++ b/BeckmanComms.Api.DataTransferObjects/BeckmanComms.Api.DataTransferObjects.nuspec @@ -2,7 +2,7 @@ <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd"> <metadata> <id>BeckmanComms.Api.DataTransferObjects</id> - <version>1.0.0</version> + <version>1.1.0-alpha01</version> <title>Beckman API Data Transfer Objects</title> <authors>areynold</authors> <owners>Beckman Institute; University of Illinois</owners> @@ -11,6 +11,9 @@ <description>Model classes for use with the Beckman Institute web API.</description> <summary>Model classes for use with the Beckman Institute web API.</summary> <releaseNotes> + 1.1.0-alpha01: + * Add initial V2 directory DTOs + 1.0.0: * Migrate to .net standard library project. * Rename project. (Was Api.DataTransferObjects.) diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Directory/AffiliationDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Directory/AffiliationDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..d368331a7d068bd679f7a727f12c1fa3f8f1d2ec --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Directory/AffiliationDto.cs @@ -0,0 +1,18 @@ +namespace Api.DataTransferObjects.V2.Directory +{ + /// <summary> + /// Data Transfer object representing Beckman staff group membership. + /// </summary> + public class AffiliationDto + { + /// <summary> + /// Group name. + /// </summary> + public string Name { get; set; } + + /// <summary> + /// Group abbreviation. + /// </summary> + public string Abbreviation { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Directory/GroupDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Directory/GroupDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..3e352f0d5d16b23d92fcc802b953b64b2165f0e4 --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Directory/GroupDto.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; + +namespace Api.DataTransferObjects.V2.Directory +{ + /// <summary> + /// Data Transfer Object representing a Beckman group. + /// </summary> + public class GroupDto + { + /// <summary> + /// Group name. + /// </summary> + public string Name { get; set; } + + /// <summary> + /// Group abbreviation. + /// </summary> + public string Abbreviation { get; set; } + + /// <summary> + /// Collection containing group members. + /// </summary> + public IEnumerable<PersonDto> Members { get; set; } + + /// <summary> + /// Collection containing group leaders. + /// </summary> + public IEnumerable<GroupLeaderDto> Leaders { get; set; } + + /// <summary> + /// Collection containing group support staff. + /// </summary> + public IEnumerable<SupportStaffDto> SupportStaff { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Directory/GroupLeaderDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Directory/GroupLeaderDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..fe4634a0933b5346ff2e983a426f63ddc6ddecde --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Directory/GroupLeaderDto.cs @@ -0,0 +1,18 @@ +namespace Api.DataTransferObjects.V2.Directory +{ + /// <summary> + /// Data Transfer Object representing a Beckman group leader. + /// </summary> + public class GroupLeaderDto + { + /// <summary> + /// Leader name. + /// </summary> + public string Name { get; set; } + + /// <summary> + /// Leader title. + /// </summary> + public string Title { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Directory/PersonDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Directory/PersonDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..7b7e779dde30c0f8f36bdc981d5f7634e16e7c41 --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Directory/PersonDto.cs @@ -0,0 +1,65 @@ +using System.Collections.Generic; + +namespace Api.DataTransferObjects.V2.Directory +{ + /// <summary> + /// Data Transfer Object containing combined directory database fields. + /// </summary> + public class PersonDto + { + /// <summary> + /// Staff member's U of I NetID. + /// </summary> + public string NetId { get; set; } + + /// <summary> + /// Staff member's name. + /// </summary> + public string Name { get; set; } + + /// <summary> + /// Staff member's preferred first name. + /// </summary> + public string FirstName { get; set; } + + /// <summary> + /// Staff member's family name. + /// </summary> + public string LastName { get; set; } + + /// <summary> + /// Staff member's email address. + /// </summary> + public string EmailAddress { get; set; } + + /// <summary> + /// Staff member's title. + /// </summary> + public string Title { get; set; } + + /// <summary> + /// Staff member's campus address. + /// </summary> + public string BuildingAddress { get; set; } + + /// <summary> + /// Staff member's office number. + /// </summary> + public string RoomNumber { get; set; } + + /// <summary> + /// Staff member's campus phone number. + /// </summary> + public string PhoneNumber { get; set; } + + /// <summary> + /// Collection containing staff member's directory photos. + /// </summary> + public IDictionary<string, PhotoDto> Photos { get; set; } + + /// <summary> + /// Collection containing staff member's group affiliations. + /// </summary> + public IEnumerable<AffiliationDto> Affiliations { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Directory/PhotoDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Directory/PhotoDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..cc495f79ef9c71bf928cfd49683392b2648778b6 --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Directory/PhotoDto.cs @@ -0,0 +1,18 @@ +namespace Api.DataTransferObjects.V2.Directory +{ + /// <summary> + /// Data Transfer Object representing a staff directory photo. + /// </summary> + public class PhotoDto + { + /// <summary> + /// Photo's url. + /// </summary> + public string Url { get; set; } + + /// <summary> + /// Description of photo for use with required HTML alt attributes. + /// </summary> + public string AltText { get; set; } + } +} \ No newline at end of file diff --git a/BeckmanComms.Api.DataTransferObjects/V2/Directory/SupportStaffDto.cs b/BeckmanComms.Api.DataTransferObjects/V2/Directory/SupportStaffDto.cs new file mode 100644 index 0000000000000000000000000000000000000000..aa6c1f28d3b54e3f6909401dac06c2ba5cb4f00b --- /dev/null +++ b/BeckmanComms.Api.DataTransferObjects/V2/Directory/SupportStaffDto.cs @@ -0,0 +1,23 @@ +namespace Api.DataTransferObjects.V2.Directory +{ + /// <summary> + /// Data Transfer Object representing a Beckman group support staff member. + /// </summary> + public class SupportStaffDto + { + /// <summary> + /// Staff member's U of I NetID. + /// </summary> + public string NetId { get; set; } + + /// <summary> + /// Staff member's name. + /// </summary> + public string Name { get; set; } + + /// <summary> + /// Abbreviation of the group supported by the staff member. + /// </summary> + public string GroupAbbreviation { get; set; } + } +} \ No newline at end of file