Inheritance: MobileServiceFileOperation
 private bool IsOperationValid(CreateMobileServiceFileOperation operation)
 {
     return operation.FileId == this.inputFile.Id &&
         operation.Kind == FileOperationKind.Create &&
         operation.State == FileOperationState.Pending;
 }
        public async Task AddFileAsync(MobileServiceFile file)
        {
            var metadata = new MobileServiceFileMetadata
            {
                FileId = file.Id,
                FileName = file.Name,
                Length = file.Length,
                Location = FileLocation.Local,
                ContentMD5 = file.ContentMD5,
                ParentDataItemType = file.TableName,
                ParentDataItemId = file.ParentId,
                LastModified = DateTimeOffset.Now
            };

            await metadataStore.CreateOrUpdateAsync(metadata);

            var operation = new CreateMobileServiceFileOperation(Guid.NewGuid().ToString(), file.Id);

            await QueueOperationAsync(operation);

            NotifyFileOperationCompletion(file, FileOperationKind.Create, FileOperationSource.Local);
        }