コード例 #1
0
        protected override async Task <Action <AsyncCodeActivityContext> > ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
        {
            // Object Container: Use objectContainer.Get<T>() to retrieve objects from the scope
            var objectContainer = context.GetFromContext <IObjectContainer>(BitbucketAPIScope.ParentContainerPropertyTag);
            var client          = objectContainer.Get <FluentClient>();

            // Inputs
            var repositoryLocation   = RepositoryLocation.Get(context);
            var fileToUpload         = FileToUpload.Get(context);
            var commitMessage        = CommitMessage.Get(context);
            var repositoryUUIDOrSlug = RepositoryUUIDOrSlug.Get(context);
            var workspaceUUIDOrSlug  = WorkspaceUUIDOrSlug.Get(context);
            var branchName           = BranchName.Get(context);

            // Validate whether Workspace UUID or Name provided (assume name will never be a GUID format)
            if (Validation.IsUUID(workspaceUUIDOrSlug))
            {
                HttpUtility.UrlEncode(workspaceUUIDOrSlug);
            }

            // Validate whether Repository UUID or Slug provided (assume slug will never be a GUID format)
            if (Validation.IsUUID(repositoryUUIDOrSlug))
            {
                HttpUtility.UrlEncode(repositoryUUIDOrSlug);
            }

            // Create standard request URI
            var uri = "repositories/" + workspaceUUIDOrSlug + "/" + repositoryUUIDOrSlug + "/src";

            // Initialise and populate multipart content
            var multipartContent = new MultipartFormDataContent();

            multipartContent.Add(new ByteArrayContent(File.ReadAllBytes(fileToUpload)), repositoryLocation, Path.GetFileName(fileToUpload));
            multipartContent.Add(new StringContent(commitMessage), "message");

            // Check if optional branch name parameter provided. Add to request if not null.
            if (branchName != null)
            {
                multipartContent.Add(new StringContent(branchName), "branch");
            }

            // Execution Logic
            var response         = new JObject();
            var exceptionHandler = new ApiExceptionHandler();

            try
            {
                response = await AsyncRequests.PostRequest_WithBody(client, uri, cancellationToken, multipartContent);
            }
            catch (ApiException ex) // Catches any API exception and returns the message
            {
                await exceptionHandler.ParseExceptionAsync(ex);
            }

            // Outputs - API response as JObject
            return((ctx) =>
            {
                JsonResult.Set(ctx, response);
            });
        }
コード例 #2
0
ファイル: MetadataCollection.cs プロジェクト: malain/candle
        /// <summary>
        /// Fusion avec un les metadatas existantes
        /// </summary>
        /// <param name="origin">Indique l'origine de la metadata à fusionner</param>
        /// <param name="metadata">Metadata à fusionner</param>
        public void Merge(RepositoryLocation origin, ComponentModelMetadata metadata)
        {
            Debug.Assert(_models != null);

            List <ComponentModelMetadata> list = new List <ComponentModelMetadata>();

            list.Add(metadata);
            Merge(origin, list);
        }
コード例 #3
0
        protected void btnSaveReport_Click(object sender, EventArgs e)
        {
            ReportView report = GetReport(ddlReportsOnPage.SelectedItem.Text);

            if (string.IsNullOrEmpty(txtBoxName.Text))
            {
                lblMessage.Text = "Report name cannot be blank.";
            }
            else
            {
                report.Name.Text = txtBoxName.Text;
                if (!string.IsNullOrEmpty(txtBoxDescription.Text))
                {
                    report.Description.Text = txtBoxDescription.Text;
                }
                if (!string.IsNullOrEmpty(txtBoxFolder.Text))
                {
                    report.Folder = txtBoxFolder.Text;
                }
                report.Owner.Login = Page.User.Identity.Name;

                // Clear the report location to save to the selected list.
                report.Location = RepositoryLocation.Empty();

                // Get the URL of the selected list.
                SPSite siteCollection = null;
                SPWeb  site           = null;
                try
                {
                    siteCollection = SPContext.Current.Site;
                    site           = siteCollection.OpenWeb(ddlPerfPointLists.SelectedValue);
                    SPList list    = site.GetList(siteCollection.Url + ddlPerfPointLists.SelectedValue);
                    string listUrl = list.DefaultViewUrl.Remove(list.DefaultViewUrl.LastIndexOf("/") + 1);
                    site.Dispose();
                    siteCollection.Dispose();

                    SaveAsFavorite(listUrl, report);
                }
                finally
                {
                    if (site != null)
                    {
                        site.Dispose();
                    }

                    if (siteCollection != null)
                    {
                        siteCollection.Dispose();
                    }
                }
            }
        }
