private
CrmNumber
GetNextAttachmentNo(ICrmService
service, Guid
EmailID)
{
CrmNumber
retval = new
CrmNumber(0);
// condition
ConditionExpression
condition = new
ConditionExpression();
condition.AttributeName =
"activityid";
condition.Operator =
ConditionOperator.Equal;
condition.Values =
new
object[]
{ EmailID.ToString() };
//filter
FilterExpression
filter = new
FilterExpression();
filter.FilterOperator =
LogicalOperator.And;
filter.Conditions.Add(condition);
// columns
ColumnSet
cols = new
ColumnSet();
cols.AddColumn("attachmentnumber");
// new query
QueryExpression
query = new
QueryExpression();
query.EntityName =
EntityName.activitymimeattachment.ToString();
query.ColumnSet = cols;
query.Criteria = filter;
// request object
RetrieveMultipleRequest
retrieve = new
RetrieveMultipleRequest();
retrieve.Query = query;
// execute
RetrieveMultipleResponse
retrieved = (RetrieveMultipleResponse)service.Execute(retrieve);
//Find max attachment number
foreach
(object
o in
retrieved.BusinessEntityCollection.BusinessEntities)
{
// cast
activitymimeattachment eat = (activitymimeattachment)o;
if (eat.attachmentnumber.Value
> retval.Value)
{ // higher, remember it!
retval.Value
= eat.attachmentnumber.Value;
}
}
// done; we want the next one
retval.Value += 1;
return retval;
}