Example #1
0
 protected SharePointCommand(SharePointClientBase sharePointClient, SharePointItemTracking itemTracking, bool stackFirst = false)
 {
     Id                     = Guid.NewGuid();
     StackFirst             = stackFirst;
     SharePointClient       = sharePointClient;
     SharePointItemTracking = itemTracking;
 }
        public void SharePointExtensions_ConfigureReferences_ConfiguresAggregatingFromOriginalFields()
        {
            // Arrange
            var aggregatingListItem = new SharePointAggregatingListItem
            {
                Id         = 1,
                TitleField = "Aggregating Item"
            };
            var listItem = new SharePointListItem
            {
                TitleField  = "List Item",
                LookupField = aggregatingListItem
            };

            var tracking                    = new SharePointListItemTracking();
            var itemListTracking            = new SharePointItemTracking(null);
            var aggregatingListItemTracking = new SharePointItemTracking(null);

            itemListTracking.LoadOriginalItem(listItem);
            aggregatingListItemTracking.LoadOriginalItem(aggregatingListItem);

            tracking.Add(itemListTracking);
            tracking.Add(aggregatingListItemTracking);

            // Act
            itemListTracking.OriginalFields["LookupField"].Should().BeNull();
            itemListTracking.ConfigureReferences(tracking, true);

            // Assert
            itemListTracking.OriginalFields["LookupField"].Should().Be(aggregatingListItem.Id);
        }
        public override async Task ExecuteAsync()
        {
            var id = await SharePointClient.AddItemAsync <TSharePointItem>(
                SharePointItemTracking.ConfigureReferences(SharePointClient.Tracking));

            SharePointItemTracking.Id = id;
        }
        public override async Task PrepareAsync()
        {
            await SharePointItemTracking.ConfigureUserFieldsAsync(SharePointClient);

            var item = await SharePointClient.GetAllFieldsByIdAsync<TSharePointFile>(SharePointItemTracking.Id);
            SharePointItemTracking.LoadOriginalItem(item.Key, item.Value);
        }
        public override async Task UndoAsync()
        {
            var sharePointFile = (ISharePointFile)SharePointItemTracking.OriginalItem;

            await SharePointClient.AddFileAsync<TSharePointFile>(
                SharePointItemTracking.ConfigureReferences(SharePointClient.Tracking, true),
                sharePointFile.FileName, sharePointFile.Folder, sharePointFile.InputStream, true);
        }
        public override async Task ExecuteAsync()
        {
            try
            {
                var sharePointFile = (ISharePointFile)SharePointItemTracking.Item;

                var fileInfo = await SharePointClient.AddFileAsync <TSharePointFile>(
                    SharePointItemTracking.ConfigureReferences(SharePointClient.Tracking),
                    sharePointFile.FileName, sharePointFile.Folder, sharePointFile.InputStream, false);

                SharePointItemTracking.Id = fileInfo.Id;
                _createdFolders           = fileInfo.CreatedFolders;
            }
            catch (SharePointException ex)
            {
                var data = ex.SharePointData as ValueTuple <int, List <string> >?;
                _createdFolders           = data?.Item2;
                SharePointItemTracking.Id = data?.Item1 ?? 0;

                throw ex;
            }
        }
Example #7
0
 public SharePointUpdateItemCommand(SharePointClientBase sharePointClient, SharePointItemTracking itemTracking)
     : base(sharePointClient, itemTracking)
 {
 }
 public override async Task PrepareAsync() => await SharePointItemTracking.ConfigureUserFieldsAsync(SharePointClient);
 public SharePointAddFileCommand(SharePointClientBase sharePointClient, SharePointItemTracking itemTracking)
     : base(sharePointClient, itemTracking, true)
 {
 }
Example #10
0
 public SharePointDeleteFileCommand(SharePointClientBase sharePointClient, SharePointItemTracking itemTracking)
     : base(sharePointClient, itemTracking)
 {
 }
        public override async Task PrepareAsync()
        {
            var item = await SharePointClient.GetAllFieldsByIdAsync <TSharePointItem>(SharePointItemTracking.Id);

            SharePointItemTracking.LoadOriginalItem(item.Key, item.Value);
        }