public async Task UpdateJobStatus_ApiResponseSuccess_Runs()
        {
            //Arrange
            IJobsApiClient jobsApiClient             = Substitute.For <IJobsApiClient>();
            JobManagementResiliencePolicies policies = new JobManagementResiliencePolicies
            {
                JobsApiClient = Policy.NoOpAsync()
            };
            IMessengerService messengerService = Substitute.For <IMessengerService>();
            ILogger           logger           = Substitute.For <ILogger>();

            ApiResponse <JobLog> jobLogApiResponse = new ApiResponse <JobLog>(HttpStatusCode.OK, new JobLog());

            jobsApiClient
            .AddJobLog(Arg.Any <string>(), Arg.Any <JobLogUpdateModel>())
            .Returns(jobLogApiResponse);

            JobLogUpdateModel updateModel = new JobLogUpdateModel();

            JobManagement jobManagement = new JobManagement(jobsApiClient, logger, policies, messengerService);

            string jobId = "3456";

            //Act
            await jobManagement.UpdateJobStatus(jobId, updateModel);

            //Assert
            await jobsApiClient
            .Received(1)
            .AddJobLog(jobId, updateModel);

            logger
            .Received(0)
            .Write(Arg.Any <LogEventLevel>(), Arg.Any <string>());
        }
 public void Setup()
 {
     _dialogServiceMock    = Substitute.For <IDialogService>();
     _messengerServiceMock = Substitute.For <IMessengerService>();
     _rentalServiceMock    = Substitute.For <IRentalService>();
     _timerFactoryMock     = Substitute.For <ITimerFactory>();
 }
        public MessengerController()
        {
            var settings = ConfigurationManager.ConnectionStrings["DefaultConnection"];
            var connectionString = settings.ConnectionString;

            _messengerService = new MessengerService(connectionString, new TraceLogger(false));
        }
Пример #4
0
        /// <summary>
        ///     Constructor.
        /// </summary>
        ///
        /// <exception cref="ArgumentNullException">    Thrown when one or more required arguments are null. </exception>
        ///
        /// <param name="messengerService">     The messenger service. This cannot be null. </param>
        /// <param name="localisationService">  The localisation service. This cannot be null. </param>
        /// <param name="traceService">         The trace service. This cannot be null. </param>
        /// <param name="logger">               The logger. This cannot be null. </param>
        /// <param name="messageFactory">       The message factory. This cannot be null. </param>
        /// <param name="dateTimeService">      The date time service. This cannot be null. </param>
        public LoggingServiceSingleton(
            [NotNull] IMessengerService messengerService,
            [NotNull] ILocalisationService localisationService,
            [NotNull] ITraceService traceService,
            [NotNull] ILogger logger,
            [NotNull] IMessageFactory messageFactory,
            [NotNull] IDateTimeService dateTimeService)
        {
            if (logger is null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            _messengerService    = messengerService ?? throw new ArgumentNullException(nameof(messengerService));
            _localisationService = localisationService ?? throw new ArgumentNullException(nameof(localisationService));
            _traceService        = traceService ?? throw new ArgumentNullException(nameof(traceService));
            _messageFactory      = messageFactory ?? throw new ArgumentNullException(nameof(messageFactory));
            _dateTimeService     = dateTimeService ?? throw new ArgumentNullException(nameof(dateTimeService));

            _logActionDictionary = new Dictionary <MessageLevelEnum, Action <string> >(6)
            {
                { MessageLevelEnum.Verbose, logger.Verbose },
                { MessageLevelEnum.Debug, logger.Debug },
                { MessageLevelEnum.Information, logger.Information },
                { MessageLevelEnum.Warning, logger.Warning },
                { MessageLevelEnum.Error, logger.Error },
                { MessageLevelEnum.Fatal, logger.Fatal }
            };
        }
        public async Task AddJobLog_Called_ReturnsJobLog()
        {
            string jobId = "5678";

            IJobsApiClient jobsApiClient             = Substitute.For <IJobsApiClient>();
            JobManagementResiliencePolicies policies = new JobManagementResiliencePolicies
            {
                JobsApiClient = Policy.NoOpAsync()
            };
            IMessengerService messengerService = Substitute.For <IMessengerService>();
            ILogger           logger           = Substitute.For <ILogger>();

            JobLog jobLog = new JobLog
            {
                JobId = jobId
            };
            ApiResponse <JobLog> jobLogApiResponse = new ApiResponse <JobLog>(HttpStatusCode.OK, jobLog);

            JobLogUpdateModel jobLogUpdateModel = new JobLogUpdateModel();

            jobsApiClient
            .AddJobLog(jobId, jobLogUpdateModel)
            .Returns(jobLogApiResponse);

            JobManagement jobManagement = new JobManagement(jobsApiClient, logger, policies, messengerService);

            //Act
            JobLog result = await jobManagement.AddJobLog(jobId, jobLogUpdateModel);

            Assert.AreEqual(result, jobLog);

            await jobsApiClient
            .Received(1)
            .AddJobLog(jobId, jobLogUpdateModel);
        }
        public ProviderCalculationResultsReIndexerService(
            ILogger logger,
            ISearchRepository <ProviderCalculationResultsIndex> providerCalculationResultsSearchRepository,
            ISpecificationsApiClient specificationsApiClient,
            ICalculationResultsRepository resultsRepository,
            IResultsResiliencePolicies resiliencePolicies,
            IFeatureToggle featureToggle,
            IMessengerService messengerService)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(providerCalculationResultsSearchRepository, nameof(providerCalculationResultsSearchRepository));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(resultsRepository, nameof(resultsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.ResultsRepository, nameof(resiliencePolicies.ResultsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.SpecificationsApiClient, nameof(resiliencePolicies.SpecificationsApiClient));
            Guard.ArgumentNotNull(resiliencePolicies?.ResultsSearchRepository, nameof(resiliencePolicies.ResultsSearchRepository));
            Guard.ArgumentNotNull(featureToggle, nameof(featureToggle));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));

            _logger = logger;
            _providerCalculationResultsSearchRepository = providerCalculationResultsSearchRepository;
            _specificationsApiClient       = specificationsApiClient;
            _resultsRepository             = resultsRepository;
            _resultsRepositoryPolicy       = resiliencePolicies.ResultsRepository;
            _specificationsApiClientPolicy = resiliencePolicies.SpecificationsApiClient;
            _resultsSearchRepositoryPolicy = resiliencePolicies.ResultsSearchRepository;
            _featureToggle    = featureToggle;
            _messengerService = messengerService;
        }
