Esempio n. 1
0
        public async Task <Unit> HandleAsync(UpdateInternalUserRole message)
        {
            var user = await repository.GetByUserId(message.UserId);

            var adminClaim    = new Claim(ClaimTypes.Role, UserRole.Administrator.ToString().ToLowerInvariant());
            var internalClaim = new Claim(ClaimTypes.Role, UserRole.Internal.ToString().ToLowerInvariant());
            var readOnlyClaim = new Claim(ClaimTypes.Role, UserRole.ReadOnly.ToString().ToLowerInvariant());

            var userClaims = await userManager.GetClaimsAsync(user.UserId);

            if (message.Role == UserRole.Administrator)
            {
                await AddClaimToUser(userClaims, adminClaim, user);
                await AddClaimToUser(userClaims, internalClaim, user);
                await RemoveClaim(userClaims, readOnlyClaim, user);
            }

            if (message.Role == UserRole.Internal)
            {
                await AddClaimToUser(userClaims, internalClaim, user);
                await RemoveClaim(userClaims, adminClaim, user);
                await RemoveClaim(userClaims, readOnlyClaim, user);
            }

            if (message.Role == UserRole.ReadOnly)
            {
                await AddClaimToUser(userClaims, readOnlyClaim, user);
                await RemoveClaim(userClaims, internalClaim, user);
                await RemoveClaim(userClaims, adminClaim, user);
            }

            return(Unit.Value);
        }
Esempio n. 2
0
        public async Task <FinanceReportData[]> HandleAsync(GetFinanceReport message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            var report = await financeReportRepository.GetFinanceReport(message.From, message.To, user.CompetentAuthority);

            return(report.Select(f => mapper.Map <FinanceReportData>(f)).ToArray());
        }
Esempio n. 3
0
        public async Task <ImportStatsData[]> HandleAsync(GetImportStatsReport message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            var report = await importStatsRepository.GetImportStats(message.From, message.To, user.CompetentAuthority);

            return(report.Select(p => mapper.Map <ImportStatsData>(p)).ToArray());
        }
        public async Task <ComplianceData[]> HandleAsync(GetComplianceReport message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            return
                ((await
                  repository.GetComplianceReport(message.DateType, message.From, message.To, message.TextFieldType,
                                                 message.OperatorType, message.TextSearch, user.CompetentAuthority)).ToArray());
        }
Esempio n. 5
0
        public async Task <IEnumerable <ExportNotificationOwnerDisplay> > HandleAsync(GetExportNotificationOwnerDisplays message)
        {
            var currentUser = await internalUserRepository.GetByUserId(userContext.UserId);

            var result = (await exportOwnerDisplayRepository
                          .GetInternalUnsubmittedByCompetentAuthority(currentUser.CompetentAuthority));

            return(result.Select(x => mapper.Map <ExportNotificationOwnerDisplay>(x)).ToArray());
        }
        public GetImportNotificationCommentsUsersHandlerTests()
        {
            this.repo = A.Fake <IImportNotificationCommentRepository>();
            this.internalUserRepository = A.Fake <IInternalUserRepository>();

            A.CallTo(() => repo.GetUsers(A <Guid> .Ignored, A <NotificationShipmentsCommentsType> .Ignored)).Returns(this.GetFakeUsers());
            A.CallTo(() => internalUserRepository.GetByUserId(A <Guid> .Ignored)).Returns(GetFakeInternalUser());
            this.message = A.Fake <GetImportNotificationCommentsUsers>();
            this.handler = new GetImportNotificationCommentsUsersHandler(this.repo, this.internalUserRepository);
        }
Esempio n. 7
0
        public async Task <FinancialGuaranteesData[]> HandleAsync(GetFinancialGuaranteesReport message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            return((await financialGuaranteesRepository.GetBlanketBonds(
                        user.CompetentAuthority,
                        message.FinancialGuaranteeReferenceNumber,
                        message.ExporterName,
                        message.ImporterName,
                        message.ProducerName)).ToArray());
        }
Esempio n. 8
0
        public async Task <List <LocalAreaData> > HandleAsync(GetLocalAreasByUserCa message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            return(await iwsContext.LocalAreas.OrderBy(x => x.Name).Where(x => x.CompetentAuthorityId == (int)user.CompetentAuthority)
                   .Select(p => new LocalAreaData()
            {
                Id = p.Id, Name = p.Name, CompetentAuthorityId = p.CompetentAuthorityId
            })
                   .ToListAsync());
        }
        public InternalComment Map(ImportNotificationComment source)
        {
            var user = Task.Run(() => internalUserRepository.GetByUserId(source.UserId)).Result.User;

            return(new InternalComment()
            {
                Comment = source.Comment,
                DateAdded = source.DateAdded.UtcDateTime,
                NotificationId = source.NotificationId,
                ShipmentNumber = source.ShipmentNumber,
                Username = user.FullName,
                CommentId = source.Id
            });
        }
        public async Task <Tuple <UKCompetentAuthority, CompetentAuthorityData> > HandleAsync(GetInternalUserCompetentAuthority message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            var userAuthority = user.CompetentAuthority;

            var countryId = await countryRepository.GetUnitedKingdomId();

            var lookupAuthority = await competentAuthorityRepository.GetCompetentAuthorities(countryId);

            return(new Tuple <UKCompetentAuthority, CompetentAuthorityData>(userAuthority,
                                                                            mapper.Map <CompetentAuthorityData>(
                                                                                lookupAuthority.Single(ca => ca.Code == AuthorityCodes[userAuthority]))));
        }
