Example #1
0
        private Revision GetRevision(string alias, FileSystemInfo fileInfo = null, Stream packageStream = null)
        {
            var r = new Revision();

            r.Name = alias;
            if (fileInfo != null)
            {
                r.LastModified = fileInfo.LastWriteTime;
            }

            using (var archive = fileInfo == null ? Package.Open(packageStream) : Package.Open(fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                foreach (var packagePart in archive.GetParts().Where(e => e.Uri.ToString().TrimStart('/').StartsWith(Umbraco.Courier.Core.Settings.RevisionFolderName.Trim())))
                {
                    var path = Uri.UnescapeDataString(packagePart.Uri.ToString()).Replace("/", "\\").TrimStart('\\');
                    var item = new RevisionItem {
                        FilePath = path
                    };
                    var bytes = GetBytes(packagePart);

                    ItemIdentifier id   = null;
                    var            name = "";

                    Core.Serialization.Serializer.GetIdentifier(bytes, ref id, ref name);

                    item.Name         = name;
                    item.ItemId       = id;
                    item.FileContent  = bytes;
                    item.InternalFile = false;

                    r.RevisionCollection.Add(path, item);
                }

                foreach (var packagePart in archive.GetParts().Where(e => e.Uri.ToString().TrimStart('/').StartsWith(Umbraco.Courier.Core.Settings.ResourcesFolderName.Trim())))
                {
                    var path = Uri.UnescapeDataString(packagePart.Uri.ToString()).Replace("/", "\\").TrimStart('\\');
                    var item = new ResourceItem {
                        FilePath = path
                    };
                    item.FileContent = GetBytes(packagePart);
                    item.Name        = path;
                    r.ResourceCollection.Add(item.Name, item);
                }

                foreach (var packagePart in archive.GetParts().Where(e => e.Uri.ToString().TrimStart('/').StartsWith(Umbraco.Courier.Core.Settings.VirtualResourcesFolderName.Trim())))
                {
                    var path = Uri.UnescapeDataString(packagePart.Uri.ToString()).Replace("/", "\\").TrimStart('\\');
                    var item = new ResourceItem {
                        FilePath = path
                    };
                    item.FileContent = GetBytes(packagePart);
                    item.Virtual     = true;
                    item.Name        = path;
                    r.ResourceCollection.Add(item.Name, item);
                }
            }

            return(r);
        }
 private void RunSourceEnrichers(Revision wi, RevisionItem wid)
 {
     Log.LogDebug("TfsWorkItemEndPoint::RunSourceEnrichers::{SourceEnrichersCount}", SourceEnrichers.Count());
     foreach (IWorkItemEndpointSourceEnricher enricher in SourceEnrichers)
     {
         enricher.EnrichWorkItemData(this, wi, wid); // HELP:: is this Right
     }
 }
Example #3
0
 public void RevisionItem(XlfEventArgs args)
 {
     if (!args.IsEndElement)
     {
         object parent = stack.Peek();
         switch (parent)
         {
         case Revision r:
             RevisionItem ri = mapper.Map <RevisionItem>(args);
             r.Item = ri;
             break;
         }
     }
 }
 private void PopulateRevisions(WorkItem wi, WorkItemData wid)
 {
     wid.Revisions = new List <RevisionItem>();
     foreach (Revision revision in wi.Revisions)
     {
         RevisionItem revi = new RevisionItem
         {
             Number = revision.Index,
             Index  = revision.Index
         };
         RunSourceEnrichers(revision, revi);
         wid.Revisions.Add(revi);
     }
 }
 public abstract void EnrichWorkItemData(IEndpoint endpoint, object dataSource, RevisionItem dataTarget);
Example #6
0
        private void WorkItemTypeChange(WorkItemData targetWorkItem, bool skipToFinalRevisedWorkItemType, string finalDestType, RevisionItem revision, WorkItemData currentRevisionWorkItem, string destType)
        {
            //If the work item already exists and its type has changed, update its type. Done this way because there doesn't appear to be a way to do this through the store.
            if (!skipToFinalRevisedWorkItemType && targetWorkItem.Type != finalDestType)

            {
                Debug.WriteLine($"Work Item type change! '{targetWorkItem.Title}': From {targetWorkItem.Type} to {destType}");
                var typePatch = new JsonPatchOperation()
                {
                    Operation = Microsoft.VisualStudio.Services.WebApi.Patch.Operation.Add,
                    Path      = "/fields/System.WorkItemType",
                    Value     = destType
                };
                var datePatch = new JsonPatchOperation()
                {
                    Operation = Microsoft.VisualStudio.Services.WebApi.Patch.Operation.Add,
                    Path      = "/fields/System.ChangedDate",
                    Value     = currentRevisionWorkItem.ToWorkItem().Revisions[revision.Index].Fields["System.ChangedDate"].Value
                };

                var patchDoc = new JsonPatchDocument
                {
                    typePatch,
                    datePatch
                };
                _witClient.UpdateWorkItemAsync(patchDoc, int.Parse(targetWorkItem.Id), bypassRules: true).Wait();
            }
        }
Example #7
0
 /// <remarks/>
 public System.IAsyncResult BeginCommitRevisionitem(string revision, RevisionItem revisionItem, string username, string password, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("CommitRevisionitem", new object[] {
             revision,
             revisionItem,
             username,
             password}, callback, asyncState);
 }
Example #8
0
 /// <remarks/>
 public void CommitRevisionitemAsync(string revision, RevisionItem revisionItem, string username, string password, object userState)
 {
     if ((this.CommitRevisionitemOperationCompleted == null))
     {
         this.CommitRevisionitemOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCommitRevisionitemOperationCompleted);
     }
     this.InvokeAsync("CommitRevisionitem", new object[] {
             revision,
             revisionItem,
             username,
             password}, this.CommitRevisionitemOperationCompleted, userState);
 }