Пример #7
0
        public MainViewModel(
            IAmalgamationManagementService iAmalgamationManagementService,
            IMessengerService messengerService,
            IWindowService windowService,
            IDialogInteractionService dialogInteractionService,
            IWindowsProcessService windowsProcessService,
            ISettingsService settingsService,
            ILogger logger)
        {
            _amalgamationManagementService = iAmalgamationManagementService;
            _messengerService         = messengerService;
            _windowService            = windowService;
            _dialogInteractionService = dialogInteractionService;
            _messengerService.Register <TaskProgressMessage>(this, HandleTaskProgressMessage);
            _messengerService.Register <AmalgamationSummary>(this, x => AmalgamationSummary = x);
            _windowsProcessService = windowsProcessService;
            _settingsService       = settingsService;
            _logger = logger;

            ChooseFileCommand         = new RelayCommand(ShowChooseFileDialog);
            AmalgamateFilesCommand    = new AsyncCommand(AmalgamateFiles, () => CanMerge);
            OutputDirectoryCommand    = new RelayCommand(() => ProcessStart(OutputDirectory));
            SettingsNavigationCommand = new RelayCommand(SettingsNavigate);
            AboutNavigationCommand    = new RelayCommand(AboutNavigate);
            RemoveFileCommand         = new RelayCommand <object>(RemoveFile);

            MergeAnotherSetOfFilesCommand = new RelayCommand(() => CurrentStage = StageKeys.ChooseFile);
            CancelCommand = new RelayCommand(Cancel, () => (CurrentStage == StageKeys.Processing) && (!_cancellationTokenSource?.IsCancellationRequested ?? false));
        }
Пример #8
0
 public AddRemoveFolderVM(IVMLocator vmLocator, IMessengerService messengerService, IMediaCollectionManager collectionManager, IApplicationSettings applicationSettings)
     : base(vmLocator)
 {
     _collectionManager   = collectionManager;
     _messengerService    = messengerService;
     _applicationSettings = applicationSettings;
 }
Пример #9
0
        public CreateOfferViewModel(ICanService canService,
                                    IWantService wantService,
                                    ICategoryService categoryService,
                                    IDialogService dialogService,
                                    IMessengerService messenger)
            : base(canService, wantService, categoryService, dialogService, messenger)
        {
            Offer = new OfferModel();

            if (Categories == null || Categories.Count == 0)
            {
                var mtDispatcher = Mvx.Resolve <IMvxMainThreadDispatcher>();
                mtDispatcher.RequestMainThreadAction(() =>
                {
                    DialogService.Alert(
                        Constants.DialogNoNetwork,
                        Constants.DialogTitleError,
                        Constants.DialogButtonOk,
                        () => Close(this));
                });
                return;
            }

            Category = -1;
        }
Пример #10
0
 public HandlerPageViewModel(DiteService diteService, NavigationService navigationService, IComponentFactory factory, IMessengerService messengerService)
     :base(factory, messengerService)
 {
     this._diteService = diteService;
     _navigationService = navigationService;
     //_moduleFactory = moduleFactory;
 }
 public FileConversionOrchestrator(
     IMessengerService messengerService,
     IFileService fileService,
     IFileNameService fileNameService,
     IXsdValidationService xsdValidationService,
     IXmlSchemaProvider xmlSchemaProvider,
     IValidationErrorHandler validationErrorHandler,
     IXmlSerializationService xmlSerializationService,
     IMap <Loose.Previous.Message, Loose.Message> mapper,
     IProcess <Loose.Message> yearUplifter,
     IAnonymise <Loose.Message> anonymiser,
     IAnonymiseLog anonymiseLog,
     ILogger logger)
 {
     _messengerService        = messengerService;
     _fileService             = fileService;
     _fileNameService         = fileNameService;
     _xsdValidationService    = xsdValidationService;
     _xmlSchemaProvider       = xmlSchemaProvider;
     _validationErrorHandler  = validationErrorHandler;
     _xmlSerializationService = xmlSerializationService;
     _mapper       = mapper;
     _yearUplifter = yearUplifter;
     _anonymiser   = anonymiser;
     _anonymiseLog = anonymiseLog;
     _logger       = logger;
 }
        public virtual async void TestDelete()
        {
            var builder = new WebHostBuilder()
                          .UseEnvironment("Production")
                          .UseStartup <TestStartup>();
            TestServer testServer = new TestServer(builder);
            var        client     = new ApiClient(testServer.CreateClient());

            client.SetBearerToken(JWTTestHelper.GenerateBearerToken());
            ApplicationDbContext context = testServer.Host.Services.GetService(typeof(ApplicationDbContext)) as ApplicationDbContext;

            IMessengerService service = testServer.Host.Services.GetService(typeof(IMessengerService)) as IMessengerService;
            var model = new ApiMessengerServerRequestModel();

            model.SetProperties(DateTime.Parse("1/1/1988 12:00:00 AM"), 2, 1, TimeSpan.Parse("02:00:00"), 1, 1);
            CreateResponse <ApiMessengerServerResponseModel> createdResponse = await service.Create(model);

            createdResponse.Success.Should().BeTrue();

            ActionResponse deleteResult = await client.MessengerDeleteAsync(2);

            deleteResult.Success.Should().BeTrue();
            ApiMessengerServerResponseModel verifyResponse = await service.Get(2);

            verifyResponse.Should().BeNull();
        }
        public JobManagementService(
            IJobRepository jobRepository,
            INotificationService notificationService,
            IJobDefinitionsService jobDefinitionsService,
            IJobsResiliencePolicies resiliencePolicies,
            ILogger logger,
            IValidator <CreateJobValidationModel> createJobValidator,
            IMessengerService messengerService,
            ICacheProvider cacheProvider)
        {
            Guard.ArgumentNotNull(jobRepository, nameof(jobRepository));
            Guard.ArgumentNotNull(notificationService, nameof(notificationService));
            Guard.ArgumentNotNull(jobDefinitionsService, nameof(jobDefinitionsService));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(createJobValidator, nameof(createJobValidator));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));
            Guard.ArgumentNotNull(resiliencePolicies?.JobRepository, nameof(resiliencePolicies.JobRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.JobDefinitionsRepository, nameof(resiliencePolicies.JobDefinitionsRepository));
            Guard.ArgumentNotNull(resiliencePolicies?.CacheProviderPolicy, nameof(resiliencePolicies.CacheProviderPolicy));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));

            _jobRepository         = jobRepository;
            _notificationService   = notificationService;
            _jobDefinitionsService = jobDefinitionsService;
            _jobsRepositoryPolicy  = resiliencePolicies.JobRepository;
            _logger              = logger;
            _createJobValidator  = createJobValidator;
            _messengerService    = messengerService;
            _cacheProvider       = cacheProvider;
            _cacheProviderPolicy = resiliencePolicies.CacheProviderPolicy;
        }
