Ejemplo n.º 1
0
        public async Task <List <AppointMentDto> > GetMailReqeust()
        {
            Folder rootFolder = await Folder.Bind(this._exchangeService, WellKnownFolderName.Inbox, new PropertySet(ItemSchema.Id, MeetingMessageSchema.AssociatedAppointmentId));

            Folder sentFolder = await Folder.Bind(this._exchangeService, WellKnownFolderName.SentItems, new PropertySet(ItemSchema.Id, MeetingMessageSchema.AssociatedAppointmentId));

            var inboxReqeuest = await rootFolder.FindItems(new ItemView(100));

            var requestReqeuest = await sentFolder.FindItems(new ItemView(100));

            var list = new List <AppointMentDto>();

            foreach (var findItemsResult in inboxReqeuest)
            {
                var requet = findItemsResult as MeetingRequest;
                if (requet == null)
                {
                    continue;
                }
                await requet.Load(new PropertySet(ItemSchema.Id, MeetingMessageSchema.AssociatedAppointmentId));

                if (requet.AssociatedAppointmentId == null)
                {
                    continue;
                }
                var item = new AppointMentDto()
                {
                    MailId = requet.Id.UniqueId,
                    Id     = requet.AssociatedAppointmentId.UniqueId,
                };
                list.Add(item);
            }

            foreach (var findItemsResult in requestReqeuest)
            {
                var requet = findItemsResult as MeetingRequest;
                if (requet == null)
                {
                    continue;
                }
                await requet.Load(new PropertySet(ItemSchema.Id, MeetingMessageSchema.AssociatedAppointmentId));

                if (requet.AssociatedAppointmentId == null)
                {
                    continue;
                }
                var item = new AppointMentDto()
                {
                    MailId = findItemsResult.Id.UniqueId,
                    Id     = requet.AssociatedAppointmentId.UniqueId,
                };
                list.Add(item);
            }
            return(list);
        }
Ejemplo n.º 2
0
        public async Task <string> CreateAppointMentAsync(AppointMentDto dto)
        {
            if (dto == null)
            {
                throw new ArgumentNullException(nameof(dto));
            }
            var appointment = new Appointment(this._exchangeService);

            appointment.Subject       = dto.Subject;
            appointment.Body          = dto.Body;
            appointment.Start         = dto.Start;
            appointment.IsAllDayEvent = dto.FullDay;
            //appointment.ReminderDueBy
            if (!dto.FullDay)
            {
                appointment.End = dto.End;
            }
            else
            {
                appointment.End = new DateTime(dto.Start.Year, dto.Start.Month, dto.Start.Day, 23, 59, 59);
            }
            appointment.Location = dto.Location;
            foreach (var attachment in dto.Attachments)
            {
                var at = appointment.Attachments.AddFileAttachment(attachment.Name, attachment.Bytes);
                at.ContentId   = attachment.Id;
                at.ContentType = "GIF/Image";
                at.IsInline    = !attachment.IsPackage;//很重要
            }
            if (dto.Type == AppointMentType.Talk)
            {
                dto.Attendees.ForEach(u => appointment.RequiredAttendees.Add(u));
            }
            if (dto.Type == AppointMentType.Talk)
            {
                await appointment.Save(SendInvitationsMode.SendToAllAndSaveCopy);
            }
            else
            {
                await appointment.Save(SendInvitationsMode.SendToNone);
            }
            //Verify that the meeting is created
            Item item = await Item.Bind(this._exchangeService, appointment.Id, new PropertySet(ItemSchema.Subject));

            return(appointment.Id.UniqueId);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 获取我的日历
        /// </summary>
        /// <returns></returns>
        public async Task <List <AppointMentDto> > GetAppointMentsAsync()
        {
            DateTime startDate      = DateTime.Now;
            DateTime endDate        = startDate.AddYears(2);
            var      calendarFolder = await CalendarFolder.Bind(this._exchangeService, WellKnownFolderName.Calendar, new PropertySet());

            var cView = new CalendarView(startDate, endDate, int.MaxValue);

            cView.PropertySet = new PropertySet(
                ItemSchema.Id,
                ItemSchema.Subject,
                AppointmentSchema.Start,
                AppointmentSchema.End
                );
            FindItemsResults <Appointment> appointments = await calendarFolder.FindAppointments(cView);

            var list = new List <AppointMentDto>();

            foreach (var appointment in appointments)
            {
                var listItem = new AppointMentDto();
                await appointment.Load(new PropertySet(AppointmentSchema.TextBody, ItemSchema.Subject,
                                                       AppointmentSchema.Start,
                                                       ItemSchema.Id,
                                                       AppointmentSchema.End,
                                                       AppointmentSchema.Organizer,
                                                       AppointmentSchema.RequiredAttendees,
                                                       AppointmentSchema.OptionalAttendees));

                listItem.Id        = appointment.Id.UniqueId;
                listItem.Organizer = appointment.Organizer.Name;
                listItem.Subject   = appointment.Subject;
                listItem.Start     = appointment.Start;
                listItem.End       = appointment.End;
                listItem.Body      = appointment.TextBody;
                listItem.Attendees = new List <string>();
                listItem.Attendees.AddRange(appointment.OptionalAttendees.Select(u => u.Name).ToList());
                listItem.Attendees.AddRange(appointment.RequiredAttendees.Select(u => u.Name).ToList());
                list.Add(listItem);
            }

            return(list);
        }