예제 #1
0
        public async Task <Summary> GetById(Guid importNotificationId)
        {
            await authorization.EnsureAccessAsync(importNotificationId);

            var status =
                (await
                 context.ImportNotificationAssessments.SingleAsync(
                     n => n.NotificationApplicationId == importNotificationId)).Status;

            var notificationInfo = await context.ImportNotifications.SingleAsync(n => n.Id == importNotificationId);

            var totalMovements = await context.ImportMovements.Where(m => m.NotificationId == importNotificationId).CountAsync();

            var shipment = await context.Shipments.Where(s => s.ImportNotificationId == importNotificationId).SingleAsync();

            var received = await TotalQuantityReceived(importNotificationId, shipment);

            var averageShipmentInfo = AveragePerShipment(shipment);

            return(new Summary
            {
                IntendedShipments = shipment.NumberOfShipments,
                UsedShipments = totalMovements,
                DisplayUnit = shipment.Quantity.Units,
                QuantityReceivedTotal = received.Quantity,
                QuantityRemainingTotal = shipment.Quantity.Quantity - received.Quantity,
                Id = importNotificationId,
                NotificationStatus = status,
                NotificationType = notificationInfo.NotificationType,
                NotificationNumber = notificationInfo.NotificationNumber,
                AverageTonnage = averageShipmentInfo.Quantity,
                AverageDataUnit = averageShipmentInfo.Units
            });
        }
        public async Task <NumberOfShipmentsHistory> GetOriginalNumberOfShipments(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.NumberOfShipmentsHistories.Where(x => x.ImportNotificationId == notificationId)
                   .OrderBy(x => x.DateChanged)
                   .FirstOrDefaultAsync());
        }
예제 #3
0
        public async Task <Shipment> GetByNotificationIdOrDefault(Guid notificationId)
        {
            var shipment = await context.Shipments.SingleOrDefaultAsync(s => s.ImportNotificationId == notificationId);

            if (shipment != null)
            {
                await authorization.EnsureAccessAsync(notificationId);
            }
            return(shipment);
        }
예제 #4
0
        public async Task <ImportMovement> Get(Guid id)
        {
            var movement = await context.ImportMovements.SingleAsync(m => m.Id == id);

            await notificationAuthorization.EnsureAccessAsync(movement.NotificationId);

            return(movement);
        }
        public async Task <IEnumerable <MovementTableData> > GetById(Guid importNotificationId, int pageNumber, int pageSize)
        {
            await authorization.EnsureAccessAsync(importNotificationId);

            var movements = context.ImportMovements
                            .Where(movement => movement.NotificationId == importNotificationId)
                            .OrderByDescending(m => m.Number)
                            .Skip((pageNumber - 1) * pageSize)
                            .Take(pageSize);

            var result = GetMovementTableData(movements);

            return(result.OrderByDescending(m => m.Number));
        }