Пример #14
0
 public ExceptionService(IMessengerService messageService, IUserService userService, IIdentityService identityService)
 {
     _messageService  = messageService;
     _userService     = userService;
     _identityService = identityService;
     SupportTeamEmail = ConfigurationManager.AppSettings["accountEmail"];
 }
        public async Task SendNotification_WhenAllPropertiesSet_AddsMessageToTopic()
        {
            // Arrange
            IDictionary <string, string> topicMessageProperties = null;

            IMessengerService messengerService = CreateMessengerService();
            await messengerService.SendToTopic(Arg.Any <string>(), Arg.Any <JobNotification>(), Arg.Do <IDictionary <string, string> >(p => topicMessageProperties = p));

            ILogger logger = CreateLogger();

            INotificationService notificationService = CreateNotificationService(messengerService, logger);

            JobNotification jobNotification = CreateJobNotification();

            // Act
            await notificationService.SendNotification(jobNotification);

            // Assert
            await messengerService
            .Received(1)
            .SendToTopic(Arg.Is(ServiceBusConstants.TopicNames.JobNotifications), Arg.Is(jobNotification), Arg.Any <IDictionary <string, string> >());

            topicMessageProperties.Should().NotBeNull();
            topicMessageProperties["jobId"].Should().Be(jobNotification.JobId, "JobId");
            topicMessageProperties["jobType"].Should().Be(jobNotification.JobType, "JobType");
            topicMessageProperties["entityId"].Should().Be(jobNotification.Trigger.EntityId, "EntityId");
            topicMessageProperties["specificationId"].Should().Be(jobNotification.SpecificationId, "SpecficationId");
            topicMessageProperties["parentJobId"].Should().Be(jobNotification.ParentJobId, "ParentJobId");

            logger
            .Received(1)
            .Information(Arg.Is("Sent notification for job with id '{JobId}' of type '{JobType}' for entity '{EntityType}' with id '{EntityId} and status '{CompletionStatus}"), Arg.Is(jobNotification.JobId), Arg.Is(jobNotification.JobType), Arg.Is(jobNotification.Trigger.EntityType), Arg.Is(jobNotification.Trigger.EntityId), Arg.Is(jobNotification.CompletionStatus));
        }
        public async Task UpdateJobStatusInternal_ApiResponseFailure_Logs(ApiResponse <JobLog> jobLogApiResponse)
        {
            //Arrange
            IJobsApiClient jobsApiClient             = Substitute.For <IJobsApiClient>();
            JobManagementResiliencePolicies policies = new JobManagementResiliencePolicies
            {
                JobsApiClient = Policy.NoOpAsync()
            };
            IMessengerService messengerService = Substitute.For <IMessengerService>();
            ILogger           logger           = Substitute.For <ILogger>();

            jobsApiClient
            .AddJobLog(Arg.Any <string>(), Arg.Any <JobLogUpdateModel>())
            .Returns(jobLogApiResponse);

            JobLogUpdateModel updateModel = new JobLogUpdateModel();

            JobManagement jobManagement = new JobManagement(jobsApiClient, logger, policies, messengerService);

            string jobId = "3456";

            //Act
            await jobManagement.UpdateJobStatus(jobId, updateModel);

            //Assert
            await jobsApiClient
            .Received(1)
            .AddJobLog(jobId, updateModel);

            logger
            .Received(1)
            .Write(LogEventLevel.Error, $"Failed to add a job log for job id '{jobId}'");
        }
        public async Task GetJobDetails_ReturnsJobViewModel()
        {
            IJobsApiClient jobsApiClient             = Substitute.For <IJobsApiClient>();
            JobManagementResiliencePolicies policies = new JobManagementResiliencePolicies
            {
                JobsApiClient = Policy.NoOpAsync()
            };
            IMessengerService messengerService = Substitute.For <IMessengerService>();
            ILogger           logger           = Substitute.For <ILogger>();

            JobViewModel jvm = new JobViewModel
            {
                CompletionStatus = null
            };

            ApiResponse <JobViewModel> jobApiResponse = new ApiResponse <JobViewModel>(HttpStatusCode.OK, jvm);

            jobsApiClient
            .GetJobById(Arg.Any <string>())
            .Returns(jobApiResponse);

            JobManagement jobManagement = new JobManagement(jobsApiClient, logger, policies, messengerService);

            string jobId = "3456";

            //Act
            JobViewModel viewModel = await jobManagement.GetJobById(jobId);

            //Assert
            viewModel
            .Should()
            .Be(jvm);
        }
