Skip to content

Commit

Permalink
GetLatestMessage() - Remove null execution path
Browse files Browse the repository at this point in the history
  • Loading branch information
abhinavminhas committed Jul 27, 2024
1 parent a7a1469 commit 651eb21
Showing 1 changed file with 26 additions and 23 deletions.
49 changes: 26 additions & 23 deletions GmailAPIHelper/GmailHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -287,35 +287,38 @@ public static string GetLatestMessage(this GmailService gmailService, string que
{
string requiredMessage = null;
var latestMessage = messages.OrderByDescending(item => item.InternalDate).FirstOrDefault();
var messageRequest = service.Users.Messages.Get(userId, latestMessage.Id);
messageRequest.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Full;
var latestMessageDetails = messageRequest.Execute();
MessagePart requiredMessagePart = null;
if (latestMessageDetails.Payload.MimeType == "text/plain")
requiredMessagePart = latestMessageDetails.Payload;
else if (latestMessageDetails.Payload.MimeType == "text/html")
requiredMessagePart = latestMessageDetails.Payload;
else
if (latestMessage != null)
{
if (latestMessageDetails.Payload.Parts != null)
var messageRequest = service.Users.Messages.Get(userId, latestMessage.Id);
messageRequest.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Full;
var latestMessageDetails = messageRequest.Execute();
MessagePart requiredMessagePart = null;
if (latestMessageDetails.Payload.MimeType == "text/plain")
requiredMessagePart = latestMessageDetails.Payload;
else if (latestMessageDetails.Payload.MimeType == "text/html")
requiredMessagePart = latestMessageDetails.Payload;
else
{
requiredMessagePart = latestMessageDetails.Payload.Parts.FirstOrDefault(x => x.MimeType == "text/plain");
if (requiredMessagePart.Body.Data == "" || requiredMessagePart.Body.Data == null)
requiredMessagePart = latestMessageDetails.Payload.Parts.FirstOrDefault(x => x.MimeType == "text/html");
if (latestMessageDetails.Payload.Parts != null)
{
requiredMessagePart = latestMessageDetails.Payload.Parts.FirstOrDefault(x => x.MimeType == "text/plain");
if (requiredMessagePart.Body.Data == "" || requiredMessagePart.Body.Data == null)
requiredMessagePart = latestMessageDetails.Payload.Parts.FirstOrDefault(x => x.MimeType == "text/html");
}
}
}
if (requiredMessagePart != null)
{
byte[] data = Convert.FromBase64String(requiredMessagePart.Body.Data.Replace('-', '+').Replace('_', '/').Replace(" ", "+"));
requiredMessage = Encoding.UTF8.GetString(data);
if (markRead)
if (requiredMessagePart != null)
{
var labelToRemove = new List<string> { "UNREAD" };
service.RemoveLabels(latestMessage.Id, labelToRemove, userId: userId);
byte[] data = Convert.FromBase64String(requiredMessagePart.Body.Data.Replace('-', '+').Replace('_', '/').Replace(" ", "+"));
requiredMessage = Encoding.UTF8.GetString(data);
if (markRead)
{
var labelToRemove = new List<string> { "UNREAD" };
service.RemoveLabels(latestMessage.Id, labelToRemove, userId: userId);
}
}
else
requiredMessagePart = null;
}
else
requiredMessagePart = null;
if (disposeGmailService)
service.DisposeGmailService();
return requiredMessage;
Expand Down

0 comments on commit 651eb21

Please sign in to comment.