private string ConvertAddressDictionaryToFullAddress(NSDictionary addressDictionary) { var addressLines = (NSArray)NSArray.FromObject(addressDictionary.ValueForKey(new NSString("FormattedAddressLines"))); var arr = new List <string>(); for (uint i = 0; i < addressLines.Count; i++) { var o = ObjCRuntime.Runtime.GetNSObject(addressLines.ValueAt(i)); arr.Add(o.ToString()); } return(string.Join(", ", arr.ToArray())); }
public void Delete(IEnumerable <Item <T> > itemsToDelete, Action <DeleteResult <T> > completionHandler) { if (IsDeletionInProgress) { return; } IsDeletionInProgress = true; IList <Item <T> > deletedItems = new List <Item <T> >(); IList <Item <T> > itemsNotDeletedDueToFailure = new List <Item <T> >(); DispatchQueue.DefaultGlobalQueue.DispatchAsync(() => { foreach (var item in itemsToDelete) { try { NSError error; _fileManager.Remove(item.Url, out error); deletedItems.Add(item); } catch (Exception e) { itemsNotDeletedDueToFailure.Add(item); } } }); DispatchQueue.MainQueue.DispatchAsync(() => { if (deletedItems.Count > 0) { NSNotificationCenter.DefaultCenter.PostNotification(NSNotification.FromName("ItemsDeleted", NSArray.FromObject(deletedItems.ToArray()))); } IsDeletionInProgress = false; var deleteResult = new DeleteResult <T> { NotRemovedItems = itemsNotDeletedDueToFailure, RemovedItems = deletedItems }; if (itemsNotDeletedDueToFailure.Any()) { deleteResult.ErrorMessage = "Failed to remove " + itemsNotDeletedDueToFailure.Count + " items"; } completionHandler?.Invoke(deleteResult); }); }