Пример #18
0
        public async Task RefreshPublishResults_GivenASpecificationIdThatDoesNotExistAndFeatureToggleIsFalse_ShouldReturnBadRequestObjectResult()
        {
            // Arrange
            const string validSpecificationId   = "123";
            const string invalidSpecificationId = "333";

            IMessengerService messengerService = Substitute.For <IMessengerService>();

            ISpecificationsRepository mockSpecificationsRepository = Substitute.For <ISpecificationsRepository>();

            mockSpecificationsRepository.GetSpecificationById(validSpecificationId).Returns(new Specification());

            SpecificationsService specificationsService = CreateService(messengerService: messengerService);
            HttpRequest           httpRequest           = Substitute.For <HttpRequest>();

            httpRequest.Query.Returns(new QueryCollection(new Dictionary <string, StringValues>()
            {
                { "specificationIds", new StringValues($"{validSpecificationId}, {invalidSpecificationId}") }
            }));

            // Act
            IActionResult actionResultReturned = await specificationsService.RefreshPublishedResults(httpRequest);

            // Assert
            actionResultReturned.Should().BeOfType <BadRequestObjectResult>();
        }
Пример #19
0
 public MessengerController(IMessengerService messengerService, IUserService userService, IFriendshipService friendshipService, IMapper mapper)
 {
     this.messengerService  = messengerService;
     this.userService       = userService;
     this.friendshipService = friendshipService;
     this.mapper            = mapper;
 }
Пример #20
0
 private MainViewModel NewViewModel(
     IIlrDesktopService ilrDesktopService         = null,
     IDesktopContextFactory desktopContextFactory = null,
     IMessengerService messengerService           = null,
     IWindowService windowService = null,
     IDialogInteractionService dialogInteractionService          = null,
     IWindowsProcessService windowsProcessService                = null,
     IReleaseVersionInformationService versionInformationService = null,
     IReferenceDataVersionInformationService referenceDataVersionInformationService = null,
     ILogger logger = null,
     IFeatureSwitchService featureSwitchService     = null,
     IVersionMediatorService versionMediatorService = null,
     IDesktopReferenceDataDownloadService desktopReferenceDataDownloadService = null)
 {
     return(new MainViewModel(
                ilrDesktopService ?? Mock.Of <IIlrDesktopService>(),
                desktopContextFactory ?? Mock.Of <IDesktopContextFactory>(),
                messengerService ?? Mock.Of <IMessengerService>(),
                windowService ?? Mock.Of <IWindowService>(),
                dialogInteractionService ?? Mock.Of <IDialogInteractionService>(),
                windowsProcessService ?? Mock.Of <IWindowsProcessService>(),
                versionInformationService ?? Mock.Of <IReleaseVersionInformationService>(),
                referenceDataVersionInformationService ?? Mock.Of <IReferenceDataVersionInformationService>(),
                logger ?? Mock.Of <ILogger>(),
                featureSwitchService ?? Mock.Of <IFeatureSwitchService>(),
                versionMediatorService ?? Mock.Of <IVersionMediatorService>(),
                desktopReferenceDataDownloadService ?? Mock.Of <IDesktopReferenceDataDownloadService>()));
 }
 public OnReIndexTemplates(ILogger logger,
                           ITemplatesReIndexerService templatesReIndexerService,
                           IMessengerService messengerService,
                           IUserProfileProvider userProfileProvider, bool useAzureStorage = false)
     : base(logger, messengerService, FunctionName, QueueName, useAzureStorage, userProfileProvider, templatesReIndexerService)
 {
 }
Пример #22
0
        public DefinitionSpecificationRelationshipService(IDatasetRepository datasetRepository,
                                                          ILogger logger,
                                                          ISpecificationsApiClient specificationsApiClient,
                                                          IValidator <CreateDefinitionSpecificationRelationshipModel> relationshipModelValidator,
                                                          IMessengerService messengerService,
                                                          ICalcsRepository calcsRepository,
                                                          ICacheProvider cacheProvider,
                                                          IDatasetsResiliencePolicies datasetsResiliencePolicies,
                                                          IJobManagement jobManagement,
                                                          IDateTimeProvider dateTimeProvider)
        {
            Guard.ArgumentNotNull(dateTimeProvider, nameof(dateTimeProvider));
            Guard.ArgumentNotNull(datasetRepository, nameof(datasetRepository));
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(specificationsApiClient, nameof(specificationsApiClient));
            Guard.ArgumentNotNull(relationshipModelValidator, nameof(relationshipModelValidator));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));
            Guard.ArgumentNotNull(calcsRepository, nameof(calcsRepository));
            Guard.ArgumentNotNull(cacheProvider, nameof(cacheProvider));
            Guard.ArgumentNotNull(jobManagement, nameof(jobManagement));
            Guard.ArgumentNotNull(datasetsResiliencePolicies?.SpecificationsApiClient, nameof(datasetsResiliencePolicies.SpecificationsApiClient));

            _datasetRepository             = datasetRepository;
            _logger                        = logger;
            _specificationsApiClient       = specificationsApiClient;
            _relationshipModelValidator    = relationshipModelValidator;
            _messengerService              = messengerService;
            _calcsRepository               = calcsRepository;
            _cacheProvider                 = cacheProvider;
            _jobManagement                 = jobManagement;
            _dateTimeProvider              = dateTimeProvider;
            _specificationsApiClientPolicy = datasetsResiliencePolicies.SpecificationsApiClient;

            _typeIdentifierGenerator = new VisualBasicTypeIdentifierGenerator();
        }
