public void Serialize_ObjectToSerializeParameterIsNull_ArgumentNullExceptionIsThrown() { // Arrange var jsonObjectSerializer = new JSONObjectSerializer<PublishConfiguration>(); PublishConfiguration publishConfiguration = null; // Act jsonObjectSerializer.Serialize(publishConfiguration); }
public void Deserialize_SerializedObjectParameterIsNull_ArgumentNullExceptionIsThrown() { // Arrange var jsonObjectSerializer = new JSONObjectSerializer<PublishConfiguration>(); string serializedObject = null; // Act jsonObjectSerializer.Deserialize(serializedObject); }
private async void RNAdapter_ReceivedNotification1(NotificationInfoForRequesting args) { JSONObjectSerializer <string> serializer = new JSONObjectSerializer <string>(); var content = serializer.BytesToObject(args.NotificationPreviewContent); await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { Messages.Add(new PreviewModel { Content = content, NotificationAccessKey = args.NotificationAccessKey, NotificationId = args.NotificationId }); NoNotificationVisibility = _Messages.Count > 0 ? Visibility.Collapsed : Visibility.Visible; }); }
private async Task InitializeMessages() { JSONObjectSerializer <string> serializer = new JSONObjectSerializer <string>(); IEnumerable <NotificationInfoForRequesting> previewRawdatas = await RawNotification.DotNetCoreBL.RNAdapter.GetAllPreviewData(); List <PreviewModel> previewData = new List <PreviewModel>(previewRawdatas.Count()); foreach (var item in previewRawdatas) { previewData.Add(new PreviewModel { Content = serializer.BytesToObject(item.NotificationPreviewContent), NotificationId = item.NotificationId, NotificationAccessKey = item.NotificationAccessKey }); } Messages = new ObservableCollection <PreviewModel>(previewData); NoNotificationVisibility = _Messages.Count > 0 ? Visibility.Collapsed : Visibility.Visible; }
public void Deserialize_PublishConfiguration_SerializedObjectIsValidJson_ResultIsNotNull() { // Arrange var jsonObjectSerializer = new JSONObjectSerializer<PublishConfiguration>(); var name = Guid.NewGuid().ToString(); var location = Guid.NewGuid().ToString(); var apiKey = Guid.NewGuid().ToString(); string serializedObject = string.Format("{{ Name: \"{0}\", PublishLocation: \"{1}\", ApiKey: \"{2}\" }}", name, location, apiKey); // Act var result = jsonObjectSerializer.Deserialize(serializedObject); // Assert Assert.IsNotNull(result); }
public void Serialize_PublishConfiguration_JsonContainsAllProperties() { // Arrange var jsonObjectSerializer = new JSONObjectSerializer<PublishConfiguration>(); var name = Guid.NewGuid().ToString(); var location = Guid.NewGuid().ToString(); var apiKey = Guid.NewGuid().ToString(); var publishConfiguration = new PublishConfiguration { Name = name, PublishLocation = location, ApiKey = apiKey }; // Act var result = jsonObjectSerializer.Serialize(publishConfiguration); // Assert Assert.IsTrue(result.Contains(name)); Assert.IsTrue(result.Contains(location)); Assert.IsTrue(result.Contains(apiKey)); }
public void Deserialize_PublishConfiguration_SerializedObjectIsValidJson_ResultContainsCorrectProperties() { // Arrange var jsonObjectSerializer = new JSONObjectSerializer<PublishConfiguration>(); var name = Guid.NewGuid().ToString(); var location = Guid.NewGuid().ToString(); var apiKey = Guid.NewGuid().ToString(); string serializedObject = string.Format("{{ Name: \"{0}\", PublishLocation: \"{1}\", ApiKey: \"{2}\" }}", name, location, apiKey); // Act var result = jsonObjectSerializer.Deserialize(serializedObject); // Assert Assert.AreEqual(name, result.Name); Assert.AreEqual(location, result.PublishLocation); Assert.AreEqual(apiKey, result.ApiKey); }
public void Setup() { this.applicationInformation = ApplicationInformationProvider.GetApplicationInformation(); IEncodingProvider encodingProvider = new DefaultFileEncodingProvider(); IFilesystemAccessor filesystemAccessor = new PhysicalFilesystemAccessor(encodingProvider); IPackageServerFactory packageServerFactory = new PackageServerFactory(); IPublishConfigurationFactory publishConfigurationFactory = new PublishConfigurationFactory(); IObjectSerializer<PublishConfiguration[]> publishConfigurationSerializer = new JSONObjectSerializer<PublishConfiguration[]>(); IFilesystemPersistence<PublishConfiguration[]> publishConfigurationPersistence = new FilesystemPersistence<PublishConfiguration[]>(filesystemAccessor, publishConfigurationSerializer); this.publishConfigurationAccessor = new ConfigFilePublishConfigurationAccessor(this.applicationInformation, publishConfigurationFactory, publishConfigurationPersistence); this.publishingService = new PublishingService(filesystemAccessor, packageServerFactory, this.publishConfigurationAccessor); this.localPublishingFolder = Path.Combine(this.applicationInformation.StartupFolder, "publish-target"); this.samplePackageFilepath = Path.Combine(this.applicationInformation.StartupFolder, "IntegrationTests", "Publishing", SamplePackageFilename); }
public void Setup() { var applicationInformation = ApplicationInformationProvider.GetApplicationInformation(); var encodingProvider = new DefaultFileEncodingProvider(); var fileSystemAccessor = new PhysicalFilesystemAccessor(encodingProvider); var objectSerializer = new JSONObjectSerializer<PackageInfo[]>(); IFilesystemPersistence<PackageInfo[]> packageInfoFilesystemPersistence = new FilesystemPersistence<PackageInfo[]>( fileSystemAccessor, objectSerializer); this.packageConfigurationAccessor = new PackageConfigurationAccessor(applicationInformation, packageInfoFilesystemPersistence); }
public void SendAllNotificationAsync() { Monitor.Enter(SendAllLock); var asyncresult = Task.Run <int>(async() => { _Logger.Info("Begin send notifications session"); try { // check for inernet connection if (!new InterNetworkConnectionChecker().IsInternetAvailable()) { _Logger.Info("Internet not available"); return(1); } // delete all read already notification DB.NotificationDA.RemoveAllReadNotification(); // lấy tất cả các thông báo cần gửi tới thiết bị var result = DB.NotificationDA.GetAllPendingDeviceNotificationInfo(); #region Gửi thông báo tới cho các thiết bị // Ta sử dụng một hàng đợi để thêm các task vào Queue <Task> TaskQueue = new Queue <Task>(); bool IsNetworkErrorOccurred = false; bool IsWNSOtherErorOccurred = false; List <PendingNotificationInfo> SuccessNotifiList = new List <PendingNotificationInfo>(100); List <PendingNotificationInfo> BadURINotifiList = new List <PendingNotificationInfo>(100); Dictionary <long, byte[]> RequestCache = new Dictionary <long, byte[]>(100); JSONObjectSerializer <NotificationInfoForRequesting> serializer = new JSONObjectSerializer <NotificationInfoForRequesting>(); foreach (var noti in result) { // với một thông báo cần gửi thì ta sẽ gửi nó bằng một task riêng biệt Task task = Task.Run(() => { byte[] sendData = null; lock (RequestCache) { try { sendData = RequestCache[noti.NotificationId]; } catch { sendData = serializer.ObjectToBytes(new NotificationInfoForRequesting { NotificationId = noti.NotificationId, NotificationAccessKey = noti.NotificationAccessKey, NotificationPreviewContent = noti.NotificationPreviewContent, ReiceiverNotificationID = noti.ReceiverNotificationId }); RequestCache.Add(noti.NotificationId, sendData); } } switch (noti.DeviceOSId) { case (int)EnumOperatingSystem.Windows: { if (IsNetworkErrorOccurred && IsWNSOtherErorOccurred) { return; } var sendResult = _WNSSender.SendNotificationData(noti.DeviceURI, sendData); switch (sendResult) { case EnumWNSSendResult.Success: { SuccessNotifiList.Add(noti); } break; case EnumWNSSendResult.BadURI: { BadURINotifiList.Add(noti); } break; case EnumWNSSendResult.NetWorkError: { // if an Internet Error Occurred, we can cancel all task in foreach loop // WNSSender will log this IsNetworkErrorOccurred = true; break; } case EnumWNSSendResult.OtherErrors: { // WNSSender will log this IsWNSOtherErorOccurred = true; } break; } break; } //TODO: thêm các xử lí cho các hệ điều hành khác ở đây } }); // add task to queue TaskQueue.Enqueue(task); } // Wait all tasks complete while (TaskQueue.Count > 0) { await TaskQueue.Dequeue(); } foreach (var item in BadURINotifiList) { DB.DeviceDA.DeleteDevice(item.DeviceId, item.ReceiverId); } foreach (var item in SuccessNotifiList) { DB.DeviceNotificationDA.DeleteDeviceNotification(item.DeviceNotificationId); } DB.ReceiverDA.DeleteAllReceiverHaveNoDevice(); DB.commit(); _Logger.Info("Send Done" + Environment.NewLine + "Total notifications: " + result.Count().ToString() + Environment.NewLine + "Bad URI: " + BadURINotifiList.Count.ToString() + Environment.NewLine + "Success: " + SuccessNotifiList.Count.ToString()); return(1); } catch (Exception ex) { _Logger.Error("An error occurred while sending notification", ex); throw; } finally { _Logger.Info("End send notifications session"); } }).Result; Monitor.Exit(SendAllLock); #endregion }
public void Setup() { var applicationInformation = ApplicationInformationProvider.GetApplicationInformation(); var encodingProvider = new DefaultFileEncodingProvider(); var sourceRepositoryConfigurationFactory = new SourceRepositoryConfigurationFactory(); var objectSerializer = new JSONObjectSerializer<SourceRepositoryConfiguration[]>(); var filesystemAccessor = new PhysicalFilesystemAccessor(encodingProvider); var filesystemPersistence = new FilesystemPersistence<SourceRepositoryConfiguration[]>(filesystemAccessor, objectSerializer); this.sourceRepositoryProvider = new ConfigFileSourceRepositoryProvider(applicationInformation, sourceRepositoryConfigurationFactory, filesystemPersistence); }