예제 #1
0
        public static async Task <long[]> UploadChange(string changeFile, string description)
        {
            var change = FileSerializer.ReadXml <OsmChange>(changeFile);

            Log.LogInformation("Uploading change to OSM");
            var changeTags = GetCommitTags(description);

            changeTags.RemoveKey("municipality");
            var osmApiClient = new BasicAuthClient(Static.HttpClient,
                                                   Static.LogFactory.CreateLogger <BasicAuthClient>(), Static.Config["OsmApiUrl"],
                                                   Static.Config["OsmUsername"], Static.Config["OsmPassword"]);
            var changeParts = change.SplitByCount().ToArray();
            var result      = new long[changeParts.Length];
            int i           = 0;

            foreach (var part in changeParts)
            {
                if (changeParts.Length > 1)
                {
                    changeTags.AddOrReplace("change-part", $"part {i + 1} of {changeParts.Length}");
                }
                result[i] = await UploadChangePart(part, changeTags, osmApiClient, $"{description}/Uploaded/");

                i++;
            }

            return(result);
        }
예제 #2
0
        public static async Task <long> CreateNote(double lat, double lon, string message)
        {
            var client = new BasicAuthClient(Static.HttpClient,
                                             Static.LogFactory.CreateLogger <BasicAuthClient>(), Static.Config["OsmApiUrl"],
                                             Static.Config["OsmUsername"], Static.Config["OsmPassword"]);
            var note = await client.CreateNote((float)lat, (float)lon, message);             // remove cast after next osmApiClient version is released

            return(note.Id.Value);
        }
예제 #3
0
        private static void BasicAuthParallelGet(string url, int ntimes, string user, string pwd, int fail, int maxdop)
        {
            Console.WriteLine($"Running {url} {ntimes} times! Max Failures Allowed: {fail} Max DOP: {maxdop}");
            var client = new BasicAuthClient();
            var sw     = new Stopwatch();

            sw.Start();
            client.ParallelGet(url, user, pwd, ntimes, fail, maxdop); // Pass logic to implementation
            sw.Stop();
            Console.WriteLine("Total ms run time {0}", sw.ElapsedMilliseconds);
        }
예제 #4
0
        private static async Task <long> UploadChangePart(this OsmChange part,
                                                          TagsCollection tags, BasicAuthClient client, string pathForFiles)
        {
            var changeSetId = await client.CreateChangeset(tags);

            Log.LogDebug($"Creating ChangeSet {changeSetId}");
            FileSerializer.WriteXml(Path.Combine(pathForFiles, $"{changeSetId}-Conflated.osc"), part);
            var diffResult = await client.UploadChangeset(changeSetId, part);

            FileSerializer.WriteXml(Path.Combine(pathForFiles, $"{changeSetId}-DiffResult.diff"), diffResult);
            await client.CloseChangeset(changeSetId);

            Log.LogDebug($"Closing ChangeSet {changeSetId}");
            return(changeSetId);
        }
예제 #5
0
        // Get and initialize a basic auth client
        private OslcClient2 getBasicAuthClient(FriendInfo friend)
        {
            BasicAuthClient basicClient = null;
            String          exMessage   = "";

            try
            {
                JazzRootServicesHelper2 helper = new JazzRootServicesHelper2(
                    HandlerSettings.ClientUri,
                    HandlerSettings.RootservicesUri);

                // Specific code - logging in
                basicClient = new BasicAuthClient(friend.EncodedCredentials);
                HttpClient client = basicClient.GetHttpClient();

                // Get the Creation Factory for mhweb
                String user = friend.GetBasicAuthUser();
                String serviceProviderUrl = basicClient.LookupServiceProviderUrl(
                    helper.GetCatalogUrl(), "mhweb", HandlerSettings.getRESTHeaders(user));
                HandlerSettings.CreationFactoryUri = basicClient.LookupCreationFactory(
                    serviceProviderUrl,
                    Constants.ENTERPRISE_CHANGE_MANAGEMENT_DOMAIN,
                    Constants.TYPE_ENTERPRISE_CHANGE_REQUEST,
                    HandlerSettings.getRESTHeaders(user));
            }
            catch (Exception ex)
            {
                basicClient = null;
                exMessage   = ex.Message;
            }

            if (basicClient == null || exMessage.Length > 0)
            {
                HandlerSettings.LogMessage(
                    String.Format(
                        "Failed to get a httpClient for basic auth." +
                        "\nUsing client uri: {0}" +
                        "\nUsing rootservices uri: {1}" +
                        "\nMessage: {2}",
                        HandlerSettings.ClientUri,
                        HandlerSettings.RootservicesUri,
                        exMessage),
                    HandlerSettings.LoggingLevel.ERROR);
            }

            return(basicClient);
        }
예제 #6
0
        public static async Task <long[]> UploadChange(OsmChange change, TagsCollection changeTags, string pathForFiles)
        {
            Log.LogInformation("Uploading change to OSM");
            var osmApiClient = new BasicAuthClient(Static.HttpClient,
                                                   Static.LogFactory.CreateLogger <BasicAuthClient>(), Static.Config["OsmApiUrl"],
                                                   Static.Config["OsmUsername"], Static.Config["OsmPassword"]);
            var changeParts = change.SplitByCount().ToArray();
            var result      = new long[changeParts.Length];
            int i           = 0;

            foreach (var part in changeParts)
            {
                if (changeParts.Length > 1)
                {
                    changeTags.AddOrReplace("change-part", $"part {i + 1} of {changeParts.Length}");
                }
                result[i] = await UploadChangePart(part, changeTags, osmApiClient, pathForFiles);

                i++;
            }

            return(result);
        }