public void RefreshMail()
{
int i = 0;
int j = 0;
try
{
List<MailDTO> mails = ServerManager.Mails.Where(s => s.ReceiverId == CharacterId && !s.IsSenderCopy && MailList.All(m => m.Value.MailId != s.MailId)).Take(50).ToList();
for (int x = 0; x < mails.Count; x++)
{
MailList.Add((MailList.Any() ? MailList.OrderBy(s => s.Key).Last().Key : 0) + 1, mails.ElementAt(x));
if (mails.ElementAt(x).AttachmentVNum != null)
{
i++;
Session.SendPacket(GenerateParcel(mails.ElementAt(x)));
}
else
{
if (!mails.ElementAt(x).IsOpened)
{
j++;
}
Session.SendPacket(GeneratePost(mails.ElementAt(x), 1));
}
}
if (i > 0)
{
Session.SendPacket(GenerateSay(String.Format(Language.Instance.GetMessageFromKey("GIFTED"), i), 11));
}
if (j > 0)
{
Session.SendPacket(GenerateSay(String.Format(Language.Instance.GetMessageFromKey("NEW_MAIL"), j), 10));
}
}
catch (Exception ex)
{
Logger.Log.Debug("Error while refreshing mail: " + ex.Message);
}
LastMailRefresh = DateTime.Now;
}