public static void MailArrived(ModelMail mail) { try { if (mail.To == null || mail.To.Login != SessionClientController.My.Login) { return; } Action <ModelMail> action; if (TypeMailProcessing.TryGetValue(mail.GetType(), out action)) { Loger.Log($"Mail {mail.GetType().Name} " + (mail.From == null ? "-" : mail.From.Login) + "->" + (mail.To == null ? "-" : mail.To.Login) + ":" + mail.ContentString() + " hash=" + mail.GetHash()); action(mail); } else { Loger.Log("Mail fail: error type " + mail.GetType().Name); } } catch (Exception e) { Loger.Log("Mail Exception: " + e.ToString()); } }