Пример #23
0
 public AmalgamationOrchestrationService(
     IMessageProvider <AmalgamationRoot> messageProvider,
     IAmalgamationService amalgamationService,
     IAmalgamationOutputService amalgamationOutputService,
     IXsdValidationService xsdValidationService,
     IDateTimeProvider dateTimeProvider,
     IValidationErrorHandler validationErrorHandler,
     ICrossValidationService crossValidationService,
     IParentRelationshipMapper parentRelationshipMapper,
     IInvalidRecordRemovalService invalidRecordRemovalService,
     IMessengerService messengerService,
     ILogger logger)
 {
     _messageProvider             = messageProvider;
     _amalgamationService         = amalgamationService;
     _amalgamationOutputService   = amalgamationOutputService;
     _xsdValidationService        = xsdValidationService;
     _dateTimeProvider            = dateTimeProvider;
     _validationErrorHandler      = validationErrorHandler;
     _crossValidationService      = crossValidationService;
     _parentRelationshipMapper    = parentRelationshipMapper;
     _invalidRecordRemovalService = invalidRecordRemovalService;
     _messengerService            = messengerService;
     _loggger = logger;
 }
        protected MessengerController(IMessengerService <TInput, TOutput> messengerService, MessengerConfiguration configuration)
        {
            _messengerService = messengerService;
            _configuration    = configuration;

            Log = LogManager.GetLogger(GetType().Name);
        }
Пример #25
0
        public DefinitionsService(
            ILogger logger,
            IDatasetRepository dataSetsRepository,
            ISearchRepository <DatasetDefinitionIndex> datasetDefinitionSearchRepository,
            IDatasetsResiliencePolicies datasetsResiliencePolicies,
            IExcelWriter <DatasetDefinition> excelWriter,
            IBlobClient blobClient,
            IDefinitionChangesDetectionService definitionChangesDetectionService,
            IMessengerService messengerService)
        {
            Guard.ArgumentNotNull(logger, nameof(logger));
            Guard.ArgumentNotNull(dataSetsRepository, nameof(dataSetsRepository));
            Guard.ArgumentNotNull(datasetDefinitionSearchRepository, nameof(datasetDefinitionSearchRepository));
            Guard.ArgumentNotNull(datasetsResiliencePolicies, nameof(datasetsResiliencePolicies));
            Guard.ArgumentNotNull(excelWriter, nameof(excelWriter));
            Guard.ArgumentNotNull(definitionChangesDetectionService, nameof(definitionChangesDetectionService));
            Guard.ArgumentNotNull(messengerService, nameof(messengerService));

            _logger             = logger;
            _datasetsRepository = dataSetsRepository;
            _datasetDefinitionSearchRepository       = datasetDefinitionSearchRepository;
            _datasetDefinitionSearchRepositoryPolicy = datasetsResiliencePolicies.DatasetDefinitionSearchRepository;
            _datasetsRepositoryPolicy = datasetsResiliencePolicies.DatasetRepository;
            _excelWriter      = excelWriter;
            _blobClient       = blobClient;
            _blobClientPolicy = datasetsResiliencePolicies.BlobClient;
            _definitionChangesDetectionService = definitionChangesDetectionService;
            _messengerService = messengerService;
        }
        public async Task WaitForJobsToCompleteWithJobsFailed_ReturnsFalse(bool useServiceBus)
        {
            IJobsApiClient jobsApiClient             = Substitute.For <IJobsApiClient>();
            JobManagementResiliencePolicies policies = new JobManagementResiliencePolicies
            {
                JobsApiClient = Policy.NoOpAsync()
            };

            IMessengerService messengerService = null;

            if (useServiceBus)
            {
                messengerService = Substitute.For <IMessengerService, IServiceBusService>();
            }
            else
            {
                messengerService = Substitute.For <IMessengerService, IQueueService>();
            }

            ILogger logger = Substitute.For <ILogger>();

            JobManagement jobManagement = new JobManagement(jobsApiClient, logger, policies, messengerService);

            string jobId = "3456";

            jobsApiClient
            .GetLatestJobsForSpecification("specificationId", Arg.Is <string[]>(_ => _.Single() == "PopulateScopedProviders"))
            .Returns(new ApiResponse <IDictionary <string, JobSummary> >(HttpStatusCode.OK, new Dictionary <string, JobSummary> {
                { string.Empty, new JobSummary {
                      RunningStatus = RunningStatus.Completed, CompletionStatus = CompletionStatus.Failed, JobId = jobId
                  } }
            }));

            messengerService
            .ReceiveMessage("topic/Subscriptions/correlationId", Arg.Any <Predicate <JobSummary> >(), TimeSpan.FromMilliseconds(600000))
            .Returns(new JobSummary
            {
                CompletionStatus = CompletionStatus.Failed
            });

            //Act
            bool jobsComplete = await jobManagement.QueueJobAndWait(async() => await Task.Run(() => { return(true); }), "PopulateScopedProviders", "specificationId", "correlationId", "topic");

            //Assert
            if (useServiceBus)
            {
                await((IServiceBusService)messengerService)
                .Received(1)
                .CreateSubscription("topic", "correlationId", Arg.Is <TimeSpan>(_ => _.Days == 1));

                await messengerService
                .Received(1)
                .ReceiveMessage("topic/Subscriptions/correlationId", Arg.Any <Predicate <JobSummary> >(), TimeSpan.FromMilliseconds(600000));
            }

            jobsComplete
            .Should()
            .BeFalse();
        }
Пример #27
0
 public TimersHistoryViewModel(DiteService diteService, INavigationService navigationService, IComponentFactory factory, IMessengerService messengerService)
     :base(factory, messengerService)
 {
     _diteService = diteService;
     _navigationService = navigationService;
     AddMessageListener<ObjectUpdated<TimerCounterDto>>(e => TimerCounterUpdated(e.Data));
     ItemsCollection = new ObservableCollection<TimerCounterDto>();
 }
        public TaskMonitoringService(ILogger logger, IDictionary<string, Task> tasks, RepositoryFactory factory)
        {
            _repository = factory.Create();
            _messengerService = new MessengerService(logger, factory);

            Logger = logger;
            Tasks = tasks;
        }
 public OnPopulateScopedProvidersEventTrigger(
     ILogger logger,
     IScopedProvidersService scopedProviderService,
     IMessengerService messengerService,
     IUserProfileProvider userProfileProvider, bool useAzureStorage = false)
     : base(logger, messengerService, FunctionName, QueueName, useAzureStorage, userProfileProvider, scopedProviderService)
 {
 }
