// Creates the folder in Firebase Database
        void CreateFolder(string folderName)
        {
            // Create folder key node
            var folderNodeName = folderName.Replace(' ', '_');

            folderNodeName = char.ToLower(folderNodeName [0]) + folderNodeName.Substring(1, folderNodeName.Length - 1);

            // Create data to be saved in node
            var created = AppDelegate.GetUtcTimestamp();

            object [] keys   = { "created", "lastModified", "name", "negativeLastModified", "notesCount" };
            object [] values = { created, created, folderName, -created, 0 };
            var       data   = NSDictionary.FromObjectsAndKeys(values, keys, keys.Length);

            // Points to https://MyDatabaseId.firebaseio.com/folders/«userUid»/«folderUid»
            DatabaseReference folderNode = foldersNode.GetChild(folderNodeName);

            // Keep data offline
            folderNode.KeepSynced(true);
            // Save data in folder node
            folderNode.SetValue(data);

            // Increment folders count in Firebase Database
            foldersCountNode.SetValue(NSNumber.FromNUInt(++foldersCount));

            GetFolders();
        }
        // Save the data in Firebase Database.
        void SaveNote()
        {
            ReplaceImagesWithinTextWithImagesIds();

            // Create data to be saved in FIrebase Database.
            var title        = txtTitle.Text.Trim();
            var content      = TxtContent.Text;
            var lastModified = AppDelegate.GetUtcTimestamp();
            var created      = Note.CreatedUnformatted ?? lastModified.ToString();

            title   = string.IsNullOrWhiteSpace(title) ? null : title;
            content = string.IsNullOrWhiteSpace(content) ? null : content;

            var imagesInfo = new NSMutableDictionary();

            foreach (var imageInfo in Note.ImagesInfo)
            {
                var location = NSNumber.FromNInt(imageInfo.Location);
                imagesInfo [imageInfo.Id] = NSDictionary.FromObjectAndKey(location, new NSString("location"));
            }

            object [] keys   = { "content", "created", "lastModified", "negativeLastModified", "title", "imagesInfo" };
            object [] values = { content, double.Parse(created), lastModified, -lastModified, title, imagesInfo };
            var       data   = NSDictionary.FromObjectsAndKeys(values, keys, keys.Length);

            // Save data in note node.
            noteNode.SetValue(data);
            // Increment notes count in folder.
            notesCountNode.SetValue(NSNumber.FromNUInt(NotesCount));
        }
        // Save the data in Firebase Database
        void SaveNote()
        {
            // Create data to be saved in FIrebase Database
            var title        = txtTitle.Text.Trim();
            var content      = TxtContent.Text.Trim();
            var lastModified = AppDelegate.GetUtcTimestamp();
            var created      = Note.CreatedUnformatted ?? lastModified.ToString();

            title   = string.IsNullOrWhiteSpace(title) ? null : title;
            content = string.IsNullOrWhiteSpace(content) ? null : content;

            object [] keys   = { "content", "created", "lastModified", "negativeLastModified", "title" };
            object [] values = { content, double.Parse(created), lastModified, -lastModified, title };
            var       data   = NSDictionary.FromObjectsAndKeys(values, keys, keys.Length);

            // Keep data offline
            noteNode.KeepSynced(true);
            // Save data in note node
            noteNode.SetValue(data);
            // Increment notes count in folder
            notesCountNode.SetValue(NSNumber.FromNUInt(NotesCount));
            // Modify the last modified date to make this folder the first position in Table View
            folderLastModifiedNode.SetValue(NSNumber.FromDouble(lastModified));
            folderNegativeLastModifiedNode.SetValue(NSNumber.FromDouble(-lastModified));
        }
        // Erase all data from a note node and from Storage.
        void DeleteNote()
        {
            noteNode.RemoveValue();
            notesCountNode.SetValue(NSNumber.FromNUInt(--NotesCount));

            foreach (var imageInfo in Note.ImagesInfo)
            {
                storageImagesNode.GetChild(imageInfo.Id).Delete((error) => { });
            }
        }
Пример #5
0
        public Request SetActiveTrackIds(nuint [] activeTrackIds)
        {
            NSArray activeTrackIdsArray = null;

            if (activeTrackIds != null)
            {
                activeTrackIdsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), activeTrackIds);
            }

            return(_SetActiveTrackIds(activeTrackIdsArray));
        }
Пример #6
0
        public Request QueueRemoveItems(nuint [] itemIds, NSObject customData)
        {
            if (itemIds == null)
            {
                throw new ArgumentNullException(nameof(itemIds));
            }

            NSArray itemIdsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), itemIds);

            return(_QueueRemoveItems(itemIdsArray, customData));
        }
Пример #7
0
        public MediaQueueItem(MediaInformation mediaInformation, bool autoplay, double startTime, double playbackDuration, double preloadTime, nuint [] activeTrackIds, NSObject customData) : base(NSObjectFlag.Empty)
        {
            if (mediaInformation == null)
            {
                throw new ArgumentNullException(nameof(mediaInformation));
            }

            var activeTracksIdsObjC = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), activeTrackIds);

            Handle = _InitWithMediaInformation(mediaInformation, autoplay, startTime, playbackDuration, preloadTime, activeTracksIdsObjC, customData);
        }