예제 #6
0
        public async Task <Consultation> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context
                   .Consultations
                   .SingleOrDefaultAsync(c => c.NotificationId == notificationId));
        }
        public async Task <IEnumerable <ImportNotificationTransaction> > GetTransactions(Guid importNotificationId)
        {
            await authorization.EnsureAccessAsync(importNotificationId);

            return
                (await
                 context.ImportNotificationTransactions.Where(t => t.NotificationId == importNotificationId)
                 .ToListAsync());
        }
        public async Task <IList <NotificationAssessmentDecision> > GetByImportNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            var assessment = await context.ImportNotificationAssessments.SingleOrDefaultAsync(n => n.NotificationApplicationId == notificationId);

            var withdrawals = await context.ImportWithdrawals.SingleOrDefaultAsync(n => n.NotificationId == notificationId);

            var objections = await context.ImportObjections.SingleOrDefaultAsync(n => n.NotificationId == notificationId);

            var consent = await context.ImportConsents.SingleOrDefaultAsync(n => n.NotificationId == notificationId);

            var result = new List <NotificationAssessmentDecision>();

            if (assessment.Dates.ConsentedDate != null)
            {
                result.Add(new NotificationAssessmentDecision(notificationId,
                                                              assessment.Dates.ConsentedDate.GetValueOrDefault(),
                                                              consent.ConsentRange.From,
                                                              consent.ConsentRange.To,
                                                              NotificationStatus.Consented));
            }

            if (withdrawals != null)
            {
                result.Add(new NotificationAssessmentDecision(notificationId,
                                                              withdrawals.Date,
                                                              null,
                                                              null,
                                                              NotificationStatus.Withdrawn));
            }

            if (objections != null)
            {
                result.Add(new NotificationAssessmentDecision(notificationId,
                                                              objections.Date,
                                                              null,
                                                              null,
                                                              NotificationStatus.Objected));
            }

            if (assessment.Dates.ConsentWithdrawnDate != null)
            {
                result.Add(new NotificationAssessmentDecision(notificationId,
                                                              assessment.Dates.ConsentWithdrawnDate.GetValueOrDefault(),
                                                              null,
                                                              null,
                                                              NotificationStatus.ConsentWithdrawn));
            }

            return(result.OrderByDescending(r => r.Date).ToList());
        }
        public async Task <ImportNotificationOverview> Get(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            var notification =
                await context.ImportNotifications.SingleOrDefaultAsync(x => x.Id == notificationId);

            var assessments =
                await
                context.ImportNotificationAssessments.SingleOrDefaultAsync(
                    x => x.NotificationApplicationId == notificationId);

            var exporter = await context.Exporters.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            var importer = await context.Importers.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            var producer = await context.Producers.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            var facilities =
                await context.Facilities.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            var shipment = await context.Shipments.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            var transportRoute =
                await context.TransportRoutes.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            var operationCode =
                await context.OperationCodes.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            var wasteType =
                await context.WasteTypes.SingleOrDefaultAsync(x => x.ImportNotificationId == notificationId);

            return(ImportNotificationOverview.Load(notification,
                                                   assessments,
                                                   exporter,
                                                   importer,
                                                   producer,
                                                   facilities,
                                                   shipment,
                                                   transportRoute,
                                                   operationCode,
                                                   wasteType));
        }
예제 #10
0
        public async Task <Importer> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.Importers.SingleAsync(i => i.ImportNotificationId == notificationId));
        }
예제 #11
0
        public async Task <FacilityCollection> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.Facilities.SingleOrDefaultAsync(f => f.ImportNotificationId == notificationId));
        }
        public async Task <ImportFinancialGuarantee> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.ImportFinancialGuarantees.SingleAsync(f => f.ImportNotificationId == notificationId));
        }
예제 #13
0
        public async Task <ImportNotification> Get(Guid id)
        {
            await authorization.EnsureAccessAsync(id);

            return(await context.ImportNotifications.SingleAsync(n => n.Id == id));
        }
예제 #14
0
        public async Task <ImportWithdrawn> GetByNotificationIdOrDefault(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.ImportWithdrawals.SingleOrDefaultAsync(w => w.NotificationId == notificationId));
        }
예제 #15
0
        public async Task <TransportRoute> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.TransportRoutes.SingleAsync(t => t.ImportNotificationId == notificationId));
        }
예제 #16
0
        public async Task <WasteOperation> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.OperationCodes.SingleAsync(o => o.ImportNotificationId == notificationId));
        }
예제 #17
0
 public async Task EnsureAccessAsync(Guid movementId)
 {
     var notificationId = (await repository.Get(movementId)).NotificationId;
     await authorization.EnsureAccessAsync(notificationId);
 }
        public async Task Add(ImportMovementAudit audit)
        {
            await authorization.EnsureAccessAsync(audit.NotificationId);

            context.ImportMovementAudits.Add(audit);
        }
예제 #19
0
        public async Task <ImportObjection> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.ImportObjections.SingleAsync(o => o.NotificationId == notificationId));
        }
예제 #20
0
        public async Task <WasteType> GetByNotificationId(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.WasteTypes.SingleAsync(wt => wt.ImportNotificationId == notificationId));
        }
예제 #21
0
        public async Task <ImportNotificationAssessment> GetByNotification(Guid notificationId)
        {
            await authorization.EnsureAccessAsync(notificationId);

            return(await context.ImportNotificationAssessments.SingleAsync(na => na.NotificationApplicationId == notificationId));
        }