private static void MapPhoto2To1(vCard source, ContactItem target) { if (source.Photos.Count > 0) { vCardPhoto contactPhoto = source.Photos[0]; if (contactPhoto.IsLoaded) { string picturePath = Path.GetTempPath() + @"\Contact_" + target.EntryID + ".jpg"; using (FileStream fs = new FileStream(picturePath, FileMode.Create)) { fs.Write(contactPhoto.GetBytes(), 0, contactPhoto.GetBytes().Length); fs.Flush(); } target.AddPicture(picturePath); File.Delete(picturePath); } } }
private void MapPhoto2To1(vCard source, ContactItem target, IEntityMappingLogger logger) { if (source.Photos.Count > 0) { if (target.HasPicture && _configuration.KeepOutlookPhoto) { return; } vCardPhoto contactPhoto = source.Photos[0]; if (contactPhoto.IsLoaded) { try { string picturePath = Path.GetTempPath() + @"\Contact_" + target.EntryID + ".jpg"; File.WriteAllBytes(picturePath, contactPhoto.GetBytes()); try { target.AddPicture(picturePath); } catch (COMException x) { s_logger.Warn("Could not add picture for contact.", x); logger.LogMappingWarning("Could not add picture for contact.", x); } File.Delete(picturePath); } catch (Exception ex) { s_logger.Warn("Could not add picture for contact.", ex); logger.LogMappingWarning("Could not add picture for contact.", ex); } } } else { if (target.HasPicture) { try { target.RemovePicture(); } catch (COMException x) { s_logger.Warn("Could not remove picture for contact.", x); logger.LogMappingWarning("Could not remove picture for contact.", x); } } } }
public void Constructor_Encoded_Data() { vCardPhoto p = new vCardPhoto(TestPhotoUrl); p.Fetch(); var bytes = p.GetBytes(); var base64Image = Convert.ToBase64String(bytes); vCardPhoto photo = new vCardPhoto(base64Image, true); Assert.IsTrue(photo.HasEncodedData, "encoded data is false"); var data = photo.EncodedData; Assert.AreEqual(base64Image, data); }
public void Fetch_Good() { // You may wish to ignore this test if you run // extensive unit tests and your Internet connection // is slow. vCardPhoto photo = new vCardPhoto(TestPhotoUrl); Assert.IsFalse( photo.IsLoaded, "The photo has not been loaded yet."); photo.Fetch(); Assert.IsTrue( photo.IsLoaded, "The photo should have been loaded."); // Get the bytes of the image. byte[] data = photo.GetBytes(); Assert.AreEqual( TestPhotoSize, data.Length, "The length of the photo is unexpected."); #if Linux // Throw new NotImplementedException("Not implemented OSX test."); #elif OSX // Throw new NotImplementedException("Not implemented OSX test."); #elif Windows using (Bitmap bitmap = photo.GetBitmap()) { Assert.AreEqual( TestPhotoHeight, bitmap.Size.Height, "The photo height is unexpected."); Assert.AreEqual( TestPhotoWidth, bitmap.Size.Width, "The photo width is unexpected."); } #endif }
private async Task MapPhoto2To1(vCard source, ContactItem target, IEntitySynchronizationLogger logger) { if (source.Photos.Count > 0) { if (target.HasPicture && _configuration.KeepOutlookPhoto) { return; } vCardPhoto contactPhoto = source.Photos[0]; string picturePath = Path.GetTempPath() + @"\Contact_" + target.EntryID + ".jpg"; try { if (!contactPhoto.IsLoaded && contactPhoto.Url != null) { using (var client = _webClientFactory()) { await client.DownloadFileTaskAsync(contactPhoto.Url, picturePath); } } else if (contactPhoto.IsLoaded) { File.WriteAllBytes(picturePath, contactPhoto.GetBytes()); } else { s_logger.Warn("Could not load picture for contact."); logger.LogWarning("Could not load picture for contact."); return; } try { target.AddPicture(picturePath); } catch (COMException x) { s_logger.Warn("Could not add picture for contact.", x); logger.LogWarning("Could not add picture for contact.", x); } File.Delete(picturePath); } catch (Exception ex) { s_logger.Warn("Could not add picture for contact.", ex); logger.LogWarning("Could not add picture for contact.", ex); } } else { if (target.HasPicture) { try { target.RemovePicture(); } catch (COMException x) { s_logger.Warn("Could not remove picture for contact.", x); logger.LogWarning("Could not remove picture for contact.", x); } } } }