Пример #8
0
        public Request QueueReorderItems(nuint [] queueItemIds, nuint beforeItemId, NSObject customData)
        {
            if (queueItemIds == null)
            {
                throw new ArgumentNullException(nameof(queueItemIds));
            }

            NSArray queueItemIdsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), queueItemIds);

            return(_QueueReorderItems(queueItemIdsArray, beforeItemId, customData));
        }
        public nint QueueReorderItems(nuint [] queueItemIDs, nuint beforeItemID)
        {
            if (queueItemIDs == null)
            {
                throw new ArgumentNullException(nameof(queueItemIDs));
            }

            var queueItemIDsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), queueItemIDs);

            return(_QueueReorderItems(queueItemIDsArray, beforeItemID));
        }
        public nint QueueRemoveItems(nuint [] itemIDs, NSObject customData)
        {
            if (itemIDs == null)
            {
                throw new ArgumentNullException(nameof(itemIDs));
            }

            var arr = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), itemIDs);

            return(_QueueRemoveItems(arr, customData));
        }
        public nint SetActiveTrackIDs(nuint [] activeTrackIDs)
        {
            NSArray activeTrackIDsArray = null;

            for (int i = 0; i < activeTrackIDs.Length; i++)
            {
                activeTrackIDsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), activeTrackIDs);
            }

            return(_SetActiveTrackIDs(activeTrackIDsArray));
        }
        public nint LoadMedia(MediaInformation mediaInfo, bool autoplay, double playPosition, nuint [] activeTrackIDs, NSObject customData)
        {
            NSArray activeTrackIDsArray = null;

            if (activeTrackIDs != null)
            {
                activeTrackIDsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), activeTrackIDs);
            }

            return(_LoadMedia(mediaInfo, autoplay, playPosition, activeTrackIDsArray, customData));
        }
Пример #13
0
        public bool AddInput(nuint [] input, out NSError error)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            var nsInput = NSArray.FromNSObjects((i) => NSNumber.FromNUInt(i), input);

            return(_AddInput(nsInput, out error));
        }
Пример #14
0
        public static void NotifyDidRemoveQueueItems(this RemoteMediaClient instance, nuint [] itemIds)
        {
            if (itemIds == null)
            {
                throw new ArgumentNullException(nameof(itemIds));
            }

            NSArray itemIdsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), itemIds);

            _NotifyDidRemoveQueueItems(instance, itemIdsArray);
        }
Пример #15
0
        public bool SetInputFormat(nuint index, ModelElementType type, nuint [] dimensions, out NSError error)
        {
            if (dimensions == null)
            {
                throw new ArgumentNullException(nameof(dimensions));
            }

            var nsDimensions = NSArray.FromNSObjects((d) => NSNumber.FromNUInt(d), dimensions);

            return(_SetInputFormat(index, type, nsDimensions, out error));
        }
Пример #16
0
        public Request QueueFetchItems(nuint [] queueItemIds)
        {
            if (queueItemIds == null)
            {
                throw new ArgumentNullException(nameof(queueItemIds));
            }

            NSArray queueItemIdsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), queueItemIds);

            return(_QueueFetchItems(queueItemIdsArray));
        }
        // Erase all data from a note node and Storage
        void DeleteNote(Note note)
        {
            // Points to gs://MyDatabaseId.appspot.com/users/«userUid»/«noteUid»
            storageImagesNode = Storage.DefaultInstance.GetReferenceFromPath($"users/{AppDelegate.UserUid}/{note.Node}");

            foreach (var imageInfo in note.ImagesInfo)
            {
                storageImagesNode.GetChild(imageInfo.Id).Delete((error) => { });
            }

            notesNode.GetChild(note.Node).RemoveValue();
            notesCountNode.SetValue(NSNumber.FromNUInt(--notesCount));
            notes.Remove(note);
        }
Пример #18
0
        public Request LoadMedia(MediaInformation mediaInfo, bool autoplay, double playPosition, nuint [] activeTrackIds, NSObject customData)
        {
            if (mediaInfo == null)
            {
                throw new ArgumentNullException(nameof(mediaInfo));
            }

            NSArray activeTrackIdsArray = null;

            if (activeTrackIds != null)
            {
                activeTrackIdsArray = NSArray.FromNSObjects((arg) => NSNumber.FromNUInt(arg), activeTrackIds);
            }

            return(_LoadMedia(mediaInfo, autoplay, playPosition, activeTrackIdsArray, customData));
        }
 // Erase all data from a note node
 void DeleteNote()
 {
     noteNode.RemoveValue();
     notesCountNode.SetValue(NSNumber.FromNUInt(--NotesCount));
 }
 // Erase all data from a note node
 void DeleteNote(Note note)
 {
     notesNode.GetChild(note.Node).RemoveValue();
     notesCountNode.SetValue(NSNumber.FromNUInt(--notesCount));
     notes.Remove(note);
 }
 // Erase all data from a folder node
 void DeleteFolder(Folder folder)
 {
     foldersNode.GetChild(folder.Node).RemoveValue();
     foldersCountNode.SetValue(NSNumber.FromNUInt(--foldersCount));
     folders.Remove(folder);
 }