Пример #30
0
 public IdentityViewModel(DiteService diteService, INavigationService navigationService,
     IComponentFactory factory, IMessengerService messengerService, IIdentityService identityService)
     : base(factory, messengerService)
 {
     _diteService = diteService;
     _navigationService = navigationService;
     _identityService = identityService;
 }
Пример #31
0
 public OnSearchIndexWriterEventTrigger(ILogger logger,
                                        IMessengerService messengerService,
                                        IUserProfileProvider userProfileProvider,
                                        ISearchIndexWriterService searchIndexWriterService,
                                        bool useAzureStorage = false)
     : base(logger, messengerService, FunctionName, QueueName, useAzureStorage, userProfileProvider, searchIndexWriterService)
 {
 }
 public void Setup()
 {
     _carServiceMock            = Substitute.For <ICarService>();
     _carViewModelMapperMock    = Substitute.For <ICarViewModelMapper>();
     _rentalServiceMock         = Substitute.For <IRentalService>();
     _rentalViewModelMapperMock = Substitute.For <IRentalViewModelMapper>();
     _messengerServiceMock      = Substitute.For <IMessengerService>();
 }
Пример #33
0
 public OnDeletePublishedProviders(
     ILogger logger,
     IDeletePublishedProvidersService deletePublishedProvidersService,
     IMessengerService messengerService,
     IUserProfileProvider userProfileProvider, bool useAzureStorage = false)
     : base(logger, messengerService, FunctionName, QueueName, useAzureStorage, userProfileProvider, deletePublishedProvidersService)
 {
 }
Пример #34
0
 public OnScaleUpCosmosDbCollection(
     ILogger logger,
     ICosmosDbScalingService scalingService,
     IMessengerService messengerService,
     IUserProfileProvider userProfileProvider, bool useAzureStorage = false)
     : base(logger, messengerService, FunctionName, $"{ServiceBusConstants.TopicNames.JobNotifications}/{ServiceBusConstants.TopicSubscribers.ScaleUpCosmosdbCollection}", useAzureStorage, userProfileProvider, scalingService)
 {
 }
 public OnEditSpecificationEvent(
     ILogger logger,
     IScenariosService scenariosService,
     IMessengerService messengerService,
     IUserProfileProvider userProfileProvider, bool useAzureStorage = false)
     : base(logger, messengerService, FunctionName, $"{ServiceBusConstants.TopicNames.EditSpecification}/{ServiceBusConstants.TopicSubscribers.UpdateScenariosForEditSpecification}", useAzureStorage, userProfileProvider, scenariosService)
 {
 }
Пример #36
0
        public SearchPageViewModel()
        {
            _messengerService = Resolver.Instance.Resolve<IMessengerService>();

            SearchCommand = new RelayCommand(OnSearch, CanExecuteSearch);
            ToggleSearchBarCommand = new RelayCommand(OnToggleSearchBar);
            PauseSearchCommand = new RelayCommand(OnPauseSearch, CanPauseSearch);
            ResumeSearchCommand = new RelayCommand(OnResumeSearch, CanResumeSearch);
        }