コード例 #4
0
ファイル: test.cs プロジェクト: slluis/test-migrate
        public static async Task <RepoReference[]> DiscoverReferences(IOperationContext monitor, string url, string rev, Git.IGitRepositoryManager repositoryManager = null)
        {
            var repo = new SeriesRepo {
                Location       = RepositoryLocation.FromUrl(url),
                TargetRevision = rev
            };

            repo.BeginUpdate();
            try {
                var settings = new CheckSettings();
                settings.RepoContext = new RepoContext();
                if (repositoryManager != null)
                {
                    settings.GitRepositoryManager = repositoryManager;
                }
                repo.CalculateCurrentRevision(monitor, settings);
                await FillReferences(monitor, settings, repo, false);
            } finally {
                repo.EndUpdate();
            }
            return(repo.References.ToArray());
        }
コード例 #5
0
ファイル: MetadataCollection.cs プロジェクト: malain/candle
        /// <summary>
        /// Fusion entre les metadata locales et distantes
        /// </summary>
        /// <param name="origin">The origin.</param>
        /// <param name="list">Liste des metadata à fusionner avec celles existantes</param>
        public void Merge(RepositoryLocation origin, List <ComponentModelMetadata> list)
        {
            if (list == null)
            {
                return;
            }

            // Parcours des metadatas à fusionner
            foreach (ComponentModelMetadata item in list)
            {
                // Recherche parmi celle existante (on n'utilise pas la méthode FindWithPartialVersion car celle-ci appele
                // GetMetadata qui utilise Merge en interne). On se base sur la liste des modèles actuelles
                ComponentModelMetadata cmm =
                    _models.Find(
                        delegate(ComponentModelMetadata m) { return(m.Id == item.Id && item.Version.Equals(m.Version, 3)); }
                        );

                // Il n'existe pas dèja
                if (cmm == null)
                {
                    // On le rajoute
                    _models.Add(item);

                    // On met à jour les n° de version en partant du principe que un metadata
                    // à sa version serveur initialisé par défaut.
                    if (origin == RepositoryLocation.Server)
                    {
                        item.Location = RepositoryLocation.Server;
                        // On garde la version serveur et on indique qu'il n'y a rien en local
                        item.LocalVersion = -1; // Rien en local
                    }
                    else
                    {
                        // On est en local. On prend la version serveur initialisé pour mettre à jour la version locale
                        item.LocalVersion = item.ServerVersion;
                        // Et on indique qu'il n'y a rien sur le serveur
                        item.ServerVersion = -1;
                    }
                }
                else // Fusion
                {
                    // On met à jour un metadata qui vient du serveur
                    if (origin == RepositoryLocation.Server)
                    {
                        // Le référentiel ne retourne que des informations considérées comme locales
                        // donc on met à jour l'information serveur maintenant.
                        // Les infos du serveur priment
                        cmm.Path = item.Path;
                        cmm.Name = item.Name;
                        if (!String.IsNullOrEmpty(item.Description))
                        {
                            cmm.Description = item.Description;
                        }
                        cmm.ModelFileName = item.ModelFileName;
                        cmm.ServerUrl     = item.ServerUrl;
                        if (!String.IsNullOrEmpty(item.TestBaseAddress))
                        {
                            cmm.TestBaseAddress = item.TestBaseAddress;
                        }
                        if (!String.IsNullOrEmpty(item.DocUrl))
                        {
                            cmm.DocUrl = item.DocUrl;
                        }

                        cmm.ServerVersion = item.ServerVersion;
                    }
                    else // On est en local
                    {
                        cmm.ModelFileName = item.ModelFileName;
                        cmm.LocalVersion  = item.ServerVersion; // Initialisation de la version locale
                        cmm.Location      = RepositoryLocation.Local;
                    }
                }
            }
        }