public void UploadIfOutdated() { int valueOrDefault = this.mailboxSession.Mailbox.GetValueOrDefault <int>(MailboxSchema.GroupMailboxGeneratedPhotoVersion, -1); byte[] array = this.ReadGroupMailboxPhoto(); bool flag = false; if (valueOrDefault == -1 && array.Length == 0) { flag = true; } else if (valueOrDefault < 1 && array.Length > 0) { byte[] valueOrDefault2 = this.mailboxSession.Mailbox.GetValueOrDefault <byte[]>(MailboxSchema.GroupMailboxGeneratedPhotoSignature, null); byte[] photoSignature = GroupMailboxDefaultPhotoUploader.GetPhotoSignature(array); if (valueOrDefault2 != null && photoSignature.SequenceEqual(valueOrDefault2)) { flag = true; } } if (flag) { this.UploadAndUpdateVersion(1); return; } this.mailboxSession.Mailbox[MailboxSchema.GroupMailboxGeneratedPhotoVersion] = int.MaxValue; this.mailboxSession.Mailbox.Save(); this.mailboxSession.Mailbox.Load(); }
private void UploadPhoto() { try { if (GroupMailboxDefaultPhotoUploader.IsFlightEnabled(this.mailboxSession)) { GrayException.MapAndReportGrayExceptions(delegate() { GroupMailboxDefaultPhotoUploader groupMailboxDefaultPhotoUploader = new GroupMailboxDefaultPhotoUploader(this.adSession, this.mailboxSession, this.group); this.group.ThumbnailPhoto = groupMailboxDefaultPhotoUploader.Upload(); }, (Exception e) => GrayException.IsSystemGrayException(e)); } } catch (LocalizedException arg) { this.TraceAndReportWarning(new LocalizedString(string.Format("Unable to upload photo for group {0} Error {1}", this.group.PrimarySmtpAddress, arg))); } }
private byte[] UploadAndUpdateVersion(int version) { this.InternalUploadPhoto(); byte[] array = this.ReadGroupMailboxPhoto(); this.mailboxSession.Mailbox[MailboxSchema.GroupMailboxGeneratedPhotoSignature] = GroupMailboxDefaultPhotoUploader.GetPhotoSignature(array); this.mailboxSession.Mailbox[MailboxSchema.GroupMailboxGeneratedPhotoVersion] = version; return(array); }