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); }); }
/// <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); }
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(); } } } }
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()); }
/// <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; } } } }