serviceproviders/sapi_calendar/tsrc/dev/tcalendarprovidertest/tcalendaradditer3/src/tcalendaraddtestblocksdirect.cpp
changeset 5 989d2f495d90
child 23 50974a8b132e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/serviceproviders/sapi_calendar/tsrc/dev/tcalendarprovidertest/tcalendaradditer3/src/tcalendaraddtestblocksdirect.cpp	Fri Jul 03 15:51:24 2009 +0100
@@ -0,0 +1,1366 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:  
+*
+*/
+
+
+#include<LiwCommon.h>
+#include<LiwVariant.h>
+#include<LiwServiceHandler.h>
+#include "tcalendaraddtest.h"
+#include "calendarheader.h"
+#include "calendarconstants.h"
+
+_LIT8(KTestInterface, 	"IDataSource");
+_LIT8(KTestContent,		"Service.Calendar");
+_LIT8(KCmd,				"Delete");
+_LIT8(KMessageId,				"MessageId");
+_LIT8(KMap,				"NotificationType");
+_LIT8(KMessageList,			"MessageList" );
+_LIT8(KMessage,				"Message" );
+_LIT(KMsgType,"NewMessage");
+//_LIT8(KContentType, 		"Type");
+//_LIT8(KCalendarName,        "CalendarName");
+//_LIT8(KFilter, 				"Filter");
+
+_LIT(KCalFileName1,"C:Calendar");
+
+TInt AddProvAppointmentDailyRepeatAndAttendees(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, MLiwInterface* interface, const TDesC& aCalendar, TUIDSet*& uidset);
+TInt AddProvAppointmentWeeklyRepeat(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, MLiwInterface* interface, const TDesC& aCalendar, TUIDSet*& uidset);
+void GetLocalUid( const TDesC& aLocalUid, TCalLocalUid& aOutLocalUid );
+void GetGlobalUid( const TDesC& aGlobalUid, TDes8& aOutGlobalUid );
+TInt AddProvAppointmentMonthlyRepeat(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, MLiwInterface* interface, const TDesC& aCalendar, TUIDSet*& uidset);
+TInt AddProvAppointmentDailyRepeat(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, MLiwInterface* interface, const TDesC& aCalendar, TUIDSet*& uidset);
+TInt RemoveProvCalendar(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, MLiwInterface* interface, const TDesC& aCalendar);
+TInt AddProvToDo(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, MLiwInterface* interface, const TDesC& aCalendar, TUIDSet*& uidset);	
+TInt AddProvCalendar(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, MLiwInterface* interface, const TDesC& aCalendar);
+enum TFormat
+	{
+	ETestUnicode = 0x01,
+	ETestAscii	 = 0x02,
+	};
+
+HBufC* FillBuffer(int size, TFormat encoding)
+	{
+	HBufC* buffer = NULL;
+	if( encoding == ETestUnicode)
+		{
+		buffer = HBufC::NewL(size);
+		for(int i=0;i<size;i++)
+			buffer->Des().Append(0xE0FF); //append some unicode character	
+		}
+	else if(encoding == ETestAscii)
+		{
+		buffer = HBufC::NewL(size);
+		for(int i=0;i<size;i++)
+			buffer->Des().Append(0xFF); //append some ascii character	
+		}
+	return buffer;
+	}
+
+class CTestSync : public CBase
+{
+public:
+	static CTestSync* NewL();
+	int TestFunc();
+	int TestFuncMonthly();
+	void GetInterfaceHandle(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam);
+	int UpdateRepeatRule();
+	int UpdateInstanceWithRepeat();
+	int UpdateEntryWithRepeatAndExceptionDates();
+	int AddEntryWithVeryLongDescription();
+	TDesC& GetEntry(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, TPtrC localuid, const TDesC& calname );
+	CTestSync();
+	~CTestSync();
+
+private:
+	void ConstructL();
+
+	
+	
+private:	
+	CLiwServiceHandler* 	iServiceHandler;
+	TInt 					iResult;
+	MLiwInterface* 			interface ;	
+};		
+
+
+CTestSync* CTestSync::NewL()
+	{
+	CTestSync* self = new (ELeave) CTestSync();
+	self->ConstructL();
+	return self;
+	}
+
+CTestSync::~CTestSync()
+	{
+	if( interface )
+	interface->Close();
+	
+	delete iServiceHandler;
+	}
+
+
+void CTestSync::ConstructL()
+	{
+	}
+
+
+CTestSync::CTestSync()
+	{
+	interface = NULL ;
+	}
+
+int CTestSync::TestFunc()
+	{
+	iServiceHandler = CLiwServiceHandler::NewL();
+
+	CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
+	CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
+
+
+	TInt err; 
+	RCriteriaArray interest;
+    CleanupClosePushL(interest);
+    
+	CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KTestInterface,KTestContent);
+	crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+    CleanupStack::PushL(crit);
+    interest.AppendL(crit);    
+	
+	iServiceHandler->AttachL(interest);
+    iServiceHandler->ExecuteServiceCmdL(*crit, *inparam, *outparam); 
+
+	TInt pos = 0;
+
+	outparam->FindFirst( pos, KTestInterface );
+	if(pos != KErrNotFound)
+		{
+		interface = (*outparam)[pos].Value().AsInterface();	
+		}
+    CleanupStack::PopAndDestroy(crit);
+    CleanupStack::PopAndDestroy(&interest); 
+
+	outparam->Reset();
+	inparam->Reset();
+	
+	AddProvCalendar(inparam, outparam, interface, KCalFileName1);
+	TUIDSet* uidset1;
+    TBuf<50> globaluid;
+    //AddProvAppointmentDailyRepeatAndAttendees(inparam, outparam, interface, KCalFileName1 ,uidset1 );
+    AddProvAppointmentWeeklyRepeat(inparam, outparam, interface, KCalFileName1 ,uidset1);
+    //localuid.Num(TInt64(uidset1->iLocalUID));
+    globaluid.Copy(uidset1->iGlobalUID->Des());
+    
+    TLiwGenericParam dsNameParam(KContentType, TLiwVariant(_L("CalendarEntry")));
+	inparam->AppendL(dsNameParam);
+	
+	CLiwDefaultMap *filterMap = CLiwDefaultMap::NewL();
+	TLiwGenericParam filterParam(KFilter, TLiwVariant(filterMap));
+	inparam->AppendL(filterParam);
+	filterMap->DecRef();
+
+    filterMap->InsertL(KCalendarName,TLiwVariant(_L("C:CalendarFileA")));
+    filterMap->InsertL(_L8("id"),TLiwVariant(globaluid));
+
+	TRAP(err,interface->ExecuteCmdL( _L8("GetList") ,*inparam ,*outparam));
+    
+    pos = 0 ;
+    
+    const TLiwGenericParam* finaloutput = outparam->FindFirst( pos,_L8("ReturnValue"));
+    TInt count = 0;
+    CLiwMap* map;
+    TInt retvalue = KErrNone;
+	if ( finaloutput )     
+		{
+		CLiwIterable* iterlist = finaloutput->Value().AsIterable();
+      	if(iterlist)
+      		{
+		    TLiwVariant data1;
+      		while(iterlist->NextL(data1) )
+	      		{
+				const CLiwMap* res = data1.AsMap();
+				if ( res )
+					{
+					TLiwVariant data;
+					if(res->FindL(_L8("Type"), data))
+						{
+						TPtrC type = data.AsDes();
+						if(type.CompareF(_L("Meeting")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("StartTime"), data))
+						{
+						TTime ostime(TDateTime(2007,EOctober,23,10,0,0,0));
+						TTime stime = data.AsTTime();
+						if( ostime != stime)
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("EndTime"), data))
+						{
+						TTime oetime(TDateTime(2007,EOctober,23,10,30,0,0));
+						TTime etime = data.AsTTime();
+						if( oetime != etime)
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Replication"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("Open")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Description"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("Meeting")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Status"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("Confirmed")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Method"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("None")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+						
+					if(res->FindL(_L8("Organizer"), data))
+						{
+						const CLiwMap* map = data.AsMap();
+						TLiwVariant rdata;
+						if(map->FindL(_L8("CommonName"), rdata))
+							{
+							TPtrC cn = rdata.AsDes();
+							if( cn.CompareF(_L("sapi")) != 0 )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("Address"), rdata))
+							{
+							TPtrC add = rdata.AsDes();
+							if( add.CompareF(_L("mdc@nokia.com")) != 0 )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						rdata.Reset();	
+						}
+
+					if(res->FindL(_L8("PhoneOwner"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("h2s@nokia.com")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+
+					if(res->FindL(_L8("Attendees"), data))
+						{
+						const CLiwList* list = data.AsList();
+						if ( list )
+							{
+							TInt count = list->Count();
+							for ( int index = 0; index < count; index++ )
+								{
+								TLiwVariant element;
+								list->AtL(index, element);
+								const CLiwMap* map = element.AsMap();
+								TLiwVariant attParam;
+								if ( map && map->FindL(_L8("Address"), attParam) )
+									{
+									TPtrC address = attParam.AsDes();
+									if( address.CompareF(_L("h2s@nokia.com")) != 0 )
+										{
+									    retvalue = KErrGeneral;
+									    attParam.Reset();
+									    element.Reset();
+										break;
+										}
+									}
+								if ( map->FindL( _L8("CommonName"), attParam ) ) 
+									{
+									TPtrC cn = attParam.AsDes();
+									if( cn.CompareF(_L("sapi")) != 0 )
+										{
+									    retvalue = KErrGeneral;
+									    attParam.Reset();
+									    element.Reset();
+										break;
+										}
+									}
+								attParam.Reset();
+		                        element.Reset();
+								}
+							}
+						}
+
+					if(res->FindL(_L8("RepeatRule"), data))
+						{
+						const CLiwMap* map = data.AsMap();
+						TLiwVariant rdata;
+						if(map->FindL(_L8("Type"), rdata))
+							{
+							TInt type = rdata.AsTInt32();
+							if( type != 2 )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("StartDate"), rdata))
+							{
+							TTime sdate = rdata.AsTTime();
+							TTime ostime(TDateTime(2007,EOctober,23,10,0,0,0));
+							if( sdate != ostime)
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("UntilDate"), rdata))
+							{
+							TTime udate = rdata.AsTTime();
+							//TTime outime(TDateTime(2007,EOctober,30,10,0,0,0));
+							TTime outime(TDateTime(2007,ENovember,27,10,0,0,0));
+							if( udate != outime )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						rdata.Reset();
+						}
+
+					data.Reset();	
+					}
+	      		}
+      		data1.Reset();  
+      		}
+		}
+	
+	inparam->Reset();
+	outparam->Reset();
+	delete uidset1;
+    RemoveProvCalendar(inparam, outparam, interface, KCalFileName1);
+    return retvalue;
+	}
+
+int CTestSync::TestFuncMonthly()
+	{
+	iServiceHandler = CLiwServiceHandler::NewL();
+
+	CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
+	CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
+
+
+	TInt err; 
+	RCriteriaArray interest;
+    CleanupClosePushL(interest);
+    
+	CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KTestInterface,KTestContent);
+	crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+    CleanupStack::PushL(crit);
+    interest.AppendL(crit);    
+	
+	iServiceHandler->AttachL(interest);
+    iServiceHandler->ExecuteServiceCmdL(*crit, *inparam, *outparam); 
+
+	TInt pos = 0;
+
+	outparam->FindFirst( pos, KTestInterface );
+	if(pos != KErrNotFound)
+		{
+		interface = (*outparam)[pos].Value().AsInterface();	
+		}
+    CleanupStack::PopAndDestroy(crit);
+    CleanupStack::PopAndDestroy(&interest); 
+
+	outparam->Reset();
+	inparam->Reset();
+	
+	AddProvCalendar(inparam, outparam, interface, KCalFileName1);
+	TUIDSet* uidset1;
+    TBuf<50> globaluid;
+    //AddProvAppointmentDailyRepeatAndAttendees(inparam, outparam, interface, KCalFileName1 ,uidset1 );
+    AddProvAppointmentMonthlyRepeat(inparam, outparam, interface, KCalFileName1 ,uidset1);
+    //localuid.Num(TInt64(uidset1->iLocalUID));
+    
+    globaluid.Copy(uidset1->iGlobalUID->Des());
+    TLiwGenericParam dsNameParam(KContentType, TLiwVariant(_L("CalendarEntry")));
+	inparam->AppendL(dsNameParam);
+	
+	CLiwDefaultMap *filterMap = CLiwDefaultMap::NewL();
+	TLiwGenericParam filterParam(KFilter, TLiwVariant(filterMap));
+	inparam->AppendL(filterParam);
+	filterMap->DecRef();
+
+    filterMap->InsertL(KCalendarName,TLiwVariant(_L("C:CalendarFileA")));
+    filterMap->InsertL(_L8("id"),TLiwVariant(globaluid));
+
+	TRAP(err,interface->ExecuteCmdL( _L8("GetList") ,*inparam ,*outparam));
+    
+    pos = 0 ;
+    
+    const TLiwGenericParam* finaloutput = outparam->FindFirst( pos,_L8("ReturnValue"));
+    TInt count = 0;
+    CLiwMap* map;
+    TInt retvalue = KErrNone;
+	if ( finaloutput )     
+		{
+		CLiwIterable* iterlist = finaloutput->Value().AsIterable();
+      	if(iterlist)
+      		{
+		    TLiwVariant data1;
+      		while(iterlist->NextL(data1) )
+	      		{
+				const CLiwMap* res = data1.AsMap();
+				if ( res )
+					{
+					TLiwVariant data;
+					if(res->FindL(_L8("StartTime"), data))
+						{
+						TTime ostime(TDateTime(2007,EOctober,23,10,0,0,0));
+						TTime stime = data.AsTTime();
+						if( ostime != stime)
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+
+					if(res->FindL(_L8("RepeatRule"), data))
+						{
+						const CLiwMap* map = data.AsMap();
+						TLiwVariant rdata;
+						if(map->FindL(_L8("Type"), rdata))
+							{
+							TInt type = rdata.AsTInt32();
+							if( type != 2 )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("StartDate"), rdata))
+							{
+							TTime sdate = rdata.AsTTime();
+							TTime ostime(TDateTime(2007,EOctober,23,10,0,0,0));
+							if( sdate != ostime)
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("UntilDate"), rdata))
+							{
+							TTime udate = rdata.AsTTime();
+							//TTime outime(TDateTime(2007,EOctober,30,10,0,0,0));
+							TTime outime(TDateTime(2007,EDecember,23,10,0,0,0));
+							if( udate != outime )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						rdata.Reset();
+						}
+
+					data.Reset();	
+					}
+	      		}
+      		data1.Reset();  
+      		}
+		}
+	
+	inparam->Reset();
+	outparam->Reset();
+	delete uidset1;
+    RemoveProvCalendar(inparam, outparam, interface, KCalFileName1);
+    return retvalue;
+	}
+
+int AddEntryWithAllAttributes()
+	{
+	__UHEAP_MARK;
+	CTestSync* test = CTestSync::NewL();
+    int res =  test->TestFunc();
+	delete test;
+	__UHEAP_MARKEND;
+	return res;
+	
+	}
+
+int UpdateEntryWithRDates()
+	{
+	__UHEAP_MARK;
+	CTestSync* test = CTestSync::NewL();
+    int res =  test->UpdateEntryWithRepeatAndExceptionDates();
+	delete test;
+	__UHEAP_MARKEND;
+	return res;
+	
+	}
+		
+int AddMonthlyRepeatingEntry()
+	{
+	__UHEAP_MARK;
+	CTestSync* test = CTestSync::NewL();
+    int res =  test->TestFuncMonthly();
+	delete test;
+	__UHEAP_MARKEND;
+	return res;
+	
+	}
+	
+int ModifyRepeatRule()
+	{
+	__UHEAP_MARK;
+	CTestSync* test = CTestSync::NewL();
+    int res =  test->UpdateRepeatRule();
+	delete test;
+	__UHEAP_MARKEND;
+	return res;
+	
+	}
+int UpdateApptInstanceWithRepeat()
+	{
+	__UHEAP_MARK;
+	CTestSync* test = CTestSync::NewL();
+    int res =  test->UpdateInstanceWithRepeat();
+	delete test;
+	__UHEAP_MARKEND;
+	return res;
+	
+	}
+int TestForLongStrings()
+	{
+	__UHEAP_MARK;
+	CTestSync* test = CTestSync::NewL();
+    int res =  test->AddEntryWithVeryLongDescription();
+	delete test;
+	__UHEAP_MARKEND;
+	return res;
+	
+	}	
+	
+/*int CTestSync::TestFunc()
+	{
+	iServiceHandler = CLiwServiceHandler::NewL();
+
+	CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
+	CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
+
+
+	TInt err; 
+	RCriteriaArray interest;
+    CleanupClosePushL(interest);
+    
+	CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KTestInterface,KTestContent);
+	crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+    CleanupStack::PushL(crit);
+    interest.AppendL(crit);    
+	
+	iServiceHandler->AttachL(interest);
+    iServiceHandler->ExecuteServiceCmdL(*crit, *inparam, *outparam); 
+
+	TInt pos = 0;
+
+	outparam->FindFirst( pos, KTestInterface );
+	if(pos != KErrNotFound)
+		{
+		interface = (*outparam)[pos].Value().AsInterface();	
+		}
+    CleanupStack::PopAndDestroy(crit);
+    CleanupStack::PopAndDestroy(&interest); 
+
+	outparam->Reset();
+	inparam->Reset();
+	
+	AddProvCalendar(inparam, outparam, interface, KCalFileName1);
+	TUIDSet* uidset1;
+    TBuf<10> localuid;
+    //AddProvAppointmentDailyRepeatAndAttendees(inparam, outparam, interface, KCalFileName1 ,uidset1 );
+    AddProvAppointmentWeeklyRepeat(inparam, outparam, interface, KCalFileName1 ,uidset1);
+    localuid.Num(TInt64(uidset1->iLocalUID));
+    
+    TLiwGenericParam dsNameParam(KContentType, TLiwVariant(_L("CalendarEntry")));
+	inparam->AppendL(dsNameParam);
+	
+	CLiwDefaultMap *filterMap = CLiwDefaultMap::NewL();
+	TLiwGenericParam filterParam(KFilter, TLiwVariant(filterMap));
+	inparam->AppendL(filterParam);
+	filterMap->DecRef();
+
+    filterMap->InsertL(KCalendarName,TLiwVariant(_L("C:CalendarFileA")));
+    filterMap->InsertL(_L8("LocalUid"),TLiwVariant(localuid));
+
+	TRAP(err,interface->ExecuteCmdL( _L8("GetList") ,*inparam ,*outparam));
+    
+    pos = 0 ;
+    
+    const TLiwGenericParam* finaloutput = outparam->FindFirst( pos,_L8("ReturnValue"));
+    TInt count = 0;
+    CLiwMap* map;
+    TInt retvalue = KErrNone;
+	if ( finaloutput )     
+		{
+		CLiwIterable* iterlist = finaloutput->Value().AsIterable();
+      	if(iterlist)
+      		{
+		    TLiwVariant data1;
+      		while(iterlist->NextL(data1) )
+	      		{
+				const CLiwMap* res = data1.AsMap();
+				if ( res )
+					{
+					TLiwVariant data;
+					if(res->FindL(_L8("Type"), data))
+						{
+						TPtrC type = data.AsDes();
+						if(type.CompareF(_L("Meeting")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("StartTime"), data))
+						{
+						TTime ostime(TDateTime(2007,EOctober,23,10,0,0,0));
+						TTime stime = data.AsTTime();
+						if( ostime != stime)
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("EndTime"), data))
+						{
+						TTime oetime(TDateTime(2007,EOctober,23,10,30,0,0));
+						TTime etime = data.AsTTime();
+						if( oetime != etime)
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Replication"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("Open")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Description"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("Meeting")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Status"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("Confirmed")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+					if(res->FindL(_L8("Method"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("None")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+						
+					if(res->FindL(_L8("Organizer"), data))
+						{
+						const CLiwMap* map = data.AsMap();
+						TLiwVariant rdata;
+						if(map->FindL(_L8("CommonName"), rdata))
+							{
+							TPtrC cn = rdata.AsDes();
+							if( cn.CompareF(_L("sapi")) != 0 )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("Address"), rdata))
+							{
+							TPtrC add = rdata.AsDes();
+							if( add.CompareF(_L("")) != 0 )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						rdata.Reset();	
+						}
+
+					if(res->FindL(_L8("PhoneOwner"), data))
+						{
+						TPtrC rep = data.AsDes();
+						if(rep.CompareF(_L("")) != 0 )
+							{
+						    retvalue = KErrGeneral;
+							break;
+							}
+						}
+
+					if(res->FindL(_L8("Attendees"), data))
+						{
+						const CLiwList* list = data.AsList();
+						if ( list )
+							{
+							TInt count = list->Count();
+							for ( int index = 0; index < count; index++ )
+								{
+								TLiwVariant element;
+								list->AtL(index, element);
+								const CLiwMap* map = element.AsMap();
+								TLiwVariant attParam;
+								if ( map && map->FindL(_L8("Address"), attParam) )
+									{
+									TPtrC address = attParam.AsDes();
+									if( address.CompareF(_L("")) != 0 )
+										{
+									    retvalue = KErrGeneral;
+									    attParam.Reset();
+									    element.Reset();
+										break;
+										}
+									}
+								if ( map->FindL( _L8("CommonName"), attParam ) ) 
+									{
+									TPtrC cn = attParam.AsDes();
+									if( cn.CompareF(_L("sapi")) != 0 )
+										{
+									    retvalue = KErrGeneral;
+									    attParam.Reset();
+									    element.Reset();
+										break;
+										}
+									}
+								attParam.Reset();
+		                        element.Reset();
+								}
+							}
+						}
+
+					if(res->FindL(_L8("RepeatRule"), data))
+						{
+						const CLiwMap* map = data.AsMap();
+						TLiwVariant rdata;
+						if(map->FindL(_L8("Type"), rdata))
+							{
+							TInt type = rdata.AsTInt32();
+							if( type != 2 )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("StartDate"), rdata))
+							{
+							TTime sdate = rdata.AsTTime();
+							TTime ostime(TDateTime(2007,EOctober,23,10,0,0,0));
+							if( sdate != ostime)
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						if(map->FindL(_L8("UntilDate"), rdata))
+							{
+							TTime udate = rdata.AsTTime();
+							//TTime outime(TDateTime(2007,EOctober,30,10,0,0,0));
+							TTime outime(TDateTime(2007,ENovember,27,10,0,0,0));
+							if( udate != outime )
+								{
+							    retvalue = KErrGeneral;
+							    rdata.Reset();
+								break;
+								}
+							}
+						rdata.Reset();
+						}
+
+					data.Reset();	
+					}
+	      		}
+      		data1.Reset();  
+      		}
+		}
+	
+	inparam->Reset();
+	outparam->Reset();
+	delete uidset1;
+    RemoveProvCalendar(inparam, outparam, interface, KCalFileName1);
+    return retvalue;
+	}*/
+
+void CTestSync::GetInterfaceHandle(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam)
+	{
+
+
+	TInt err; 
+	RCriteriaArray interest;
+    CleanupClosePushL(interest);
+    
+	CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL(1, KTestInterface,KTestContent);
+	crit->SetServiceClass(TUid::Uid(KLiwClassBase));
+    CleanupStack::PushL(crit);
+    interest.AppendL(crit);    
+	
+	iServiceHandler->AttachL(interest);
+    iServiceHandler->ExecuteServiceCmdL(*crit, *inparam, *outparam); 
+
+	TInt pos = 0;
+
+	outparam->FindFirst( pos, KTestInterface );
+	if(pos != KErrNotFound)
+		{
+		interface = (*outparam)[pos].Value().AsInterface();	
+		}
+    CleanupStack::PopAndDestroy(crit);
+    CleanupStack::PopAndDestroy(&interest); 
+
+	outparam->Reset();
+	inparam->Reset();
+
+	}
+	
+int CTestSync::UpdateRepeatRule()
+	{
+	iServiceHandler = CLiwServiceHandler::NewL();
+
+	CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
+	CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
+
+	GetInterfaceHandle(inparam, outparam);
+	TUIDSet* uidset1;
+    TBuf<50> globaluid;
+    TBuf<10> localuid;
+	AddProvAppointmentDailyRepeat(inparam, outparam, interface, KCalFileName1 ,uidset1);	
+	//localuid.Num(TInt64(uidset1->iLocalUID));
+	globaluid.Copy(uidset1->iGlobalUID->Des());
+
+	delete uidset1;
+    //update repeat from daily to weekly
+   	CLiwDefaultMap* map = CLiwDefaultMap::NewL();
+	CleanupStack::PushL(map);
+    localuid = GetEntry(inparam, outparam, globaluid, KCalFileName1);
+    TLiwVariant content(_L("CalendarEntry"));
+	TLiwGenericParam element1;	
+	element1.SetNameAndValueL(_L8("Type"),content);
+	inparam->AppendL(element1);
+	content.Reset();
+	element1.Reset();
+
+   	CLiwDefaultMap* repeatmap = CLiwDefaultMap::NewL();
+	CleanupStack::PushL(repeatmap);
+	repeatmap->InsertL(_L8("Type"), TLiwVariant(TInt32(2)));
+	repeatmap->InsertL(_L8("UntilDate"), TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+	map->InsertL(_L8("RepeatRule"), TLiwVariant(repeatmap));
+	CleanupStack::Pop(repeatmap);
+	repeatmap->DecRef();
+	
+	map->InsertL(_L8("LocalId"), TLiwVariant(localuid));
+    
+	TLiwGenericParam element;	
+	element.SetNameAndValueL(_L8("Item"),TLiwVariant(map));
+	
+	inparam->AppendL(element);
+	element.Reset();
+    map->DecRef();
+    CleanupStack::Pop(map);
+
+	TRAPD(err, interface->ExecuteCmdL( KCmdAdd, *inparam,*outparam ));
+    TInt pos = 0 ;
+    
+    const TLiwGenericParam* output = outparam->FindFirst( pos,_L8("ErrorCode"));
+	if(output)
+		err = output->Value().AsTInt32();
+	
+	//update from weekly to monthly
+	if( err == KErrNone )
+		{
+		inparam->Reset();
+		outparam->Reset();
+		
+	   	CLiwDefaultMap* map1 = CLiwDefaultMap::NewL();
+		CleanupStack::PushL(map1);
+
+	    TLiwVariant content(_L("CalendarEntry"));
+		TLiwGenericParam element1;	
+		element1.SetNameAndValueL(_L8("Type"),content);
+		inparam->AppendL(element1);
+		content.Reset();
+		element1.Reset();
+
+	    map1->InsertL(_L8("LocalId"),TLiwVariant(localuid));
+		
+	   	CLiwDefaultMap* repeatmap = CLiwDefaultMap::NewL();
+		CleanupStack::PushL(repeatmap);
+		repeatmap->InsertL(_L8("Type"), TLiwVariant(TInt32(3)));
+		repeatmap->InsertL(_L8("StartDate"), TLiwVariant(TTime(TDateTime(2007,EJanuary,30,10,0,0,0))));
+		repeatmap->InsertL(_L8("UntilDate"), TLiwVariant(TTime(TDateTime(2009,EJanuary,30,10,0,0,0))));
+		
+	   	CLiwDefaultList* daysofmonthlist = CLiwDefaultList::NewL();
+	   	CLiwDefaultMap* map3 = CLiwDefaultMap::NewL();
+	    map3->InsertL(_L8("Day"), TLiwVariant(TInt32(0)) ); 
+		map3->InsertL(_L8("WeekNum"), TLiwVariant( TInt32(1)));
+	   	daysofmonthlist->AppendL(TLiwVariant(map3));
+	   	map3->DecRef();
+	   	
+	   	CLiwDefaultMap* map2 = CLiwDefaultMap::NewL();
+	    map2->InsertL(_L8("Day"), TLiwVariant(TInt32(2)) ); 
+		map2->InsertL(_L8("WeekNum"), TLiwVariant( TInt32(3)));
+	   	daysofmonthlist->AppendL(TLiwVariant(map2));
+	   	map2->DecRef();
+
+		repeatmap->InsertL(_L8("DaysOfMonth"),TLiwVariant(daysofmonthlist));
+	   	daysofmonthlist->DecRef();
+
+		map1->InsertL(_L8("RepeatRule"), TLiwVariant(repeatmap));
+		CleanupStack::Pop(repeatmap);
+		repeatmap->DecRef();
+
+		TLiwGenericParam element;	
+		element.SetNameAndValueL(_L8("Item"),TLiwVariant(map1));
+		
+		inparam->AppendL(element);
+		element.Reset();
+		CleanupStack::Pop(map1);
+		map1->DecRef();
+		TRAP(err, interface->ExecuteCmdL( KCmdAdd, *inparam,*outparam ));
+	    TInt pos1 = 0 ;
+		const TLiwGenericParam* output = outparam->FindFirst( pos1,_L8("ErrorCode"));
+		if(output)
+			err = output->Value().AsTInt32();
+		inparam->Reset();
+		outparam->Reset();
+
+		}
+    return err;
+	}
+	
+int CTestSync::UpdateInstanceWithRepeat()
+	{
+	iServiceHandler = CLiwServiceHandler::NewL();
+
+	CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
+	CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
+
+	GetInterfaceHandle(inparam, outparam);
+	TUIDSet* uidset1;
+    TBuf<10> localuid;
+    TBuf<50> globaluid;
+	AddProvAppointmentDailyRepeat(inparam, outparam, interface, KCalFileName1 ,uidset1);	
+	//localuid.Num(TInt64(uidset1->iLocalUID));
+	globaluid.Copy(uidset1->iGlobalUID->Des());
+    localuid = GetEntry( inparam, outparam, globaluid, KCalFileName1);
+	delete uidset1;
+    //update repeat from daily to weekly
+   	CLiwDefaultMap* map = CLiwDefaultMap::NewL();
+	CleanupStack::PushL(map);
+
+    TLiwVariant content(_L("CalendarEntry"));
+	TLiwGenericParam element1;	
+	element1.SetNameAndValueL(_L8("Type"),content);
+	inparam->AppendL(element1);
+	content.Reset();
+	element1.Reset();
+
+   	CLiwDefaultMap* repeatmap = CLiwDefaultMap::NewL();
+	CleanupStack::PushL(repeatmap);
+	repeatmap->InsertL(_L8("Type"), TLiwVariant(TInt32(2)));
+	repeatmap->InsertL(_L8("UntilDate"), TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+	map->InsertL(_L8("RepeatRule"), TLiwVariant(repeatmap));
+	CleanupStack::Pop(repeatmap);
+	repeatmap->DecRef();
+	
+	map->InsertL(_L8("LocalUid"), TLiwVariant(localuid));
+	map->InsertL(_L8("InstanceStartTime"), TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+	map->InsertL(_L8("CalendarName"), TLiwVariant(_L("C:Calendar")));
+	
+    
+	TLiwGenericParam element;	
+	element.SetNameAndValueL(_L8("Item"),TLiwVariant(map));
+	
+	inparam->AppendL(element);
+	element.Reset();
+    map->DecRef();
+    CleanupStack::Pop(map);
+
+	TRAPD(err, interface->ExecuteCmdL( KCmdAdd, *inparam,*outparam ));
+    TInt pos = 0 ;
+    
+    const TLiwGenericParam* output = outparam->FindFirst( pos,_L8("ErrorCode"));
+	if(output)
+		err = output->Value().AsTInt32();
+	
+	//update from weekly to monthly
+	if( err == KErrNone )
+		{
+		inparam->Reset();
+		outparam->Reset();
+		
+	   	CLiwDefaultMap* map1 = CLiwDefaultMap::NewL();
+		CleanupStack::PushL(map1);
+
+	    TLiwVariant content(_L("CalendarEntry"));
+		TLiwGenericParam element1;	
+		element1.SetNameAndValueL(_L8("Type"),content);
+		inparam->AppendL(element1);
+		content.Reset();
+		element1.Reset();
+
+	    map1->InsertL(_L8("LocalId"),TLiwVariant(localuid));
+		
+	   	CLiwDefaultMap* repeatmap = CLiwDefaultMap::NewL();
+		CleanupStack::PushL(repeatmap);
+		repeatmap->InsertL(_L8("Type"), TLiwVariant(TInt32(3)));
+		repeatmap->InsertL(_L8("StartDate"), TLiwVariant(TTime(TDateTime(2007,EJanuary,30,10,0,0,0))));
+		repeatmap->InsertL(_L8("UntilDate"), TLiwVariant(TTime(TDateTime(2009,EJanuary,30,10,0,0,0))));
+		
+	   	CLiwDefaultList* daysofmonthlist = CLiwDefaultList::NewL();
+	   	CLiwDefaultMap* map3 = CLiwDefaultMap::NewL();
+	    map3->InsertL(_L8("Day"), TLiwVariant(TInt32(0)) ); 
+		map3->InsertL(_L8("WeekNum"), TLiwVariant( TInt32(1)));
+	   	daysofmonthlist->AppendL(TLiwVariant(map3));
+	   	map3->DecRef();
+	   	
+	   	CLiwDefaultMap* map2 = CLiwDefaultMap::NewL();
+	    map2->InsertL(_L8("Day"), TLiwVariant(TInt32(2)) ); 
+		map2->InsertL(_L8("WeekNum"), TLiwVariant( TInt32(3)));
+	   	daysofmonthlist->AppendL(TLiwVariant(map2));
+	   	map2->DecRef();
+
+		repeatmap->InsertL(_L8("DaysOfMonth"),TLiwVariant(daysofmonthlist));
+	   	daysofmonthlist->DecRef();
+
+		map1->InsertL(_L8("RepeatRule"), TLiwVariant(repeatmap));
+		CleanupStack::Pop(repeatmap);
+		repeatmap->DecRef();
+
+		TLiwGenericParam element;	
+		element.SetNameAndValueL(_L8("Item"),TLiwVariant(map1));
+		
+		inparam->AppendL(element);
+		element.Reset();
+		CleanupStack::Pop(map1);
+		map1->DecRef();
+		TRAPD(err1, interface->ExecuteCmdL( KCmdAdd, *inparam,*outparam ));
+	    TInt pos1 = 0 ;
+		const TLiwGenericParam* output = outparam->FindFirst( pos1,_L8("ErrorCode"));
+		if(output)
+			err = output->Value().AsTInt32();
+		inparam->Reset();
+		outparam->Reset();
+
+		}
+    return err;
+	}
+
+int CTestSync::UpdateEntryWithRepeatAndExceptionDates()
+	{
+	iServiceHandler = CLiwServiceHandler::NewL();
+
+	CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
+	CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
+
+	GetInterfaceHandle(inparam, outparam);
+	TUIDSet* uidset1;
+    TBuf<10> localuid;
+    TBuf<50> globaluid;
+	AddProvToDo(inparam, outparam, interface, KCalFileName1 ,uidset1);	
+	//localuid.Num(TInt64(uidset1->iLocalUID));
+	globaluid.Copy(uidset1->iGlobalUID->Des());
+    localuid = GetEntry( inparam, outparam, globaluid, KCalFileName1);
+	delete uidset1;
+    //update repeat from daily to weekly
+   	CLiwDefaultMap* map = CLiwDefaultMap::NewL();
+	CleanupStack::PushL(map);
+
+    TLiwVariant content(_L("CalendarEntry"));
+	TLiwGenericParam element1;	
+	element1.SetNameAndValueL(_L8("Type"),content);
+	inparam->AppendL(element1);
+	content.Reset();
+	element1.Reset();
+
+    CLiwDefaultList* repeatdts = CLiwDefaultList::NewL(); 
+    CleanupStack::PushL(repeatdts); 
+    repeatdts->AppendL(TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+    repeatdts->AppendL(TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+    repeatdts->AppendL(TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+    repeatdts->AppendL(TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+	map->InsertL(_L8("RepeatDates"), TLiwVariant(repeatdts));
+	CleanupStack::Pop(repeatdts);
+	repeatdts->DecRef();
+
+     
+   	CLiwDefaultMap* repeatmap = CLiwDefaultMap::NewL();
+	CleanupStack::PushL(repeatmap);
+	repeatmap->InsertL(_L8("Type"), TLiwVariant(TInt32(2)));
+	repeatmap->InsertL(_L8("UntilDate"), TLiwVariant(TTime(TDateTime(2007,EDecember,30,10,0,0,0))));
+	map->InsertL(_L8("RepeatRule"), TLiwVariant(repeatmap));
+	CleanupStack::Pop(repeatmap);
+	repeatmap->DecRef();
+	
+	map->InsertL(_L8("LocalId"), TLiwVariant(localuid));
+    
+	TLiwGenericParam element;	
+	element.SetNameAndValueL(_L8("Item"),TLiwVariant(map));
+	
+	inparam->AppendL(element);
+	element.Reset();
+    map->DecRef();
+    CleanupStack::Pop(map);
+
+	TRAPD(err, interface->ExecuteCmdL( KCmdAdd, *inparam,*outparam ));
+    TInt pos = 0 ;
+    
+    const TLiwGenericParam* output = outparam->FindFirst( pos,_L8("ErrorCode"));
+	if(output)
+		err = output->Value().AsTInt32();
+	
+	//update from weekly to monthly
+	if( err == KErrNone )
+		{
+		inparam->Reset();
+		outparam->Reset();
+		
+	   	CLiwDefaultMap* map1 = CLiwDefaultMap::NewL();
+		CleanupStack::PushL(map1);
+
+	    TLiwVariant content(_L("CalendarEntry"));
+		TLiwGenericParam element1;	
+		element1.SetNameAndValueL(_L8("Type"),content);
+		inparam->AppendL(element1);
+		content.Reset();
+		element1.Reset();
+
+	    map1->InsertL(_L8("LocalUid"),TLiwVariant(localuid));
+		
+	   	CLiwDefaultMap* repeatmap = CLiwDefaultMap::NewL();
+		CleanupStack::PushL(repeatmap);
+		repeatmap->InsertL(_L8("Type"), TLiwVariant(TInt32(3)));
+		repeatmap->InsertL(_L8("StartDate"), TLiwVariant(TTime(TDateTime(2007,EJanuary,30,10,0,0,0))));
+		repeatmap->InsertL(_L8("UntilDate"), TLiwVariant(TTime(TDateTime(2009,EJanuary,30,10,0,0,0))));
+		
+	   	CLiwDefaultList* daysofmonthlist = CLiwDefaultList::NewL();
+	   	CLiwDefaultMap* map3 = CLiwDefaultMap::NewL();
+	    map3->InsertL(_L8("Day"), TLiwVariant(TInt32(0)) ); 
+		map3->InsertL(_L8("WeekNum"), TLiwVariant( TInt32(1)));
+	   	daysofmonthlist->AppendL(TLiwVariant(map3));
+	   	map3->DecRef();
+	   	
+	   	CLiwDefaultMap* map2 = CLiwDefaultMap::NewL();
+	    map2->InsertL(_L8("Day"), TLiwVariant(TInt32(2)) ); 
+		map2->InsertL(_L8("WeekNum"), TLiwVariant( TInt32(3)));
+	   	daysofmonthlist->AppendL(TLiwVariant(map2));
+	   	map2->DecRef();
+
+		repeatmap->InsertL(_L8("DaysOfMonth"),TLiwVariant(daysofmonthlist));
+	   	daysofmonthlist->DecRef();
+
+		map1->InsertL(_L8("RepeatRule"), TLiwVariant(repeatmap));
+		CleanupStack::Pop(repeatmap);
+		repeatmap->DecRef();
+
+		TLiwGenericParam element;	
+		element.SetNameAndValueL(_L8("Item"),TLiwVariant(map1));
+		
+		inparam->AppendL(element);
+		element.Reset();
+		CleanupStack::Pop(map1);
+		map1->DecRef();
+		TRAPD(err1, interface->ExecuteCmdL( KCmdAdd, *inparam,*outparam ));
+	    TInt pos1 = 0 ;
+		const TLiwGenericParam* output = outparam->FindFirst( pos1,_L8("ErrorCode"));
+		if(output)
+			err = output->Value().AsTInt32();
+		inparam->Reset();
+		outparam->Reset();
+
+		}
+    return err;
+	}
+
+int CTestSync::AddEntryWithVeryLongDescription()
+	{
+	iServiceHandler = CLiwServiceHandler::NewL();
+
+	CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
+	CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
+
+	GetInterfaceHandle(inparam, outparam);
+	
+   	CLiwDefaultMap* map = CLiwDefaultMap::NewL();
+	CleanupStack::PushL(map);
+
+    TLiwVariant content(_L("CalendarEntry"));
+	TLiwGenericParam element1;	
+	element1.SetNameAndValueL(_L8("Type"),content);
+	inparam->AppendL(element1);
+	content.Reset();
+	element1.Reset();
+
+
+	map->InsertL(_L8("Type"), TLiwVariant( KEntryTodo ));
+	map->InsertL(_L8("EndTime"), TLiwVariant(TTime(TDateTime(2007,EAugust,20,0,0,0,0))));
+	map->InsertL(_L8("Replication"), TLiwVariant(_L("Open")));
+	HBufC* description = FillBuffer(1000, ETestUnicode);
+	map->InsertL(_L8("Description"), TLiwVariant(description->Des()));
+	delete description;
+	description = NULL;
+	//map->InsertL(_L8("Method"), TLiwVariant(_L("None")));
+	
+	TLiwGenericParam element;	
+	element.SetNameAndValueL(_L8("Item"),TLiwVariant(map));
+	
+	inparam->AppendL(element);
+	element.Reset();
+    map->DecRef();
+    CleanupStack::Pop(map);
+
+	TRAPD(err, interface->ExecuteCmdL( KCmdAdd, *inparam,*outparam ));
+    TInt pos = 0 ;
+    
+    const TLiwGenericParam* output = outparam->FindFirst( pos,_L8("ErrorCode"));
+	
+	if(output)
+		{
+		err = output->Value().AsTInt32();
+		}
+	inparam->Reset();
+	outparam->Reset();
+
+	return err;
+
+	}
+
+TDesC& CTestSync::GetEntry(CLiwGenericParamList* inparam, CLiwGenericParamList* outparam, TPtrC globaluid, const TDesC& calname)
+	{
+	inparam->Reset();
+	outparam->Reset();
+    
+    TLiwGenericParam dsNameParam(KContentType, TLiwVariant(_L("CalendarEntry")));
+	inparam->AppendL(dsNameParam);
+	
+	CLiwDefaultMap *filterMap = CLiwDefaultMap::NewL();
+	TLiwGenericParam filterParam(KFilter, TLiwVariant(filterMap));
+	inparam->AppendL(filterParam);
+	filterMap->DecRef();
+
+    if(calname.Length())
+    	filterMap->InsertL(KCalendarName,TLiwVariant(calname));
+    filterMap->InsertL(_L8("id"),TLiwVariant(globaluid));
+
+	TRAPD(err,interface->ExecuteCmdL( _L8("GetList") ,*inparam ,*outparam));
+    TInt pos = 0 ;
+    TBuf<10> result;
+    const TLiwGenericParam* output = outparam->FindFirst( pos,_L8("ErrorCode"));
+	
+	if(output)
+		{
+		err = output->Value().AsTInt32();
+		if( err == KErrNone )
+			{
+			pos = 0;
+            output = outparam->FindFirst( pos,_L8("ReturnValue"));
+            CLiwMap* map;
+    		TInt retvalue = KErrNone;
+    
+			if ( output )     
+				{
+				CLiwIterable* iterlist = output->Value().AsIterable();
+		      	if(iterlist)
+		      		{
+				    TLiwVariant data1;
+		      		while(iterlist->NextL(data1) )
+			      		{
+						const CLiwMap* res = data1.AsMap();
+						if ( res )
+							{
+							TLiwVariant data;
+							if(res->FindL(_L8("LocalId"), data))
+								result = data.AsDes();
+							data.Reset();
+							}
+			      		}
+		      		data1.Reset();  
+		      		}
+				}
+			}
+		}
+	
+	inparam->Reset();
+	outparam->Reset();
+
+	return result;
+	}