Exemple #1
0
 public static void TrackAdding(this TelemetryClient telemetryClient, Transmission.Models.ProjectInfo project)
 {
     telemetryClient.TrackEvent(Names.PostingProjectInfo, new Dictionary <string, string>()
     {
         { PropertyKeys.ProjectName, project.ProjectName },
         { PropertyKeys.ProjectUri, project.ProjectUri },
         { PropertyKeys.OrganizationName, project.RepositoryInfo?.OrganizationName ?? "NULL" },
         { PropertyKeys.RepositoryName, project.RepositoryInfo?.RepositoryName ?? "NULL" }
     });
 }
Exemple #2
0
        public async Task <ProjectInfo> Upsert(Transmission.Models.ProjectInfo projectInfo)
        {
            ProjectInfo    mappedProject;
            RepositoryInfo mappedRepo;

            try
            {
                mappedRepo    = this.mapper.Map <RepositoryInfo>(projectInfo.RepositoryInfo);
                mappedProject = this.mapper.Map <ProjectInfo>(projectInfo);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("Mapping exception", ex);
            }


            try
            {
                RepositoryInfo repo = await this.database.UpsertUpdate(mappedRepo).ConfigureAwait(false);

                this.telemetryClient.TrackUpserted(repo);

                mappedProject.RepositoryId = repo.Id;
                ProjectInfo project;
                if (repo.RepositoryMode == RepositoryMode.Snapshot)
                {
                    project = await this.database.Create(mappedProject).ConfigureAwait(false);
                }
                else
                {
                    project = await this.database.Upsert(mappedProject).ConfigureAwait(false);
                }

                this.telemetryClient.TrackUpserted(project);
                return(project);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("Database write exception", ex);
            }
        }