public OffhireApplicationService( IOffhireFactory offhireFactory, IOffhireRepository offhireRepository, IUnitOfWorkScope unitOfWorkScope, IOffhireDomainService offhireDomainService, IEntityConfigurator<Offhire> offhireConfigurator, IVesselInCompanyDomainService vesselDomianService, IVoyageDomainService voyageDomianService, ICompanyDomainService companyDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService, ITankDomainService tankDomainService, IActivityLocationDomainService activityLocationDomainService, IOffhireManagementSystemDomainService offhireManagementSystemDomainService) { this.offhireFactory = offhireFactory; this.offhireRepository = offhireRepository; this.unitOfWorkScope = unitOfWorkScope; this.offhireDomainService = offhireDomainService; this.vesselDomianService = vesselDomianService; this.companyDomainService = companyDomainService; this.currencyDomainService = currencyDomainService; this.goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; this.tankDomainService = tankDomainService; this.activityLocationDomainService = activityLocationDomainService; this.offhireManagementSystemDomainService = offhireManagementSystemDomainService; this.voyageDomianService = voyageDomianService; this.offhireDomainService.SetConfigurator(offhireConfigurator); }
public OffhireFactory( IEntityConfigurator<Offhire> offhireConfigurator, IWorkflowRepository workflowRepository, IOffhireDomainService offhireDomainService, IVesselInCompanyDomainService vesselDomainService, ICompanyDomainService companyDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService, IOffhireManagementSystemDomainService offhireManagementSystemDomainService, IVoyageDomainService voyageDomainService, IActivityLocationDomainService activityLocationDomainService) { this.offhireConfigurator = offhireConfigurator; this.workflowRepository = workflowRepository; this.offhireDomainService = offhireDomainService; this.vesselDomainService = vesselDomainService; this.companyDomainService = companyDomainService; this.tankDomainService = tankDomainService; this.currencyDomainService = currencyDomainService; this.goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; this.offhireManagementSystemDomainService = offhireManagementSystemDomainService; this.voyageDomainService = voyageDomainService; this.activityLocationDomainService = activityLocationDomainService; }
// private readonly IApprovableDomainService _approvableDomainService; // private readonly IGoodPartyAssignmentDomainService _goodPartyAssignmentDomainService; public OrderApplicationService(IOrderRepository orderRepository, IUnitOfWorkScope unitOfWorkScope, // IGoodPartyAssignmentDomainService goodPartyAssignmentDomainService, //IFuelUserRepository userRepository, IVesselInCompanyDomainService vesselDomainService, IGoodDomainService goodDomainService, IOrderFactory iOrderFactory, ICompanyDomainService companyDomainService, IOrderItemDomainService orderItemDomainService, IEntityConfigurator<Order> orderConfigurator //,IApprovableDomainService approvableDomainService ) { this.orderRepository = orderRepository; this.vesselDomainService = vesselDomainService; this.goodDomainService = goodDomainService; this.iOrderFactory = iOrderFactory; this.unitOfWorkScope = unitOfWorkScope; this.companyDomainService = companyDomainService; this.orderItemDomainService = orderItemDomainService; this.orderConfigurator = orderConfigurator; // _approvableDomainService = approvableDomainService; // _goodPartyAssignmentDomainService = goodPartyAssignmentDomainService; }
public VesselFacadeService(IVesselInCompanyDomainService vesselService, ICompanyDomainService iCompanyDomainService, IFacadeMapper<VesselInCompany, VesselDto> mapper) { _vesselService = vesselService; _iCompanyDomainService = iCompanyDomainService; Mapper = mapper; }
public CompanyFacadeService( ICompanyDomainService companyDomainService, IVesselInCompanyDomainService vesselDomainService, IFacadeMapper<Company, CompanyDto> mapper, IVesselToVesselDtoMapper vesselDtoMapper) { _companyDomainService = companyDomainService; this.vesselDomainService = vesselDomainService; _mapper = mapper; this.vesselDtoMapper = vesselDtoMapper; }
internal Offhire( long referenceNumber, DateTime startDateTime, DateTime endDateTime, Company introducer, VesselInCompany vesselInCompany, Voyage voyage, ActivityLocation offhireLocation, DateTime voucherDate, Currency voucherCurrency, //string pricingReferenceNumber, //OffHirePricingType pricingReferenceType, IOffhireDomainService offhireDomainService, IOffhireManagementSystemDomainService offhireManagementSystemDomainService, IVesselInCompanyDomainService vesselDomainService, IVoyageDomainService voyageDomainService, ICompanyDomainService companyDomainService, IActivityLocationDomainService activityLocationDomainService, ICurrencyDomainService currencyDomainService) : this() { //var pricingReference = new OffhirePricingReference() { Type = pricingReferenceType, Number = pricingReferenceNumber }; this.validateCreation( referenceNumber, startDateTime, endDateTime, introducer, vesselInCompany, voyage, offhireLocation, voucherDate, voucherCurrency, //pricingReference, offhireDomainService, offhireManagementSystemDomainService, vesselDomainService, voyageDomainService, companyDomainService, activityLocationDomainService, currencyDomainService); this.ReferenceNumber = referenceNumber; this.StartDateTime = startDateTime; this.EndDateTime = endDateTime; this.IntroducerType = offhireDomainService.GetCharteringPartyType(vesselInCompany); this.Introducer = introducer; this.VesselInCompany = vesselInCompany; this.Voyage = voyage; this.OffhireLocation = offhireLocation; this.VoucherDate = voucherDate; this.VoucherCurrencyId = voucherCurrency.Id; this.VoucherCurrency = voucherCurrency; this.PricingReference = this.createPricingReference(introducer, vesselInCompany, this.IntroducerType, voyage, startDateTime, offhireDomainService); }
public CharterInApplicationService(ICharterInRepository charterInRepository, ICharterInToDtoMapper charterInToDtoMapper, IUnitOfWorkScope unitOfWorkScope, IWorkflowRepository workflowRepository, ICharterOutDomainService charterOutDomainService, ICharterInDomainService charterInDomainService, IEventPublisher eventPublisher, IVesselInCompanyDomainService vesselInCompanyDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { this._charterInRepository = charterInRepository; this._charterInToDtoMapper = charterInToDtoMapper; this._unitOfWorkScope = unitOfWorkScope; _charterFactory = new CharterFactory(workflowRepository, charterInDomainService, charterOutDomainService, eventPublisher, vesselInCompanyDomainService, inventoryOperationNotifier); }
public FuelReportCompanyFacadeService( ICompanyDomainService companyDomainService, IVesselInCompanyDomainService vesselDomainService, IFacadeMapper<Company, CompanyDto> companyMapper, IFacadeMapper<VesselInCompany, VesselDto> vesselMapper) { this.companyDomainService = companyDomainService; this.companyMapper = companyMapper; this.vesselDomainService = vesselDomainService; this.vesselMapper = vesselMapper; }
public CharterFactory(IWorkflowRepository workflowRepository, ICharterInDomainService charterInDomainService, ICharterOutDomainService charterOutDomainService, IEventPublisher eventPublisher, IVesselInCompanyDomainService vesselInCompanyDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { _workflowRepository = workflowRepository; _charterInDomainService = charterInDomainService; _charterOutDomainService = charterOutDomainService; _eventPublisher = eventPublisher; this.vesselInCompanyDomainService = vesselInCompanyDomainService; this.inventoryOperationNotifier = inventoryOperationNotifier; }
public ApprovableScrapDomainService( IVesselInCompanyDomainService vesselDomainService, IInventoryOperationNotifier inventoryOperationNotifier, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.vesselDomainService = vesselDomainService; this.inventoryOperationNotifier = inventoryOperationNotifier; this.tankDomainService = tankDomainService; this.currencyDomainService = currencyDomainService; this.goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; }
public OffhireManagementSystemDomainService( IRepository<ActivityLocation> activityLocationRepository, //IActivityLocationDomainService activityLocationDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService, ITankDomainService tankDomainService, IVesselInCompanyDomainService vesselDomainService, IRepository<Good> goodRepository, IRepository<GoodUnit> companyGoodUnitRepository) { //this.activityLocationDomainService = activityLocationDomainService; this.activityLocationRepository = activityLocationRepository; this.goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; this.tankDomainService = tankDomainService; this.vesselDomainService = vesselDomainService; this.goodRepository = goodRepository; this.companyGoodUnitRepository = companyGoodUnitRepository; }
internal Scrap( VesselInCompany vesselInCompany, Company secondParty, DateTime scrapDate, IScrapDomainService scrapDomainService, IVesselInCompanyDomainService vesselDomainService, ICompanyDomainService companyDomainService) : this() { this.validateCreation(vesselInCompany, secondParty, scrapDate, scrapDomainService, vesselDomainService, companyDomainService); this.ScrapDate = scrapDate; this.VesselInCompany = vesselInCompany; this.SecondParty = secondParty; this.ScrapDetails = new List<ScrapDetail>(); this.ApproveWorkflows = new List<ScrapWorkflowLog>(); }
public InvoiceApplicationService(IInvoiceRepository invoiceRepository, IUnitOfWorkScope unitOfWorkScope, // IGoodPartyAssignmentDomainService goodPartyAssignmentDomainService, //IUserRepository userRepository, IVesselInCompanyDomainService vesselDomainService, IGoodDomainService goodDomainService, IInvoiceFactory invoiceFactory, ICompanyDomainService companyDomainService, IInvoiceDomainService invoiceDomainService, IInvoiceItemDomainService invoiceItemDomainService, IEffectiveFactorDomainService effectiveFactorDomainService, ICompanyRepository companyRepository //,IApprovableDomainService approvableDomainService , IOrderRepository orderRepository, IGoodRepository goodRepository, ICurrencyDomainService currencyDomainService, IInvoiceAdditionalPriceDomainService invoiceAdditionalPriceDomainService, IGoodUnitConvertorDomainService goodUnitConvertorDomainService, IBalanceDomainService balanceDomainService, IEntityConfigurator<Invoice> invoiceConfigurator) { this.invoiceRepository = invoiceRepository; this.vesselDomainService = vesselDomainService; this.goodDomainService = goodDomainService; this.invoiceFactory = invoiceFactory; this.unitOfWorkScope = unitOfWorkScope; this.companyDomainService = companyDomainService; this.invoiceDomainService = invoiceDomainService; this.invoiceItemDomainService = invoiceItemDomainService; this.effectiveFactorDomainService = effectiveFactorDomainService; this.companyRepository = companyRepository; this.orderRepository = orderRepository; this.goodRepository = goodRepository; this.currencyDomainService = currencyDomainService; this.invoiceAdditionalPriceDomainService = invoiceAdditionalPriceDomainService; this.goodUnitConvertorDomainService = goodUnitConvertorDomainService; this.balanceDomainService = balanceDomainService; this.invoiceConfigurator = invoiceConfigurator; // _approvableDomainService = approvableDomainService; // _goodPartyAssignmentDomainService = goodPartyAssignmentDomainService; }
public ScrapFactory( IEntityConfigurator<Scrap> scrapConfigurator, IWorkflowRepository workflowRepository, IScrapDomainService scrapDomainService, IVesselInCompanyDomainService vesselDomainService, ICompanyDomainService companyDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.scrapConfigurator = scrapConfigurator; this.workflowRepository = workflowRepository; this.vesselDomainService = vesselDomainService; this.companyDomainService = companyDomainService; this.tankDomainService = tankDomainService; this.currencyDomainService = currencyDomainService; this.goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; this.scrapDomainService = scrapDomainService; }
public OffhireDomainService( IOffhireRepository offhireRepository, IRepository<OffhireDetail> offhireDetailRepository, ICharteringDomainService charteringDomainService, IInventoryManagementDomainService inventoryManagementDomainService, IFuelReportDomainService fuelReportDomainService, IVesselInCompanyDomainService vesselDomainService, IVoyageDomainService voyageDomainService, ICurrencyDomainService currencyDomainService) { this.offhireRepository = offhireRepository; this.offhireDetailRepository = offhireDetailRepository; this.charteringDomainService = charteringDomainService; this.inventoryManagementDomainService = inventoryManagementDomainService; this.fuelReportDomainService = fuelReportDomainService; this.vesselDomainService = vesselDomainService; this.voyageDomainService = voyageDomainService; this.currencyDomainService = currencyDomainService; this.isOffhireOpen = new IsOffhireOpen(); this.isOffhireSubmitted = new IsOffhireSubmitted(); this.isOffhireSubmitRejected = new IsOffhireSubmitRejected(); this.isOffhireCancelled = new IsOffhireCancelled(); }
public ScrapApplicationService( IScrapFactory scrapFactory, IScrapRepository scrapRepository, IUnitOfWorkScope unitOfWorkScope, IScrapDomainService scrapDomainService, IVesselInCompanyDomainService vesselDomianService, ICompanyDomainService companyDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService, ITankDomainService tankDomainService) { this.scrapFactory = scrapFactory; this.scrapRepository = scrapRepository; this.unitOfWorkScope = unitOfWorkScope; this.scrapDomainService = scrapDomainService; this.vesselDomianService = vesselDomianService; this.companyDomainService = companyDomainService; this.currencyDomainService = currencyDomainService; this.goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; this.tankDomainService = tankDomainService; }
public FuelReportVesselFacadeService(IVesselInCompanyDomainService appService, IFacadeMapper<VesselInCompany, VesselDto> mapper) { this._domainService = appService; this._mapper = mapper; }
//================================================================================ private void validateVesselExistance(VesselInCompany vesselInCompany, IVesselInCompanyDomainService vesselDomainService) { if (vesselInCompany == null) throw new BusinessRuleException("", "Vessel must be selected."); if (vesselDomainService.Get(vesselInCompany.Id) == null) { throw new ObjectNotFound("Vessel Not Found"); } }
//================================================================================ public void Submit(SubmittedState submittedState, IVesselInCompanyDomainService vesselDomainService, IInventoryOperationNotifier eventNotifier, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateToBeOpenOrSubmitRejected(); this.validateApproveAction(vesselDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); //Perform Submit operations. //foreach (var scrapDetail in this.ScrapDetails) //{ // scrapDetail.InventoryOperations.AddRange(eventNotifier.NotifySubmittingScrapDetail(scrapDetail)); //} if (this.isOpen.IsSatisfiedBy(this)) vesselDomainService.ScrapVessel(this.VesselInCompanyId); var invResult = eventNotifier.NotifySubmittingScrap(this); this.InventoryOperations.AddRange(invResult); this.setState(submittedState); }
//================================================================================ private void validateVesselOwnedState(VesselInCompany vesselInCompany, IVesselInCompanyDomainService vesselDomainService) { VesselStates vesselState = vesselDomainService.GetVesselCurrentState(vesselInCompany.Id); if (this.isOpen.IsSatisfiedBy(this) && vesselState != VesselStates.Owned) { throw new BusinessRuleException("", "Vessel is not in Owned state."); } }
//================================================================================ private void validateVesselExistance(VesselInCompany vesselInCompany, IVesselInCompanyDomainService vesselDomainService) { VesselInCompany fetchedVesselInCompany = vesselDomainService.Get(vesselInCompany.Id); if (fetchedVesselInCompany == null) { throw new ObjectNotFound("Vessel Not Found"); } }
//================================================================================ private void validateUpdate( VesselInCompany vesselInCompany, Company secondParty, DateTime scrapDate, IScrapDomainService scrapDomainService, IVesselInCompanyDomainService vesselDomainService, ICompanyDomainService companyDomainService) { this.validateToBeOpen(); this.validateCompanyExistance(secondParty, companyDomainService); this.validateVesselExistance(vesselInCompany, vesselDomainService); this.validateVesselOwnedState(vesselInCompany, vesselDomainService); this.validateScrapDateToBeAfterTheLastVesselActivity(scrapDate, vesselInCompany, vesselDomainService); this.validateToBeTheOnlyScrapForVessel(vesselInCompany, scrapDomainService); }
//================================================================================ public void Update( VesselInCompany vesselInCompany, Company secondParty, DateTime scrapDate, IScrapDomainService scrapDomainService, IVesselInCompanyDomainService vesselDomainService, ICompanyDomainService companyDomainService) { this.validateUpdate(vesselInCompany, secondParty, scrapDate, scrapDomainService, vesselDomainService, companyDomainService); this.VesselInCompany = vesselInCompany; this.SecondParty = secondParty; this.ScrapDate = scrapDate; }
//================================================================================ private void validateScrapDateToBeAfterTheLastVesselActivity(DateTime scrapDate, VesselInCompany vesselInCompany, IVesselInCompanyDomainService vesselDomainService) { List<VesselStates> vesselStatesLog = vesselDomainService.GetVesselStatesLog(vesselInCompany.Id, scrapDate, null); if (!(vesselStatesLog.Count == 1 && vesselStatesLog[0] == VesselStates.Owned)) { throw new BusinessRuleException("", "The Scrap Date is an invalid date for scrapping vessel."); } }
//================================================================================ private void validateCreation( long referenceNumber, DateTime startDateTime, DateTime endDateTime, Company introducer, VesselInCompany vesselInCompany, Voyage voyage, ActivityLocation offhireLocation, DateTime voucherDate, Currency voucherCurrency, //OffhirePricingReference pricingReference, IOffhireDomainService offhireDomainService, IOffhireManagementSystemDomainService offhireManagementSystemDomainService, IVesselInCompanyDomainService vesselDomainService, IVoyageDomainService voyageDomainService, ICompanyDomainService companyDomainService, IActivityLocationDomainService activityLocationDomainService, ICurrencyDomainService currencyDomainService) { this.validateCompanyExistance(introducer, companyDomainService); this.validateOffhireReference(referenceNumber, introducer, offhireManagementSystemDomainService); this.validateOffhireUniquenessInFuelManagementDomain(referenceNumber, introducer, offhireDomainService); this.validateCurrency(voucherCurrency, currencyDomainService); this.validateVoucherDate(voucherDate); this.validateVesselExistance(vesselInCompany, vesselDomainService); this.validateVesselInCompanyExistance(vesselInCompany, introducer, companyDomainService); this.validateVoyageExistance(voyage, voyageDomainService); this.validateVoyageInVesselOfCompanyExistance(voyage, vesselInCompany); this.validateOffhireDurationInVoyage(startDateTime, endDateTime, voyage); this.validateActivityLocation(offhireLocation, activityLocationDomainService); CharteringPartyType charteringPartyType = offhireDomainService.GetCharteringPartyType(vesselInCompany); var offhirePricingType = offhireDomainService.GetPricingType(introducer, vesselInCompany, startDateTime); this.validateOffhirePricingType(introducer, vesselInCompany, voyage, startDateTime, charteringPartyType, offhirePricingType, offhireDomainService); }
//================================================================================ public void ValidateMiddleApprove(IVesselInCompanyDomainService vesselDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateToBeOpen(); this.validateApproveAction(vesselDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); }
//================================================================================ private void validateBeingSubmitRejectedIfIsInScrappedState(VesselInCompany vesselInCompany, IVesselInCompanyDomainService vesselDomainService) { VesselStates vesselState = vesselDomainService.GetVesselCurrentState(vesselInCompany.Id); if (vesselState == VesselStates.Scrapped) if (!this.isSubmitRejected.IsSatisfiedBy(this)) { throw new BusinessRuleException("", "The Scrap State is not rejected."); } }
//================================================================================ private void validateApproveAction(IVesselInCompanyDomainService vesselDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateVesselOwnedState(this.VesselInCompany, vesselDomainService); this.validateBeingSubmitRejectedIfIsInScrappedState(this.VesselInCompany, vesselDomainService); this.validateDetailsExistance(); this.validateDetails(tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); }
public void Resolve(ICharterInDomainService charterInDomainService, ICharterOutDomainService charterOutDomainService , IEventPublisher eventPublisher, IVesselInCompanyDomainService vesselInCompanyDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { _charterInDomainService = charterInDomainService; _charterOutDomainService = charterOutDomainService; _eventPublisher = eventPublisher; InventoryOperationNotifier = inventoryOperationNotifier; VesselInCompanyDomainService = vesselInCompanyDomainService; }