diff --git a/Templates/CSharp/Base/EntityRequest.Base.template.tt b/Templates/CSharp/Base/EntityRequest.Base.template.tt
index e42fe0416..f9de59105 100644
--- a/Templates/CSharp/Base/EntityRequest.Base.template.tt
+++ b/Templates/CSharp/Base/EntityRequest.Base.template.tt
@@ -350,7 +350,9 @@ public void AppendUpdateAsyncHeader(string entityName, string lowerCaseEntityNam
{
stringBuilder.Append(Environment.NewLine);
stringBuilder.Append(" /// The for the request.");
- }
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" /// Thrown when an object returned in a response is used for updating an object in Microsoft Graph.");
+ }
stringBuilder.Append(Environment.NewLine);
stringBuilder.AppendFormat(" /// The updated {0}.", entityName);
@@ -390,6 +392,32 @@ public string GetEntityUpdateAsyncMethod(OdcmClass odcmClass, bool initializeCol
stringBuilder.AppendFormat(" public async System.Threading.Tasks.Task<{0}> UpdateAsync({0} {1}ToUpdate, CancellationToken cancellationToken)", entityName, lowerCaseEntityName);
stringBuilder.Append(Environment.NewLine);
stringBuilder.Append(" {");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.AppendFormat(" if ({0}ToUpdate.AdditionalData != null)", lowerCaseEntityName);
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" {");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.AppendFormat(" if ({0}ToUpdate.AdditionalData.ContainsKey(Constants.HttpPropertyNames.ResponseHeaders) ||", lowerCaseEntityName);
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.AppendFormat(" {0}ToUpdate.AdditionalData.ContainsKey(Constants.HttpPropertyNames.StatusCode))", lowerCaseEntityName);
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" {");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" throw new ClientException(");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" new Error");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" {");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" Code = GeneratedErrorConstants.Codes.NotAllowed,");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.AppendFormat(" Message = String.Format(GeneratedErrorConstants.Messages.ResponseObjectUsedForUpdate, {0}ToUpdate.GetType().Name)", lowerCaseEntityName);
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" });");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" }");
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" }");
stringBuilder.Append(Environment.NewLine);
stringBuilder.AppendFormat(" this.ContentType = \"{0}\";", templateWriter.jsonContentType);
stringBuilder.Append(Environment.NewLine);
diff --git a/Templates/CSharp/Base/IEntityRequest.Base.template.tt b/Templates/CSharp/Base/IEntityRequest.Base.template.tt
index 7e90ae5f0..f5e1b9e49 100644
--- a/Templates/CSharp/Base/IEntityRequest.Base.template.tt
+++ b/Templates/CSharp/Base/IEntityRequest.Base.template.tt
@@ -274,7 +274,9 @@ public void AppendUpdateAsyncMethodHeader(string entityName, string lowerCaseEnt
{
stringBuilder.Append(Environment.NewLine);
stringBuilder.Append(" /// The for the request.");
- }
+ stringBuilder.Append(Environment.NewLine);
+ stringBuilder.Append(" /// Thrown when an object returned in a response is used for updating an object in Microsoft Graph.");
+ }
stringBuilder.Append(Environment.NewLine);
stringBuilder.AppendFormat(" /// The updated {0}.", entityName);