Пример #37
0
 public GameService(ITopicService topicService, IAuthenticationService authenticationService, IAccountService accountService, IPuzzleService puzzleService, IPuzzleCache puzzleCache, IRepository repository, IReputationService reputationService, IMessengerService twitterService)
 {
     _topicService = topicService;
     _authenticationService = authenticationService;
     _accountService = accountService;
     _puzzleService = puzzleService;
     _puzzleCache = puzzleCache;
     _repository = repository;
     _reputationService = reputationService;
     _twitterService = twitterService;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="MessengerWindow"/> class.
        /// </summary>
        /// <param name="messengerService">The messenger service.</param>
        public MessengerWindow(IMessengerService messengerService)
        {
            InitializeComponent();

            _messengerService = messengerService;

            _messengerService.SignIn("paul", "foo");

            _contactsListBox.ItemsSource = (from c in _messengerService.Contacts.AsBindable()
                                            where c.Name.ToLower(CultureInfo.CurrentUICulture).Contains(_filterTextBox.Text.ToLower(CultureInfo.CurrentUICulture))
                                            orderby c.Name
                                            select c);
        }
Пример #39
0
        //private readonly ModuleFactory _moduleFactory;

        public TimersPageViewModel(DiteService diteService, INavigationService navigationService, IComponentFactory factory, IMessengerService messengerService)
            :base(factory, messengerService)
        {
            _diteService = diteService;
            _navigationService = navigationService;
            //_moduleFactory = moduleFactory;

            ItemsCollection = new ObservableCollection<TimerHandlerDto>();

            AddMessageListener<ObjectUpdated<TimerHandlerDto>>(e => TimerHandlerUpdated(e.Data));
            AddMessageListener<ObjectInserted<TimerHandlerDto>>(e => TimerHandlerInserted(e.Data));
            AddMessageListener<ObjectDeleted<TimerHandlerDto>>(e => TimerHandlerDeleted(e.Data));
            AddMessageListener<TimerStarted<TimerHandlerDto>>(e => TimerStarted(e.Data));
        }
Пример #40
0
 public SyncService(
     IConnectionManager connectionManager,
     IMultiServerSync mediaSync,
     IStorageService storageService,
     IServerInfoService serverInfo,
     IMessagePromptService messagePrompt,
     IMessengerService messengerService)
 {
     _connectionManager = connectionManager;
     _mediaSync = mediaSync;
     _serverInfo = serverInfo;
     _messagePrompt = messagePrompt;
     _messengerService = messengerService;
     _storageService = storageService.Local;
     _logger = new WPLogger(GetType());
     Current = this;
 }
Пример #41
0
        public PhotoDownloaderTask()
            : base(nameof(PhotoDownloaderTask), 250 /* ms */)
        {
            _messengerService = Resolver.Instance.Resolve<IMessengerService>();
            _flickrService = Resolver.Instance.Resolve<IFlickrService>();

            _searchOption = new PhotoSearchOption
            {
                PageNumber = 1,
                PageSize = DefaultPageSize
            };

            _isMorePageAvailable = new ManualResetEventSlim(false);

            // listen for these events
            _messengerService.Register<SearchPhotoEvent>(OnSearchPhoto);
            _messengerService.Register<SearchPhotoEndEvent>(OnSearchPhotoEnd);
        }
        public AuthenticationService(
            IConnectionManager connectionManager,
            IApplicationSettingsService settingsService,
            IServerInfoService serverInfoService,
            IMessengerService messengerService)
        {
            _settingsService = settingsService.Legacy;
            _connectionManager = connectionManager;
            _messengerService = messengerService;
            _logger = new WPLogger(typeof (AuthenticationService));
            Current = this;

            _connectionManager.ConnectUserSignIn += ConnectionManagerOnConnectUserSignIn;
            _connectionManager.ConnectUserSignOut += ConnectionManagerOnConnectUserSignOut;
            _connectionManager.LocalUserSignIn += ConnectionManagerOnLocalUserSignIn;
            _connectionManager.LocalUserSignOut += ConnectionManagerOnLocalUserSignOut;
            _connectionManager.Connected += ConnectionManagerOnConnected;
            serverInfoService.ServerInfoChanged += ServerInfoServiceOnServerInfoChanged;

            if (serverInfoService.HasServer)
            {
                SetUserUpdateHandler(serverInfoService.ServerInfo);
            }
        }
Пример #43
0
        public bool SendEmailToApproverFromRequester(string hostUrl,Request request, ESKAPEDEContext Db,IMessengerService MessengerService)
        {
            var isSuccess = false;
            try
            {
                var RequestID = request.RequestID ;
                var fromFirstName = Db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.FirstName).SingleOrDefault();
                var fromLastName = Db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.LastName).SingleOrDefault();
                if (fromLastName == null) fromLastName = "";
                var fromfullName = string.Format("{0}.{1}", fromFirstName.ToUpper(), fromLastName.ToUpper());
                var fromAddress = ConfigurationManager.AppSettings["Sender"];
                var fromPositionName = Db.Positions.Where(a => a.PositionID == request.PositionID).Select(a => a.PositionName).SingleOrDefault();
                var fromDivisionName = Db.Positions.Where(a => a.PositionID  == request.PositionID).Select(a => a.Unit.Division.DivisionName).SingleOrDefault();
                var fromCountryName = Db.Positions.Where(a => a.PositionID  == request.PositionID).Select(a => a.Country.CountryName).SingleOrDefault();
                var fromDesti = Db.Countries.Where(a => a.CountryID == request.FromCountryID).Select(a => a.CountryName).SingleOrDefault();
                var toDesti = Db.Countries.Where(a => a.CountryID == request.ToCountryID).Select(a => a.CountryName).SingleOrDefault();
                var fromDate = request.StartDate.Date.ToShortDateString();
                var toDate = request.EndDate.Date.ToShortDateString();
                var skpdEventName = request.EventName;
                var skpdEndDate = request.EndDate.Date.ToShortDateString();
                var toAddress = Db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.Email).SingleOrDefault();
                var toName = Db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.Username).SingleOrDefault();
                var skpdRequestID = request.RequestID.ToString();
                var QueryParam = string.Format("UserName={0}&RequestID={1}", toName, skpdRequestID);
                var QueryParamEncrypt = QueryStringEncrypt(QueryParam);
                var approveUrl = hostUrl + VirtualPathUtility.ToAbsolute(string.Format("~/FromEmail/Approve{0}", QueryParamEncrypt));
                var rejectUrl = hostUrl + VirtualPathUtility.ToAbsolute(string.Format("~/FromEmail/Reject{0}", QueryParamEncrypt));
                var subject = string.Format("Pengajuan Permohonan Perjalanan Dinas Dari Bapak/Ibu {0}", fromfullName);
                IEnumerable<RequestInTransport> ListTrans = Db.RequestInTransports.Include("Transport").Where(a => a.RequestID == request.RequestID);
                var anggaran = Db.RequestInPrograms.Where(a => a.RequestID == request.RequestID).Select(a => a.Program.ProgramName).FirstOrDefault();

                //IEnumerable<Transport> transport = db.Transports;
                var StrListTrans = "<ul>";
                foreach (var item in ListTrans)
                {
                    StrListTrans += string.Format("<li>{0}</li>", item.Transport.TransportName);
                }
                StrListTrans = string.Format("{0}</ul>", StrListTrans);

                var body = string.Format("Kepada Yth,<br />" +
                                        "Bapak/Ibu. {0} <br /><br/>" +
                                        "Permohonan Persetujuan Perjalanan Dinas : " +
                                        "<br/><br/>No. Perjadin: {1} " +
                                        "<br/>Nama: {2} " +
                                        "<br/>Posisi: {3} " +
                                        "<br/>Divisi : {4} " +
                                        "<br/>Kantor : {5} " +
                                        "<br/>Kegiatan : {6} " +
                                        "<br/>Perjalanan : {7} - {8} " +
                                        "<br/>Tanggal: {9} - {10}" +
                                        "<br/>Transportasi : {11} " +
                                        "<br/>Beban Anggaran : {12} " +
                                        "<br/><br /> Apakah Permohonan perjalanan dinas ini di SETUJUI atau TIDAK DISETUJUI ? " +
                                        "<br/><br/><p><strong><a href=\"{13}\">DISETUJUI</a></strong></p> " +
                                        "<br/><br/><p><strong><a href=\"{14}\">TIDAK DISETUJUI</a></strong></p>",
                                        toName.ToUpper(), skpdRequestID, fromfullName, fromPositionName, fromDivisionName,
                                        fromCountryName, skpdEventName, fromDesti, toDesti, fromDate, toDate,
                                        StrListTrans, anggaran, approveUrl, rejectUrl);

                if (MessengerService.Send(fromAddress, toAddress, subject, body, true))
                {
                    isSuccess = true;
                }
            }
            catch (Exception ex)
            {
                //Log exception
                ex.ToString();
            }

            return isSuccess;
        }
