meetingrequest/mrtasks/src/cesmrsendmrfsmailtask.cpp
branchRCL_3
changeset 12 4ce476e64c59
parent 11 0396474f30f5
child 13 8592a65ad3fb
--- a/meetingrequest/mrtasks/src/cesmrsendmrfsmailtask.cpp	Mon Mar 15 12:39:10 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,798 +0,0 @@
-/*
-* Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation for ESMR send MR via fs email task
-*
-*/
-
-
-#include "emailtrace.h"
-#include "cesmrsendmrfsmailtask.h"
-#include "cesmrcaldbmgr.h"
-#include "mesmrmeetingrequestentry.h"
-#include "cesmrfsemailmanager.h"
-#include "cesmrmailplaitextformatter.h"
-#include "cesmrcalimportexporter.h"
-#include "cesmrcaluserutil.h"
-#include "cesmrguilistquery.h"
-#include "esmrhelper.h"
-
-#include <coemain.h>
-#include <utf.h>
-#include <bautils.h>
-#include <caluser.h>
-#include <cmrmailboxutils.h>
-#include <calentry.h>
-#include <calentryview.h>
-
-// Unnamed namespace for local definitions
-namespace {
-
-/**
- * Adds updated label into summary field.
- */
-void UpdateSummaryL(
-        CCalEntry& aEntry,
-        CESMRMailPlainTextFormatter& aPlainTextFormatter )
-    {
-    FUNC_LOG;
-    TPtrC currentSummary( aEntry.SummaryL() );
-
-    CCalEntry::TMethod method( aEntry.MethodL() );
-    if ( CCalEntry::EMethodRequest == method && aEntry.SequenceNumberL() )
-        {
-        // This is update
-        HBufC* updateStr = aPlainTextFormatter.UpdatedStringLC();
-        HBufC* summary = HBufC::NewLC(
-                            updateStr->Length() + currentSummary.Length() );
-
-        if ( currentSummary.Find(*updateStr) == KErrNotFound )
-            {
-            TPtr summaryPtr( summary->Des() );
-            summaryPtr.Append( *updateStr );
-            summaryPtr.Append( currentSummary );
-            aEntry.SetSummaryL( summaryPtr );
-            }
-        CleanupStack::PopAndDestroy( summary );
-        summary = NULL;
-
-        CleanupStack::PopAndDestroy( updateStr );
-        updateStr = NULL;
-        }
-    else if ( CCalEntry::EMethodCancel == method )
-        {
-        // This is cancellation
-        HBufC* cancelStr = aPlainTextFormatter.CanceledStringLC();
-        HBufC* summary = HBufC::NewLC(
-                cancelStr->Length() + currentSummary.Length() );
-
-        if ( currentSummary.Find(*cancelStr) == KErrNotFound )
-            {
-            TPtr summaryPtr( summary->Des() );
-            summaryPtr.Append( *cancelStr );
-            summaryPtr.Append( currentSummary );
-            aEntry.SetSummaryL( summaryPtr );
-            }
-        CleanupStack::PopAndDestroy( summary );
-        summary = NULL;
-
-        CleanupStack::PopAndDestroy( cancelStr );
-        cancelStr = NULL;
-        }
-    }
-
-/**
- * Cleanup operation for RPointerArray.
- *
- * @param aArray Pointer to RPointerArray.
- */
-void CalAttendeePointerArrayCleanup( TAny* aArray )
-    {
-    RPointerArray<CCalAttendee>* attendeeArray =
-        static_cast<RPointerArray<CCalAttendee>*>( aArray );
-
-        attendeeArray->ResetAndDestroy();
-        attendeeArray->Close();
-    }
-
-#ifdef _DEBUG
-
-// Literal for panics
-_LIT( ESMRSendMRRespMailPanicTxt, "ESMRSendMRFSEMailTask" );
-
-// Panic codes
-enum TESMRSendMRFSMailTaskPanic
-    {
-    EESMRSendMRFSMailInvalidMethod,
-    EESMRSendMRFSAttendeesMissing,
-    EESMRSendMRNoEntriesToSend
-    };
-
-// ======== LOCAL FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Panic wrapper method
-// ---------------------------------------------------------------------------
-//
-void Panic( TESMRSendMRFSMailTaskPanic aPanic )
-    {
-
-    User::Panic( ESMRSendMRRespMailPanicTxt, aPanic );
-    }
-
-#endif // _DEBUG
-
-
-// Definition for temporary calendar file
-//<cmail> remove hard coded paths
-//_LIT( KPath, "c:\\temp\\" ); //codescanner::driveletters
-//_LIT( KFileAndPath, "c:\\temp\\meeting.ics" ); //codescanner::driveletters
-//_LIT( KCancellationFile, "c:\\temp\\cancel.ics" ); //codescanner::driveletters
-_LIT( KFile, "temp\\meeting.ics" );
-_LIT( KCancelFile, "temp\\cancel.ics" );
-//</cmail>
-
-// ---------------------------------------------------------------------------
-// Leave wrapper method
-// ---------------------------------------------------------------------------
-//
-inline void DoLeaveIfErrorL( TInt aLeaveCode )
-    {
-    if ( KErrNone != aLeaveCode )
-        {
-
-        User::Leave( aLeaveCode );
-        }
-    }
-} // namespace
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::CESMRSendMRFSMailTask
-// ---------------------------------------------------------------------------
-//
-CESMRSendMRFSMailTask::CESMRSendMRFSMailTask(
-        MESMRCalDbMgr& aCalDbMgr,
-        MESMRMeetingRequestEntry& aEntry,
-        CMRMailboxUtils& aMRMailboxUtils,
-        TESMRCommand aCommand )
-:   CESMRTaskBase( aCalDbMgr, aEntry, aMRMailboxUtils ),
-    iCommand( aCommand )
-    {
-    FUNC_LOG;
-    //do nothing
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::~CESMRSendMRFSMailTask
-// ---------------------------------------------------------------------------
-//
-CESMRSendMRFSMailTask::~CESMRSendMRFSMailTask()
-    {
-    FUNC_LOG;
-    iEntriesToSend.ResetAndDestroy();    
-    delete iCaluserUtil;
-    delete iEmailMgr;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::NewL
-// ---------------------------------------------------------------------------
-//
-CESMRSendMRFSMailTask* CESMRSendMRFSMailTask::NewL(
-        MESMRCalDbMgr& aCalDbMgr,
-        MESMRMeetingRequestEntry& aEntry,
-        CMRMailboxUtils& aMRMailboxUtils,
-        TESMRCommand aCommand )
-    {
-    FUNC_LOG;
-
-    CESMRSendMRFSMailTask* self =
-        new (ELeave) CESMRSendMRFSMailTask(
-                aCalDbMgr,
-                aEntry,
-                aMRMailboxUtils,
-                aCommand );
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::ConstructL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::ConstructL()
-    {
-    FUNC_LOG;
-    BaseConstructL();
-    iEmailMgr = CESMRFSEMailManager::NewL( MailboxUtils() );
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::ExecuteTaskL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::ExecuteTaskL()
-    {
-    FUNC_LOG;
-
-    iEntryToSend = ESMREntry().ValidateEntryL();
-
-    iCaluserUtil = CESMRCalUserUtil::NewL( *iEntryToSend );
-
-    CCalEntry::TMethod method( iEntryToSend->MethodL() );
-
-    // Checking input paramters
-    if( !(CCalEntry::EMethodRequest == method ||
-          CCalEntry::EMethodCancel == method ) ||
-          CCalEntry::EAppt != iEntryToSend->EntryTypeL() )
-        {
-        DoLeaveIfErrorL( KErrArgument );
-        }
-
-    // Get entries to be sent
-    GetEntriesToBeSentL();
-    ResolveSendTypeL();
-
-    if ( NeedToSendInvitationL() )
-        {
-        TInt entryCount( iEntriesToSend.Count() );
-        for (TInt i(0); i < entryCount; ++i )
-        	{
-        	iEntryToSend = iEntriesToSend[i];
-			ConstructMailL();
-			TInt ret = iEmailMgr->SendMessageL();
-			User::LeaveIfError(ret);
-        	}
-        }
-
-    if ( EESMRCmdSendMRUpdate == iCommand &&
-         NeedToSendCancellationL() )
-        {
-        delete iEmailMgr; iEmailMgr = NULL;
-        iEmailMgr = CESMRFSEMailManager::NewL( MailboxUtils() );
-
-        TInt entryCount( iEntriesToSend.Count() );
-        for (TInt i(0); i < entryCount; ++i )
-        	{                
-			// Sending cancellation to removed attendees        
-        	iEntryToSend = iEntriesToSend[i];
-			iEntryToSend->SetMethodL( CCalEntry::EMethodCancel );
-	
-			ConstructMailL();
-			TInt ret = iEmailMgr->SendMessageL();
-			User::LeaveIfError(ret);
-        	}
-        }
-
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRRespFSMailTask::ConstructMailL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::ConstructMailL()
-    {
-    FUNC_LOG;
-
-    // create text formatter:
-    CESMRMailPlainTextFormatter* textFormatter =
-            CESMRMailPlainTextFormatter::NewLC( MailboxUtils() );
-
-    // Prepare email manager for sending
-    HBufC* mbOwnerAddr = ResolveUsedMailboxUserAddressLC();
-    TPtrC emailAddr( ESMRHelper::AddressWithoutMailtoPrefix( *mbOwnerAddr ) );
-    iEmailMgr->PrepareForSendingL( emailAddr );
-
-	TBool isForwarded( ESMREntry().IsForwardedL() );
-	if ( isForwarded )
-		{		
-		CCalUser* organizer = iEntryToSend->OrganizerL();
-		CCalUser* forwardOrganizer = 
-				CCalUser::NewL( 
-						organizer->Address(),
-						emailAddr );
-		CleanupStack::PushL( forwardOrganizer );
-		forwardOrganizer->SetCommonNameL( organizer->CommonName() );
-
-		// Ownership is transferred to entry
-		iEntryToSend->SetOrganizerL( forwardOrganizer );
-		CleanupStack::Pop( forwardOrganizer );
-		
-		iEmailMgr->SetSenderL( 
-				forwardOrganizer->Address(),forwardOrganizer->CommonName() );
-		
-		iEmailMgr->SetReplyToAddressL( 
-				forwardOrganizer->Address(), forwardOrganizer->CommonName() );
-
-		organizer = NULL;
-		forwardOrganizer = NULL;
-		}
-	
-    CleanupStack::PopAndDestroy( mbOwnerAddr );
-
-    // set the email subject:
-    HBufC* subject = NULL;
-    if ( CCalEntry::EMethodRequest == iEntryToSend->MethodL() )
-        {
-        subject = textFormatter->Subject16LC(
-                *iEntryToSend,
-                ESMREntry().IsForwardedL(),
-                EESMRCmdSendMRUpdate == iCommand  );
-        }
-    else
-        {
-        subject = textFormatter->Subject16LC(
-                *iEntryToSend,
-                ESMREntry().IsForwardedL(),
-                EFalse );
-        }
-
-    iEmailMgr->SetSubjectL( *subject );
-    CleanupStack::PopAndDestroy( subject );
-    subject = NULL;
-
-    AddAttendeesL();
-
-    // Set text/plain part:
-    HBufC* body = textFormatter->Body16LC( *iEntryToSend );
-    iEmailMgr->CreateTextPlainPartL( *body );
-    CleanupStack::PopAndDestroy(body);
-    body = NULL;
-
-    //  export the calendar entry in iCal format:
-    UpdateSummaryL( *iEntryToSend, *textFormatter );
-
-    TInt priority( iEntryToSend->PriorityL() );
-    SetCorrectAttendeesToEntryL();
-    CESMRCalImportExporter* calExporter = CESMRCalImportExporter::NewLC();
-    HBufC* calendarPart = calExporter->ExportToICal16LC( *iEntryToSend );
-
-    // Set text/calendar part:
-    CESMRFSEMailManager::TESMRMethod method(
-            CESMRFSEMailManager::EESMRMethodRequest);
-
-    CCalEntry::TMethod entryMethod( iEntryToSend->MethodL() );
-    switch ( entryMethod )
-        {
-        case CCalEntry::EMethodRequest:
-            {
-            method = CESMRFSEMailManager::EESMRMethodRequest;
-            }
-            break;
-        case CCalEntry::EMethodCancel:
-            {
-            method = CESMRFSEMailManager::EESMRMethodCancel;
-            }
-            break;
-        case CCalEntry::EMethodReply://fallthrough, EMethodReply not needed
-        default:
-            break;
-        }
-
-    if ( CCalEntry::EMethodCancel == entryMethod )
-        {
-        //<cmail> removing hardcoded paths
-        TFileName fileName(KCancelFile);
-        User::LeaveIfError(ESMRHelper::CreateAndAppendPrivateDirToFileName(fileName));
-        SaveICalToFileL( *calendarPart, KCancelFile );
-        iEmailMgr->CreateTextCalendarPartL(method, KCancelFile);
-        //</cmail>
-        }
-    else
-        {
-        //<cmail> removing hardcoded paths
-        TFileName fileName(KFile);
-        User::LeaveIfError(ESMRHelper::CreateAndAppendPrivateDirToFileName(fileName));
-        SaveICalToFileL( *calendarPart, fileName );
-        iEmailMgr->CreateTextCalendarPartL(method, fileName);
-        //</cmail>
-        }
-
-    CleanupStack::PopAndDestroy(3, textFormatter);
-
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::SaveICalToFileL
-// ---------------------------------------------------------------------------
-//
-TInt CESMRSendMRFSMailTask::SaveICalToFileL( const TDesC& aICal,
-                                             const TDesC& aFilename  )
-    {
-    FUNC_LOG;
-    //create 8 bit buffer for temp file content
-    TInt length = aICal.Length() * 2;
-    HBufC8* buffer = HBufC8::NewLC( length );
-    TPtr8 des = buffer->Des();
-
-    // covert the 16 bit iCal to 8 bit iCal:
-    TInt err = CnvUtfConverter::ConvertFromUnicodeToUtf8(des, aICal);
-
-    RFs& fs( CCoeEnv::Static()->FsSession() );
-
-    // ensure the path exists:
-    //<cmail>remove hardcoded paths
-    //BaflUtils::EnsurePathExistsL(fs, KPath);
-    //</cmail>
-
-    // delete previous file
-    fs.Delete( aFilename );
-
-    // save the iCal to file system:
-    RFile file;
-    User::LeaveIfError(file.Create(fs, aFilename, EFileWrite));
-    CleanupClosePushL(file);
-    User::LeaveIfError(file.Write(*buffer));
-
-    // clean up:
-    CleanupStack::PopAndDestroy(2, buffer); // file, fs, buffer
-
-    return KErrNone;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::AddAttendeesL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::AddAttendeesL()
-    {
-    FUNC_LOG;
-
-    RArray<CCalAttendee*> requiredAttendees;
-    CleanupClosePushL( requiredAttendees );
-
-    RArray<CCalAttendee*> optionalAttendees;
-    CleanupClosePushL( optionalAttendees );
-
-    GetAttendeesToBeSentL( requiredAttendees, optionalAttendees );
-
-    // Add recipients and cc-recipients
-    TInt attendeeCount( requiredAttendees.Count() );
-    TInt optAttendeeCount( optionalAttendees.Count() );
-
-    __ASSERT_DEBUG( attendeeCount || optAttendeeCount, Panic(EESMRSendMRFSAttendeesMissing) );
-
-    if ( !attendeeCount && !optAttendeeCount)
-        {
-        DoLeaveIfErrorL( KErrArgument );
-        }
-
-    for (TInt i(0); i < attendeeCount; ++i)
-        {
-        TPtrC emailAddr( requiredAttendees[i]->Address() );
-
-
-        iEmailMgr->AppendToRecipientL(
-                emailAddr,
-                requiredAttendees[i]->CommonName() );
-        }
-
-    for (TInt i(0); i < optAttendeeCount; ++i)
-        {
-        TPtrC emailAddr( optionalAttendees[i]->Address() );
-
-
-        iEmailMgr->AppendCCRecipientL(
-                emailAddr,
-                optionalAttendees[i]->CommonName() );
-        }
-
-    CleanupStack::PopAndDestroy(2, &requiredAttendees );
-
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::ResolveUsedMailboxUserAddressLC
-// ---------------------------------------------------------------------------
-//
-HBufC* CESMRSendMRFSMailTask::ResolveUsedMailboxUserAddressLC()
-    {
-    FUNC_LOG;
-
-    HBufC* mailboxUserAddress = NULL;
-    MESMRMeetingRequestEntry& mrEntry( ESMREntry());
-    if ( mrEntry.IsForwardedL() )
-        {
-        // Entry is forwarded --> Use default mailbox
-        CMRMailboxUtils::TMailboxInfo mbInfo;
-        CMRMailboxUtils& mbUtils( MailboxUtils() );
-        mbUtils.GetDefaultMRMailBoxL( mbInfo );
-        mailboxUserAddress = mbInfo.iEmailAddress.AllocLC();
-        }
-    else
-        {
-        CCalUser *mailboxUser = iEntryToSend->PhoneOwnerL();
-        mailboxUserAddress = mailboxUser->Address().AllocLC();
-        }
-
-    return mailboxUserAddress;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::ResolveSendTypeL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::ResolveSendTypeL()
-    {
-    FUNC_LOG;
-
-    if ( EESMRCmdSendMRUpdate == iCommand )
-        {
-        RArray<CCalAttendee*> addedAttendees;
-        CleanupClosePushL( addedAttendees );
-
-        RArray<CCalAttendee*> removedAttendees;
-        CleanupClosePushL( removedAttendees );
-
-        ESMREntry().GetAddedAttendeesL(
-                addedAttendees,
-                EESMRRoleRequiredAttendee | EESMRRoleOptionalAttendee );
-        ESMREntry().GetRemovedAttendeesL(
-                removedAttendees,
-                EESMRRoleRequiredAttendee | EESMRRoleOptionalAttendee );
-
-        if ( addedAttendees.Count() || removedAttendees.Count() )
-            {
-            TInt sendType = CESMRGUIListQuery::ExecuteL(
-                    CESMRGUIListQuery::EESMRSendUpdateToAllQuery );
-
-            if ( KErrCancel == sendType )
-                {
-                User::Leave( KErrCancel );
-                }
-
-            iSendType = static_cast<TESMRSendType>(sendType );
-            }
-
-        CleanupStack::PopAndDestroy( &removedAttendees );
-        CleanupStack::PopAndDestroy( &addedAttendees );
-        }
-
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::NeedToSendInvitationL
-// ---------------------------------------------------------------------------
-//
-TBool CESMRSendMRFSMailTask::NeedToSendInvitationL()
-    {
-    FUNC_LOG;
-    
-    TBool retValue( ETrue );
-
-    RArray<CCalAttendee*> addedAttendees;
-    CleanupClosePushL( addedAttendees );
-
-    if ( EESMRCmdSendMRUpdate == iCommand &&
-         ESentToAddedAndRemoved == iSendType )
-        {
-        ESMREntry().GetAddedAttendeesL(
-                addedAttendees,
-                EESMRRoleRequiredAttendee | EESMRRoleOptionalAttendee );
-
-        if ( !addedAttendees.Count() )
-            {
-            retValue = EFalse;
-            }
-        }
-
-    CleanupStack::PopAndDestroy( &addedAttendees );
-    
-    
-    return retValue;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::NeedToSendCancellationL
-// ---------------------------------------------------------------------------
-//
-TBool CESMRSendMRFSMailTask::NeedToSendCancellationL()
-    {
-    FUNC_LOG;
-    
-    TBool retValue( EFalse );
-
-    RArray<CCalAttendee*> removedAttendees;
-    CleanupClosePushL( removedAttendees );
-
-    if ( EESMRCmdSendMRUpdate == iCommand  )
-        {
-        ESMREntry().GetRemovedAttendeesL(
-                removedAttendees,
-                EESMRRoleRequiredAttendee | EESMRRoleOptionalAttendee );
-
-        if ( removedAttendees.Count() )
-            {
-            retValue = ETrue;
-            }
-        }
-
-    CleanupStack::PopAndDestroy( &removedAttendees );
-    
-    
-    return retValue;
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::NeedToSendCancellationL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::SetCorrectAttendeesToEntryL()
-    {
-    FUNC_LOG;
-    if ( EESMRCmdSendMRUpdate == iCommand )
-        {
-        TESMRMailPlugin plugin( ESMREntry().CurrentPluginL() );
-
-        CCalEntry::TMethod method( iEntryToSend->MethodL() );
-
-        RArray<CCalAttendee*> requiredAttendees;
-        CleanupClosePushL( requiredAttendees );
-
-        RArray<CCalAttendee*> optionalAttendees;
-        CleanupClosePushL( optionalAttendees );
-
-        GetAttendeesToBeSentL( requiredAttendees, optionalAttendees );
-
-        RPointerArray<CCalAttendee> attendees;
-        CleanupStack::PushL(
-                    TCleanupItem(
-                        CalAttendeePointerArrayCleanup,
-                        &attendees    ) );
-
-
-        TInt attendeeCount( requiredAttendees.Count() );
-        for ( TInt i(0); i < attendeeCount; ++i )
-            {
-            // Make copy of the attendees
-            CCalAttendee* attendee = ESMRHelper::CopyAttendeeL(*requiredAttendees[i] );
-            User::LeaveIfError(
-                    attendees.Append( attendee  ) );
-            }
-
-        TInt optionalAttendeeCount( optionalAttendees.Count() );
-        for ( TInt i(0); i < optionalAttendeeCount; ++i )
-            {
-            // Make copy of the attendees
-            CCalAttendee* attendee = ESMRHelper::CopyAttendeeL(*optionalAttendees[i] );
-            User::LeaveIfError(
-                    attendees.Append( attendee  ) );
-            }
-
-        // Clean attendee array
-        while ( iEntryToSend->AttendeesL().Count() )
-            {
-            iEntryToSend->DeleteAttendeeL( 0 );
-            }
-
-        while ( attendees.Count() )
-            {
-            CCalAttendee* attendee = attendees[0];
-            iEntryToSend->AddAttendeeL( attendee );
-            attendees.Remove(0);
-            }
-
-        CleanupStack::PopAndDestroy( &attendees );
-        CleanupStack::PopAndDestroy( &optionalAttendees );
-        CleanupStack::PopAndDestroy( &requiredAttendees );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::NeedToSendCancellationL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::GetAttendeesToBeSentL(
-        RArray<CCalAttendee*>& aRequiredAttendees,
-        RArray<CCalAttendee*>& aOptionalAttendees )
-    {
-    FUNC_LOG;
-    CCalEntry::TMethod method( iEntryToSend->MethodL() );
-
-    if ( EESMRCmdSendMRUpdate == iCommand &&
-         ESentToAddedAndRemoved == iSendType &&
-         CCalEntry::EMethodRequest == method )
-        {
-        ESMREntry().GetAddedAttendeesL(
-                aRequiredAttendees,
-                EESMRRoleRequiredAttendee );
-        ESMREntry().GetAddedAttendeesL(
-                aOptionalAttendees,
-                EESMRRoleOptionalAttendee );
-        }
-    else if (EESMRCmdSendMRUpdate == iCommand &&
-            CCalEntry::EMethodCancel == method )
-        {
-        ESMREntry().GetRemovedAttendeesL(
-                aRequiredAttendees,
-                EESMRRoleRequiredAttendee );
-        ESMREntry().GetRemovedAttendeesL(
-                aOptionalAttendees,
-                EESMRRoleOptionalAttendee );
-        }
-    else
-        {
-        iCaluserUtil->GetAttendeesL(
-                aRequiredAttendees,
-                EESMRRoleRequiredAttendee );
-        iCaluserUtil->GetAttendeesL(
-                aOptionalAttendees,
-                EESMRRoleOptionalAttendee );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CESMRSendMRFSMailTask::GetEntriesToBeSentL
-// ---------------------------------------------------------------------------
-//
-void CESMRSendMRFSMailTask::GetEntriesToBeSentL()
-	{
-    FUNC_LOG;
-	// Clear the entry array
-	iEntriesToSend.ResetAndDestroy();	
-	
-	if ( EESMRCmdSendMRUpdate == iCommand )
-		{
-		// We are sending update and we need to send all the entries
-		CCalEntry* mainEntry = ESMREntry().ValidateEntryL();
-		CleanupStack::PushL( mainEntry );
-		
-		if ( MESMRCalEntry::EESMRAllInSeries == ESMREntry().RecurrenceModRule() )
-			{
-			// Update child entries sequence number
-			ESMREntry().UpdateChildEntriesSeqNumbersL();
-			
-			// We are sending update to series
-			// Also the modifying entries need to be sent
-			// Otherwise the modifying entries may disappear from the
-			// attendees calendar.			
-			CalDbMgr().NormalDbEntryView()->FetchL(
-					mainEntry->UidL(),
-					iEntriesToSend );
-			
-			CleanupStack::PopAndDestroy( mainEntry );			
-			}
-		else
-			{
-			// Ownership transferred
-			TInt err = iEntriesToSend.Append( mainEntry );
-			User::LeaveIfError( err );
-			
-			CleanupStack::Pop( mainEntry );
-			}
-		
-		mainEntry = NULL;		
-		}
-	else
-		{
-		// We are sending either:
-		// a) Single entry 
-		// b) Modified instance from series
-		// c) First invitation to series
-		// d) forwarding entry
-		TInt err = iEntriesToSend.Append( ESMREntry().ValidateEntryL() );
-		User::LeaveIfError( err );		
-		}
-	
-	__ASSERT_DEBUG( iEntriesToSend.Count(), Panic(EESMRSendMRNoEntriesToSend ) );
-	}
-
-// EOF
-