예제 #1
0
        private DigipostClient GetClient()
        {
            if (_client != null)
            {
                return(_client);
            }

            const string senderId   = "779052"; //"106768801";
            var          thumbprint = "d6 5e 6c 4c 77 fc 0e 0d c5 f5 ac 32 bc 43 70 1f a8 b0 3d 21".ToUpper();
            var          config     = new ClientConfig(senderId)
            {
                ApiUrl = new Uri("https://api.digipost.no"),
                Logger = (severity, konversasjonsId, metode, melding) =>
                {
                    Debug.WriteLine("{0} - {1} [{2}]",
                                    DateTime.Now,
                                    melding,
                                    konversasjonsId.GetValueOrDefault()
                                    );
                }
            };

            //Logging.Initialize(config);
            return(_client = new DigipostClient(config, thumbprint));
        }
        public async void Send(DigipostClient digipostClient, RequestType requestType)
        {
            try
            {
                switch (requestType)
                {
                case RequestType.Message:
                    await digipostClient.SendMessageAsync(GetMessage()).ConfigureAwait(false);

                    break;

                case RequestType.Identify:
                    await digipostClient.IdentifyAsync(GetIdentification()).ConfigureAwait(false);

                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(requestType), requestType, null);
                }

                Interlocked.Increment(ref _successfulCalls);
            }
            catch (Exception e)
            {
                Interlocked.Increment(ref _failedCalls);
                Console.WriteLine("Request failed. Are you connected to VPN? Reason{0}. Inner: {1}", e.Message,
                                  e.InnerException.Message);
                Console.WriteLine(e.InnerException.InnerException);
            }

            Console.Write(".");
        }
예제 #3
0
        public void Syncronize(String username, String password, String path)
        {
            var cookies = DigipostLogin.Login(username, password);
            var cache = path + @"\" + "cache.json";
            if (!(new FileInfo(cache).Exists)) {
                File.WriteAllText(cache, "[]");
            }
            var dpClient = new DigipostClient(cookies);
            var remoteFiles = new DigipostReader(dpClient, cache).Read();
            var localFiles = new FolderReader(path).Read();
            var filesToDownload = remoteFiles.Where(f => !localFiles.Any(l => l.FileDescriptor == f.FileDescriptor));
            var filesToUpload = localFiles.Where(f => !remoteFiles.Any(l => l.FileDescriptor == f.FileDescriptor));

            foreach(var f in filesToDownload) {
                String filename;
                var data = dpClient.DownloadFile(new Uri(f.Uri), out filename);
                File.WriteAllBytes(path + @"\" + filename.Replace("\"", ""), data);
                if (FileDownloaded != null)
                {
                    FileDownloaded.Invoke(f.Uri, filename);
                }
            }
            foreach (var f in filesToUpload)
            {
                Uri uri = new Uri("https://www.digipost.no/post/privat/dokument");
                dpClient.UploadFile(uri, f);
                if (FileUploaded != null)
                {
                    FileUploaded.Invoke(f.Path.FullName);
                }
            }
        }
예제 #4
0
        public void ClientConfigurationWithThumbprint()
        {
            // The actual sender of the message. The broker is the owner of the organization certificate
            // used in the library. The broker id can be retrieved from your Digipost organization account.
            var broker = new Broker(12345);

            var clientConfig = new ClientConfig(broker, Environment.Production);
            var client       = new DigipostClient(clientConfig, thumbprint: "84e492a972b7e...");
        }
예제 #5
0
        public void LoadCertificateFrom()
        {
            var clientConfig        = new ClientConfig(broker, Environment.Production);
            var businessCertificate =
                new X509Certificate2(
                    @"C:\Path\To\Certificate\Cert.p12",
                    "secretPasswordProperlyInstalledAndLoaded",
                    X509KeyStorageFlags.Exportable
                    );

            var client = new DigipostClient(clientConfig, businessCertificate);
        }
        internal InboxSmokeTestsHelper(TestSender testSender)
        {
            _testSender = testSender;
            var broker = new Broker(testSender.Id);

            var serviceProvider = LoggingUtility.CreateServiceProviderAndSetUpLogging();

            _client = new DigipostClient(
                new ClientConfig(broker, testSender.Environment),
                testSender.Certificate,
                serviceProvider.GetService <ILoggerFactory>()
                );
        }
        public ClientSmokeTestHelper(TestSender testSender, bool withoutDataTypesProject = false)
        {
            var broker = new Broker(testSender.Id);

            _testSender = testSender;

            var serviceProvider = LoggingUtility.CreateServiceProviderAndSetUpLogging();

            _digipostClient = new DigipostClient(new ClientConfig(broker, testSender.Environment)
            {
                TimeoutMilliseconds = 900000000, LogRequestAndResponse = true, SkipMetaDataValidation = withoutDataTypesProject
            }, testSender.Certificate, serviceProvider.GetService <ILoggerFactory>());
        }