Пример #44
0
 public TimerCounterEditorViewModel(DiteService diteService, INavigationService navigationService, IComponentFactory factory, IMessengerService messengerService)
     :base(factory, messengerService)
 {
     this._diteService = diteService;
     _navigationService = navigationService;
 }
Пример #45
0
 public AddNewHandlerViewModel(DiteService diteService, NavigationService navigationService, IComponentFactory factory, IMessengerService messengerService)
     :base(factory, messengerService)
 {
     this._diteService = diteService;
     _navigationService = navigationService;            
 }
Пример #46
0
        //public bool ExclusiveApprover(int ApprovalPositionID)
        //{
        //    var ApprovalPositionName = "";
        //    bool PositionName = false;
        //    string[] Exclusive;
        //    Exclusive = new string[2];
        //    Exclusive[0] = "KADIV";
        //    Exclusive[1] = "KA. KPM";
        //    List<string> _Exclusive = new List<string>(Exclusive);
        //    using (var db = new ESKAPEDEContext())
        //    {
        //        ApprovalPositionName = db.Positions.Where(a => a.PositionID == ApprovalPositionID).Select(a => a.PositionName).First();
        //    }
        //    if (_Exclusive.Any(s => ApprovalPositionName.Contains(s)))
        //    {
        //        PositionName = true;
        //    }
        //    return PositionName;
        //}
        public bool SendEmailRejectToRequesterCcApprover(Request request, ESKAPEDEContext Db, IMessengerService MessengerService)
        {
            var isSuccess = false;
            try
            {
                var RequestID = request.RequestID;
                var fromUsername = Db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.Username).SingleOrDefault();
                var fromFirstName = Db.Users.Where(a => a.Username == fromUsername).Select(a => a.FirstName).SingleOrDefault();
                var fromLastName = Db.Users.Where(a => a.Username == fromUsername).Select(a => a.LastName).SingleOrDefault();
                if (fromLastName == null) fromLastName = "";
                var fromfullName = string.Format("{0}.{1}", fromFirstName.ToUpper(), fromLastName.ToUpper());
                var fromAddress = ConfigurationManager.AppSettings["Sender"];
                var toAddress = Db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.Email).SingleOrDefault();
                var toFirstName = Db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.FirstName).SingleOrDefault();
                var toLastName = Db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.LastName).SingleOrDefault();
                var tofullName = string.Format("{0}.{1}", toFirstName.ToUpper(), toLastName.ToUpper());
                //var ccAddress = Db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.Email).Single();
                var ccAddress = ccEmail(request.RequestID);
                var subject = string.Format("Hasil Permohonan Pengajuan Perjalan Dinas Dari {0}", fromfullName);
                var appSkpdUrl = ConfigurationManager.AppSettings["hostUrl"];
                var fromReason = request.RejectedReason;
                var body = string.Format("<p>Kepada Yth,<br />" +
                                        "Bapak/Ibu {0}<br /><br />" +
                                        "No. Perjadin : {1} <br />" +
                                        "TIDAK DISETUJUI Oleh Bapak/Ibu {2}</p><br />" +
                                        "Dengan Alasan : {3}" +
                                        "<p>Untuk informasi lengkap <a href='{4}'>login</a></p>",
                                        tofullName.ToUpper(), RequestID, fromfullName, request.RejectedReason, appSkpdUrl);
                if (MessengerService.Send(fromAddress, toAddress, subject, body, true, ccAddress))
                {
                    isSuccess = true;
                }

            }
            catch (Exception ex)
            {
                //Log exception
                ex.ToString();
            }

            return isSuccess;
        }
Пример #47
0
 public AccountController(IWebSecurityService webSecurity, IMessengerService messengerService, ITournamentContext tournamentContext)
 {
     this.webSecurity = webSecurity;
     this.messengerService = messengerService;
     this.tournamentContext = tournamentContext;
 }
Пример #48
0
        public bool SendEmailResultToRequesterCcApprover(Request request, ESKAPEDEContext Db, IMessengerService MessengerService)
        {
            var isSuccess = false;
            try
            {
                //SEND EMAIL TO REQUESTER Cc APPROVER
                var RequestID = request.RequestID.ToString();
                var fromFirstName = Db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.FirstName).SingleOrDefault();
                var fromLastName = Db.Users.Where(a => a.PositionID == request.ApprovalPositionID).Select(a => a.LastName).SingleOrDefault();
                if (fromLastName == null) fromLastName = "";
                var fromfullName = string.Format("{0}.{1}", fromFirstName.ToUpper(), fromLastName.ToUpper());
                var toFirstName = Db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.FirstName).SingleOrDefault();
                var toLastName = Db.Users.Where(a => a.Username == request.CreatedBy).Select(a => a.LastName).SingleOrDefault();
                var tofullName = string.Format("{0}.{1}", toFirstName.ToUpper(), toLastName.ToUpper());
                var fromAddress = ConfigurationManager.AppSettings["Sender"];
                var toAddress = Db.Users.Where(a => a.ID == request.UserID).Select(a => a.Email).SingleOrDefault();
                var ccAddress = ccEmail(request.RequestID);
                var subject = string.Format("Hasil Pengajuan Perjalanan Dinas Dari {0}", tofullName);
                var appSkpdUrl = ConfigurationManager.AppSettings["hostUrl"];
                var body = string.Format("<p>Kepada Yth,<br /> Bapak/Ibu {0}<br /><br />" +
                                        "<p>No. Perjadin : {1}</p> <br />" +
                                        "<p>Pengajuan perjalanan dinas anda telah DISETUJUI oleh Bapak/Ibu {2}</p><br />" +
                                        "<p>Untuk informasi lengkap <a href=\"{3}\">login</a></p>",
                                        tofullName.ToUpper(), RequestID, fromfullName, appSkpdUrl);

                if (MessengerService.Send(fromAddress, toAddress, subject, body, true, ccAddress))
                {
                    isSuccess = true;
                }
            }
            catch (Exception ex)
            {
                ex.ToString();
            }

            return isSuccess;
        }