Example #9
0
 /// <remarks/>
 public void CommitRevisionitemAsync(string revision, RevisionItem revisionItem, string username, string password)
 {
     this.CommitRevisionitemAsync(revision, revisionItem, username, password, null);
 }
Example #10
0
 public string CommitRevisionitem(string revision, RevisionItem revisionItem, string username, string password)
 {
     object[] results = this.Invoke("CommitRevisionitem", new object[] {
             revision,
             revisionItem,
             username,
             password});
     return ((string)(results[0]));
 }
 public override void EnrichWorkItemData(IEndpoint endpoint, object dataSource, RevisionItem dataTarget)
 {
     throw new NotImplementedException();
 }
        private Revision GetRevision(string alias, FileSystemInfo fileInfo = null, Stream packageStream = null)
        {
            var r = new Revision();
            r.Name = alias;
            if (fileInfo != null)
                r.LastModified = fileInfo.LastWriteTime;

            using (var archive = fileInfo == null ? Package.Open(packageStream) : Package.Open(fileInfo.FullName, FileMode.Open, FileAccess.Read, FileShare.Read))
            {
                foreach (var packagePart in archive.GetParts().Where(e => e.Uri.ToString().TrimStart('/').StartsWith(Umbraco.Courier.Core.Settings.RevisionFolderName.Trim())))
                {
                    var path = Uri.UnescapeDataString(packagePart.Uri.ToString()).Replace("/","\\").TrimStart('\\');
                    var item = new RevisionItem { FilePath = path };
                    var bytes = GetBytes(packagePart);

                    ItemIdentifier id = null;
                    var name = "";

                    Core.Serialization.Serializer.GetIdentifier(bytes, ref id, ref name);

                    item.Name = name;
                    item.ItemId = id;
                    item.FileContent = bytes;
                    item.InternalFile = false;

                    r.RevisionCollection.Add(path, item);
                }

                foreach (var packagePart in archive.GetParts().Where(e => e.Uri.ToString().TrimStart('/').StartsWith(Umbraco.Courier.Core.Settings.ResourcesFolderName.Trim())))
                {
                    var path = Uri.UnescapeDataString(packagePart.Uri.ToString()).Replace("/", "\\").TrimStart('\\');
                    var item = new ResourceItem { FilePath = path };
                    item.FileContent = GetBytes(packagePart);
                    item.Name = path;
                    r.ResourceCollection.Add(item.Name, item);
                }

                foreach (var packagePart in archive.GetParts().Where(e => e.Uri.ToString().TrimStart('/').StartsWith(Umbraco.Courier.Core.Settings.VirtualResourcesFolderName.Trim())))
                {
                    var path = Uri.UnescapeDataString(packagePart.Uri.ToString()).Replace("/", "\\").TrimStart('\\');
                    var item = new ResourceItem { FilePath = path };
                    item.FileContent = GetBytes(packagePart);
                    item.Virtual = true;
                    item.Name = path;
                    r.ResourceCollection.Add(item.Name, item);
                }
            }

            return r;
        }