예제 #8
0
        public void ClientConfigurationWithCertificate()
        {
            // The actual sender of the message. The broker is the owner of the organization certificate
            // used in the library. The broker id can be retrieved from your Digipost organization account.
            var broker = new Broker(12345);

            // The sender is what the receiver of the message sees as the sender of the message.
            // Sender and broker id will both be your organization's id if you are sending on behalf of yourself.
            var sender = new Sender(67890);

            var clientConfig = new ClientConfig(broker, Environment.Production);

            var client = new DigipostClient(clientConfig, CertificateReader.ReadCertificate());
        }
예제 #9
0
        public void SendLetterThroughNorskHelsenett()
        {
            // API URL is different when request is sent from NHN
            var config = new ClientConfig(new Broker(12345), Environment.NorskHelsenett);
            var client = new DigipostClient(config, thumbprint: "84e492a972b7e...");

            var message = new Message(
                sender,
                new RecipientById(IdentificationType.PersonalIdentificationNumber, "311084xxxx"),
                new Document(subject: "Attachment", fileType: "txt", path: @"c:\...\document.txt")
                );

            var result = client.SendMessage(message);
        }
        private DigipostClient InitClient()
        {
            
            var config = new ClientConfig(_senderId, _url, _timeout, false)
            {
                Logger = (severity, traceId, metode, message) =>
                {
                     Log.Debug(string.Format("severity:{0} traceId:{1} metode:{2} message:{3}", severity, traceId, metode, message));
                }
            };
            _digipostClient = new DigipostClient(config, _thumbprint);

            return _digipostClient;
        }
예제 #11
0
        private static DigipostClient InitClient()
        {
            const string thumbprint = "d6 5e 6c 4c 77 fc 0e 0d c5 f5 ac 32 bc 43 70 1f a8 b0 3d 21";
            const string senderId = "779052";
            const string url = "https://api.digipost.no";

            var config = new ClientConfig(senderId, url, 10000, false)
            {
                Logger = Logging.Log()

            };

            digipostClient = new DigipostClient(config, thumbprint);

            return digipostClient;
        }
        private DigipostClient GetClient()
        {
            if (_client != null)
                return _client;

            const string senderId = "779052"; //"106768801";
            var thumbprint = "d6 5e 6c 4c 77 fc 0e 0d c5 f5 ac 32 bc 43 70 1f a8 b0 3d 21".ToUpper();
            var config = new ClientConfig(senderId)
            {
                ApiUrl = new Uri("https://api.digipost.no"),
                Logger = (severity, konversasjonsId, metode, melding) =>
                {
                    Debug.WriteLine("{0} - {1} [{2}]",
                        DateTime.Now,
                        melding,
                        konversasjonsId.GetValueOrDefault()
                    );
                }
            };

            //Logging.Initialize(config);
            return _client = new DigipostClient(config, thumbprint);
        }
예제 #13
0
 public DigipostReader(DigipostClient digipostClient, String settingsFile)
 {
     _digipostClient = digipostClient;
     _settingsFile = settingsFile;
 }
예제 #14
0
 public void LoadCertificateFromThumbprint()
 {
     var clientConfig = new ClientConfig(broker, Environment.Production);
     var client       = new DigipostClient(clientConfig, thumbprint: "84e492a972b7e...");
 }
        private static DigipostClient InitClient()
        {

            var config = new ClientConfig(Settings.Default.senderid, Settings.Default.url, Settings.Default.timeout, false)
            {
                Logger = (severity, traceId, metode, message) =>
                {
                    Logger.Debug(string.Format("[{0}]:[{1}]:[{2}]", traceId, metode, message));
                }
            };


            _digipostClient = new DigipostClient(config, Settings.Default.thumbprint);

            return _digipostClient;
        }
예제 #16
0
 public static FileDescriptor FromUri(Uri uri, DigipostClient client)
 {
     String filename;
     var data = client.DownloadFile(uri, out filename);
     return new FileDescriptor(data, filename);
 }