/// <summary>
        /// Fetches email from user's Inbox.
        internal async Task <List <model.MailItem> > GetEmailMessages(int pageNo, int pageSize)
        {
            // Make sure we have a reference to the Outlook Services client
            var outlookServicesClient = await AuthenticationHelper.EnsureOutlookServicesClientCreatedAsync("Mail");

            List <model.MailItem> returnResults = new List <model.MailItem>();

            var mailResults = await(from i in outlookServicesClient.Me.Folders.GetById("Inbox").Messages
                                    orderby i.DateTimeReceived descending
                                    select i).Skip((pageNo - 1) * pageSize).Take(pageSize).ExecuteAsync();

            var mailMessages = mailResults.CurrentPage;

            foreach (IMessage serverMailItem in mailMessages)
            {
                model.MailItem modelMailItem = new model.MailItem(serverMailItem);
                if ((!mailResults.MorePagesAvailable))
                {
                    if (modelMailItem.ID == mailMessages.Last <IMessage>().Id)
                    {
                        modelMailItem.IsLastItem = true;
                    }
                }
                if ((modelMailItem.ID == mailMessages.First <IMessage>().Id) && pageNo == 1)
                {
                    modelMailItem.IsFirstItem = true;
                }

                returnResults.Add(modelMailItem);
            }

            return(returnResults);
        }
        /// <summary>
        /// Fetches email from user's Inbox.
        internal async Task<List<model.MailItem>> GetEmailMessages(int pageNo, int pageSize)
        {
            // Make sure we have a reference to the Outlook Services client
            var outlookServicesClient = await AuthenticationHelper.EnsureOutlookServicesClientCreatedAsync("Mail");

            List<model.MailItem> returnResults = new List<model.MailItem>();

            var mailResults = await (from i in outlookServicesClient.Me.Folders.GetById("Inbox").Messages
                                     orderby i.DateTimeReceived descending
                                     select i).Skip((pageNo - 1) * pageSize).Take(pageSize).ExecuteAsync();

            var mailMessages = mailResults.CurrentPage;

            foreach (IMessage serverMailItem in mailMessages)
            {
                model.MailItem modelMailItem = new model.MailItem(serverMailItem);
                if ((!mailResults.MorePagesAvailable))
                {
                    if (modelMailItem.ID == mailMessages.Last<IMessage>().Id)
                    {
                        modelMailItem.IsLastItem = true;

                    }
                }
                if ((modelMailItem.ID == mailMessages.First<IMessage>().Id) && pageNo == 1)
                {
                    modelMailItem.IsFirstItem = true;
                }

                returnResults.Add(modelMailItem);
            }

            return returnResults;
        }
        internal async Task <model.MailItem> GetMailItemByIDsAsync(string id)
        {
            // Make sure we have a reference to the Outlook Services client
            var outlookServicesClient = await AuthenticationHelper.EnsureOutlookServicesClientCreatedAsync("Mail");

            IMessage thisMailItem = null;

            // This results in a call to the service.
            var thisMailFetcher = outlookServicesClient.Me.Folders.GetById("Inbox").Messages.GetById(id);

            thisMailItem = await thisMailFetcher.ExecuteAsync();

            model.MailItem modelMailMessage = new model.MailItem(thisMailItem);
            return(modelMailMessage);
        }
Exemple #4
0
        // GET: /Mail/Delete/5
        public async Task <ActionResult> Delete(string id)
        {
            model.MailItem mailItemToDelete = await _mailOperations.GetMailItemByIDsAsync(id);

            return(View(mailItemToDelete));
        }
        internal async Task<model.MailItem> GetMailItemByIDsAsync(string id)
        {
            // Make sure we have a reference to the Outlook Services client
            var outlookServicesClient = await AuthenticationHelper.EnsureOutlookServicesClientCreatedAsync("Mail");
            IMessage thisMailItem = null;

            // This results in a call to the service.
            var thisMailFetcher = outlookServicesClient.Me.Folders.GetById("Inbox").Messages.GetById(id);
            thisMailItem = await thisMailFetcher.ExecuteAsync();
            model.MailItem modelMailMessage = new model.MailItem(thisMailItem);
            return modelMailMessage;
        }