/// <summary> /// Initializes a new instance of the <see cref="AttendeeInfo"/> class. /// </summary> /// <param name="smtpAddress">The SMTP address of the attendee.</param> /// <param name="attendeeType">The yype of the attendee.</param> /// <param name="excludeConflicts">Indicates whether times when this attendee is not available should be returned.</param> public AttendeeInfo( string smtpAddress, MeetingAttendeeType attendeeType, bool excludeConflicts) : this() { this.smtpAddress = smtpAddress; this.attendeeType = attendeeType; this.excludeConflicts = excludeConflicts; }
/// <summary> /// Show a dialog to allow the user to input settings to /// create an AttendeeInfo object from the given information. /// </summary> /// <param name="address">Default address to preload in the form</param> /// <param name="attendeeType">Default MeetingAttendeeType to preload in the form</param> /// <param name="attendee">Output parameter representing the AttendeeInfo created /// from the dialog settings.</param> /// <returns> /// Returns DialogResult.OK if the user clicked OK and the /// AttendeeInfo was created successfully. /// </returns> public static DialogResult ShowDialog( ExchangeService service, EmailAddress address, MeetingAttendeeType attendeeType, out AttendeeInfo attendee) { AttendeeInfo newAttendee = null; DialogResult result = AttendeeInfoDialog.ShowDialog(service, address, attendeeType, out newAttendee); if (result == DialogResult.OK && newAttendee != null) { attendee = newAttendee; } else { attendee = null; } return(result); }
public AttendeeData(MeetingAttendeeType attendeeType, string identity, bool excludeConflict, ExDateTime freeBusyStart, ExDateTime freeBusyEnd, string mergedFreeBusy, ExchangeVersionType requestSchemaVersion, AttendeeWorkHours workingHours) { if (identity == null) { throw new ArgumentNullException("identity"); } if (workingHours == null) { throw new ArgumentNullException("workingHours"); } if (freeBusyStart.TimeZone != freeBusyEnd.TimeZone) { throw new ArgumentException("freeBusyStart.TimeZone != freeBusyEnd.TimeZone"); } this.attendeeType = attendeeType; this.identity = identity; this.excludeConflict = excludeConflict; this.freeBusyStart = freeBusyStart; this.freeBusyEnd = freeBusyEnd; this.mergedFreeBusy = mergedFreeBusy; this.workingHours = workingHours; this.requestSchemaVersion = requestSchemaVersion; }
// Token: 0x0600310C RID: 12556 RVA: 0x0012096C File Offset: 0x0011EB6C public static void RenderSuggestions(TextWriter output, Suggestion[] meetingSuggestions, MailboxData[] mailboxDataArray, SchedulingRecipientInfo[] schedulingRecipientInfos, UserContext userContext) { ExTraceGlobals.CalendarCallTracer.TraceDebug(0L, "SchedulingTabRenderingUtilities.RenderSuggestions"); UserOptions userOptions = UserContextManager.GetUserContext().UserOptions; foreach (Suggestion suggestion in meetingSuggestions) { int[] array = new int[suggestion.AvailableRoomsCount]; int num = 0; int num2 = suggestion.RequiredAttendeeCount - suggestion.RequiredAttendeeConflictCount; int num3 = suggestion.OptionalAttendeeCount - suggestion.OptionalAttendeeConflictCount; StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder2 = new StringBuilder(); StringBuilder stringBuilder3 = new StringBuilder(); StringBuilder stringBuilder4 = new StringBuilder(); int j = 0; while (j < mailboxDataArray.Length) { AttendeeConflictData attendeeConflictData = suggestion.AttendeeConflictDataArray[j]; MeetingAttendeeType meetingAttendeeType = MeetingAttendeeType.Required; StringBuilder stringBuilder5 = null; string value = string.Empty; if (attendeeConflictData is IndividualAttendeeConflictData) { IndividualAttendeeConflictData individualAttendeeConflictData = (IndividualAttendeeConflictData)attendeeConflictData; if (individualAttendeeConflictData.Attendee.AttendeeType == MeetingAttendeeType.Room && !individualAttendeeConflictData.AttendeeHasConflict) { array[num++] = j; } else { if (individualAttendeeConflictData.AttendeeHasConflict) { meetingAttendeeType = individualAttendeeConflictData.Attendee.AttendeeType; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } if (individualAttendeeConflictData.IsMissingFreeBusyData) { stringBuilder5 = stringBuilder4; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } } } else { if (attendeeConflictData is UnknownAttendeeConflictData) { stringBuilder5 = stringBuilder4; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } if (attendeeConflictData is TooBigGroupAttendeeConflictData) { stringBuilder5 = stringBuilder4; value = schedulingRecipientInfos[j].DisplayName; goto IL_1F5; } if (attendeeConflictData is GroupAttendeeConflictData) { GroupAttendeeConflictData groupAttendeeConflictData = (GroupAttendeeConflictData)attendeeConflictData; if (0 < groupAttendeeConflictData.NumberOfMembersWithNoData) { if (0 < stringBuilder4.Length) { stringBuilder4.Append(", "); } stringBuilder4.AppendFormat(LocalizedStrings.GetNonEncoded(-1170293090), schedulingRecipientInfos[j].DisplayName, groupAttendeeConflictData.NumberOfMembersWithNoData); } if (groupAttendeeConflictData.NumberOfMembersWithConflict != 0) { MailboxData mailboxData = mailboxDataArray[j]; meetingAttendeeType = mailboxData.AttendeeType; value = string.Format(LocalizedStrings.GetNonEncoded(-1505134519), schedulingRecipientInfos[j].DisplayName, groupAttendeeConflictData.NumberOfMembersWithConflict, groupAttendeeConflictData.NumberOfMembers); goto IL_1F5; } } } IL_24B: j++; continue; IL_1F5: if (stringBuilder5 == null) { switch (meetingAttendeeType) { case MeetingAttendeeType.Organizer: case MeetingAttendeeType.Required: stringBuilder5 = stringBuilder; break; case MeetingAttendeeType.Optional: stringBuilder5 = stringBuilder2; break; case MeetingAttendeeType.Room: case MeetingAttendeeType.Resource: stringBuilder5 = stringBuilder3; break; } } if (0 < stringBuilder5.Length) { stringBuilder5.Append(", "); } stringBuilder5.Append(value); goto IL_24B; } output.Write("<div class=\"sug\" st="); output.Write(suggestion.MeetingTime.TimeOfDay.TotalMinutes); output.Write(" title=\""); if (0 < suggestion.RequiredAttendeeConflictCount || 0 < suggestion.OptionalAttendeeConflictCount || 0 < suggestion.ResourceAttendeeConflictCount) { output.Write(LocalizedStrings.GetHtmlEncoded(-1917590199)); if (0 < stringBuilder.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(-1709254790)); output.Write(" "); Utilities.HtmlEncode(stringBuilder.ToString(), output); } if (0 < stringBuilder2.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(-98673561)); output.Write(" "); Utilities.HtmlEncode(stringBuilder2.ToString(), output); } if (0 < stringBuilder3.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(-294537986)); output.Write(" "); Utilities.HtmlEncode(stringBuilder3.ToString(), output); } if (0 < stringBuilder4.Length) { output.Write("\n"); output.Write(LocalizedStrings.GetHtmlEncoded(608956012)); output.Write(" "); Utilities.HtmlEncode(stringBuilder4.ToString(), output); } } output.Write("\">"); output.Write("<div class=\""); output.Write(SchedulingTabRenderingUtilities.SuggestionQualityStyles[(int)suggestion.SuggestionQuality]); output.Write("\"></div><div class=\"suggestDetail\">"); output.Write("<div class=\"when\"><span>"); output.Write(suggestion.MeetingTime.ToString(userOptions.TimeFormat)); if (0 < suggestion.RoomCount) { output.Write(" - "); output.Write((suggestion.RoomCount == 1) ? LocalizedStrings.GetHtmlEncoded(-1595764264) : LocalizedStrings.GetHtmlEncoded(-1962164027), suggestion.AvailableRoomsCount); } output.Write("</span></div>"); output.Write("<div class=\"atndcnt\">"); if (0 < suggestion.RequiredAttendeeCount) { output.Write("<span nowrap>"); userContext.RenderThemeImage(output, ThemeFileId.RequiredAttendee); output.Write(LocalizedStrings.GetHtmlEncoded(1026164821), num2, suggestion.RequiredAttendeeCount); output.Write("</span>"); } if (0 < suggestion.OptionalAttendeeCount) { output.Write(" <span nowrap>"); userContext.RenderThemeImage(output, ThemeFileId.OptionalAttendee); output.Write(LocalizedStrings.GetHtmlEncoded(1026164821), num3, suggestion.OptionalAttendeeCount); output.Write("</span>"); } output.Write("</div>"); if (0 < suggestion.AvailableRoomsCount) { output.Write("<div id=rooms style=\"display:none\">"); foreach (int num4 in array) { output.Write("<div nowrap rm=\""); Utilities.HtmlEncode(schedulingRecipientInfos[num4].ID, output); output.Write("\">"); Utilities.HtmlEncode(schedulingRecipientInfos[num4].DisplayName, output); output.Write("</div>"); } output.Write("</div>"); } output.Write("</div></div>"); } }
/// <summary> /// Receive collection of attendees of specified type. /// </summary> /// <param name="service">Exchange service instance.</param> /// <param name="id">Id of appointment.</param> /// <param name="attendeeType">Type of attendees to search.</param> /// <returns>Collection of attendees of specified type.</returns> public static IEnumerable <Attendee> GetAttendeesById(ExchangeService service, string id, MeetingAttendeeType attendeeType) { // Bind to all RequiredAttendees var meeting = Appointment.Bind(service, new ItemId(id), GetAttendeesPropertySet()); // Return according to requested type switch (attendeeType) { case MeetingAttendeeType.Required: { return(meeting.RequiredAttendees); } case MeetingAttendeeType.Optional: { return(meeting.OptionalAttendees); } case MeetingAttendeeType.Resource: { return(meeting.Resources); } case MeetingAttendeeType.Organizer: { return(new[] { new Attendee(meeting.Organizer) }); } default: { throw new ArgumentOutOfRangeException(nameof(attendeeType), attendeeType, null); } } }