public async Task <IMobileServiceFileOperation> GetOperationByFileIdAsync(string fileId)
        {
            var query = new MobileServiceTableQueryDescription(FileOperationTableName);

            query.Filter = new BinaryOperatorNode(BinaryOperatorKind.Equal, new MemberAccessNode(null, "fileId"), new ConstantNode(fileId));
            query.Top    = 1;

            JToken result = await this.store.ReadAsync(query);

            FileOperationItem operationItem = result.ToObject <List <FileOperationItem> >().FirstOrDefault();

            return(operationItem != null?operationItem.ToOperation() : null);
        }
        private async Task <IMobileServiceFileOperation> GetNextOperationItemAsync(bool deleteItem)
        {
            var query = new MobileServiceTableQueryDescription(FileOperationTableName);

            query.Ordering.Add(new OrderByNode(new MemberAccessNode(null, "sequence"), OrderByDirection.Ascending));
            query.Top = 1;

            JToken result = await this.store.ReadAsync(query);

            FileOperationItem operationItem = result.ToObject <List <FileOperationItem> >().FirstOrDefault();

            if (deleteItem)
            {
                await Delete(query);
            }

            return(operationItem != null?operationItem.ToOperation() : null);
        }