Esempio n. 11
0
        public async Task <NotificationCommentsUsersData> HandleAsync(GetNotificationCommentsUsers message)
        {
            var users = await this.repository.GetUsers(message.NotificationId, message.Type);

            NotificationCommentsUsersData returnData = new NotificationCommentsUsersData();

            foreach (string userId in users)
            {
                var user = Task.Run(() => internalUserRepository.GetByUserId(userId)).Result.User.FullName;

                returnData.Users.Add(userId, user);
            }

            return(returnData);
        }
Esempio n. 12
0
        public async Task <AdvancedSearchResult> HandleAsync(NotificaitonsAdvancedSearch message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            var exportResults =
                await repository.SearchExportNotificationsByCriteria(message.Criteria, user.CompetentAuthority);

            var importResults =
                await repository.SearchImportNotificationsByCriteria(message.Criteria, user.CompetentAuthority);

            return(new AdvancedSearchResult
            {
                ExportResults = exportResults,
                ImportResults = importResults
            });
        }
        public async Task <IEnumerable <NotificationAttentionSummaryTableData> > HandleAsync(GetNotificationAttentionSummary message)
        {
            var internalUser = await internalUserRepository.GetByUserId(userContext.UserId);

            var summaryData = await attentionSummaryRepository.GetByCompetentAuthority(internalUser.CompetentAuthority);

            var result = new List <NotificationAttentionSummaryTableData>();

            foreach (var summary in summaryData)
            {
                var data = await GetTableDataFromSummary(summary);

                result.Add(data);
            }

            return(result.OrderBy(x => x.DecisionRequiredDate).ToArray());
        }
        public GetProducerReportHandlerTests()
        {
            userId = Guid.NewGuid();

            var userContext = A.Fake <IUserContext>();

            repository       = A.Fake <IProducerRepository>();
            internalUserRepo = A.Fake <IInternalUserRepository>();

            A.CallTo(() => userContext.UserId).Returns(userId);
            A.CallTo(() => internalUserRepo.GetByUserId(userId))
            .Returns(new TestableInternalUser()
            {
                UserId             = userId.ToString(),
                CompetentAuthority = competentAuthority
            });

            handler = new GetProducerReportHandler(repository, userContext, internalUserRepo);
        }
        public async Task <Guid> HandleAsync(CreateImportNotification message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            var notification = new ImportNotification(message.NotificationType, user.CompetentAuthority, message.Number);

            await importNotificationRepository.Add(notification);

            await context.SaveChangesAsync();

            var assessment = await assessmentRepository.GetByNotification(notification.Id);

            assessment.Receive(message.ReceivedDate);

            interimStatusRepository.Add(new InterimStatus(notification.Id, message.IsInterim));

            await context.SaveChangesAsync();

            return(notification.Id);
        }
Esempio n. 16
0
        public async Task <Unit> HandleAsync(UpdateInternalUserStatus message)
        {
            var user = await repository.GetByUserId(message.UserId);

            if (message.Status == InternalUserStatus.Approved && user.Status == InternalUserStatus.Inactive)
            {
                user.Activate();
                await context.SaveChangesAsync();

                await userManager.SetLockoutEndDateAsync(user.UserId, SystemTime.UtcNow.AddDays(-1));
            }

            if (message.Status == InternalUserStatus.Inactive && user.Status == InternalUserStatus.Approved)
            {
                user.Deactivate();
                await context.SaveChangesAsync();

                await userManager.SetLockoutEnabledAsync(user.UserId, true);

                await userManager.SetLockoutEndDateAsync(user.UserId, DateTimeOffset.MaxValue);
            }

            return(Unit.Value);
        }
        public async Task GetProducerReportHandler_HandleAsync_CallsInternalUserRepo()
        {
            await handler.HandleAsync(GetRequest());

            A.CallTo(() => internalUserRepo.GetByUserId(A <Guid> .Ignored)).MustHaveHappened(Repeated.Exactly.Once);
        }
Esempio n. 18
0
        public async Task <FreedomOfInformationData[]> HandleAsync(GetFreedomOfInformationReport message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            return((await repository.Get(message.From, message.To, user.CompetentAuthority, message.DateType, message.SearchField, message.ComparisonType, message.SearchText)).ToArray());
        }
Esempio n. 19
0
        public async Task <ExportMovementsData> HandleAsync(GetExportMovementsReport message)
        {
            var user = await internalUserRepository.GetByUserId(userContext.UserId);

            return(await repository.Get(message.From, message.To, user.CompetentAuthority, message.OrganisationFilter, message.OrganisationName));
        }
 public async Task <UKCompetentAuthority> HandleAsync(GetUserCompetentAuthority message)
 {
     return((await internalUserRepository.GetByUserId(userContext.UserId)).CompetentAuthority);
 }