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; }
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); }
// 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 InvoiceItemDomainService(IInvoiceRepository invoiceRepository, IRepository<InvoiceItem> invoiceItemRepository, IOrderRepository orderRepository, IGoodDomainService goodDomainService, IGoodUnitConvertorDomainService goodUnitConvertorDomainService) { this.invoiceRepository = invoiceRepository; this.orderRepository = orderRepository; this.goodDomainService = goodDomainService; this.goodUnitConvertorDomainService = goodUnitConvertorDomainService; this.invoiceItemRepository = invoiceItemRepository; }
public ApprovableOffhireDomainService( IOffhireDomainService offhireDomainService, IFinanceNotifier eventNotifier, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.offhireDomainService = offhireDomainService; this.eventNotifier = eventNotifier; this.tankDomainService = tankDomainService; this.currencyDomainService = currencyDomainService; this.goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; }
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 ScrapDetail(double rob, double price, Currency currency, Good good, GoodUnit unit, Tank tank, Scrap scrap, IScrapDomainService scrapDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) : this() { this.validateScrap(scrap, scrapDomainService); this.validateValues(rob, price, currency, good, unit, tank, scrap, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); this.ROB = rob; this.Price = price; this.Currency = currency; this.Good = good; this.Unit = unit; this.Tank = tank; this.Scrap = scrap; }
internal OffhireDetail(decimal quantity, decimal feeInVoucherCurrency, decimal feeInMainCurrency, Good good, GoodUnit unit, Tank tank, Offhire offhire, IOffhireDomainService offhireDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) : this() { this.validateOffhire(offhire, offhireDomainService); this.validateValues(quantity, feeInVoucherCurrency, feeInMainCurrency, good, unit, tank, offhire, offhireDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); this.Quantity = quantity; this.FeeInVoucherCurrency = feeInVoucherCurrency; this.FeeInMainCurrency = feeInMainCurrency; this.Good = good; this.Unit = unit; this.Tank = tank; this.Offhire = offhire; }
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 ApprovableFuelReportDomainService( IVoyageDomainService voyageDomainService, IFuelReportDomainService fuelReportDomainService, IInventoryOperationDomainService inventoryOperationDomainService, IGoodDomainService goodDomainService, IOrderDomainService orderDomainService, ICurrencyDomainService currencyDomainService, IBalanceDomainService balanceDomainService, IInventoryManagementDomainService inventoryManagementDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { this.voyageDomainService = voyageDomainService; this.fuelReportDomainService = fuelReportDomainService; this.inventoryOperationDomainService = inventoryOperationDomainService; this.goodDomainService = goodDomainService; this.orderDomainService = orderDomainService; this.inventoryOperationNotifier = inventoryOperationNotifier; this.currencyDomainService = currencyDomainService; this.balanceDomainService = balanceDomainService; this.inventoryManagementDomainService = inventoryManagementDomainService; }
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; }
//================================================================================ internal void Update(double rob, double price, Currency currency, Good good, GoodUnit unit, Tank tank, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateValues(rob, price, currency, good, unit, tank, this.Scrap, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); this.ROB = rob; this.Price = price; this.Currency = currency; this.Unit = unit; if (!this.isScrapSubmitRejected.IsSatisfiedBy(this.Scrap)) { this.Good = good; this.Tank = tank; } }
//================================================================================ public void Validate(ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateValues(this.ROB, this.Price, this.Currency, this.Good, this.Unit, this.Tank, this.Scrap, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); }
public GoodUnitConvertorDomainService(IGoodDomainService goodDomainService,IGoodUnitDomainService goodUnitDomainService) { _goodDomainService = goodDomainService; this.goodUnitDomainService = goodUnitDomainService; }
//================================================================================ public void ValidateMiddleApprove(IOffhireDomainService offhireDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateToBeOpen(); this.validateApproveAction(offhireDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); }
//=================================================================================== /// <summary> /// BR_FR39 /// </summary> private void validateFuelReportsOfPreviousDayForMandatoryType( IFuelReportDomainService fuelReportDomainService, IGoodDomainService goodDomainService) { return; var fuelReportsOfYesterday = fuelReportDomainService.GetFuelReportsFromYesterday(this); foreach (var yesterdayFuelReport in fuelReportsOfYesterday) { var mandatoryGoods = goodDomainService.GetMandatoryVesselGoods(this.VesselInCompanyId, yesterdayFuelReport.EventDate); //Validate the availability of all mandatory goods for previous day fuel report. if (mandatoryGoods.Count( mg => !yesterdayFuelReport.FuelReportDetails. Select(frd => frd.Good.Id).Contains(mg.Id)) > 0 ) throw new BusinessRuleException("BR_FR39", "Some mandatory fuels not found in fuel report of yesterday."); } }
//================================================================================ private void validateValues(double rob, double price, Currency currency, Good good, GoodUnit unit, Tank tank, Scrap scrap, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateTank(tank, scrap, tankDomainService); this.validateGood(good, goodDomainService); this.validateGoodInTank(tank, good, scrap); this.validateGoodToBeUniqueInDetails(good, scrap); this.validateROB(rob); this.validatePrice(price); this.validateCurrency(currency, currencyDomainService); this.validateUnit(unit, goodUnitDomainService); this.validateGoodUnitInCompany(scrap.VesselInCompany.Company, good, unit); }
//================================================================================ 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 ValidateMiddleApprove(IVesselInCompanyDomainService vesselDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateToBeOpen(); this.validateApproveAction(vesselDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); }
//================================================================================ public ScrapDetail UpdateDetail(long scrapDetailId, double rob, double price, Currency currency, Good good, GoodUnit unit, Tank tank, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { var scrapDetailToUpdate = this.findDetail(scrapDetailId); scrapDetailToUpdate.Update(rob, price, currency, good, unit, tank, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); return scrapDetailToUpdate; }
//================================================================================ private void validateDetails(IOffhireDomainService offhireDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.OffhireDetails.ForEach(sd => sd.Validate(offhireDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService)); }
//=================================================================================== public void Submit( FuelReportState entityNewState, IVoyageDomainService voyageDomainService, IFuelReportDomainService fuelReportDomainService, IInventoryOperationDomainService inventoryOperationDomainService, IGoodDomainService goodDomainService, IOrderDomainService orderDomainService, ICurrencyDomainService currencyDomainService, IBalanceDomainService balanceDomainService, IInventoryManagementDomainService inventoryManagementDomainService, IInventoryOperationNotifier inventoryOperationNotifier) { this.CheckToBeOperational(); validateSubmittingState( voyageDomainService, fuelReportDomainService, inventoryOperationDomainService, goodDomainService, orderDomainService, currencyDomainService, inventoryManagementDomainService); sendDataToBalancingDomainService(balanceDomainService); if (this.FuelReportType == FuelReportTypes.EndOfVoyage || this.FuelReportType == FuelReportTypes.EndOfYear || this.FuelReportType == FuelReportTypes.EndOfMonth) { var inventoryResult = inventoryOperationNotifier.NotifySubmittingFuelReportConsumption(this); this.ConsumptionInventoryOperations.Add(inventoryResult); } else { foreach (var fuelReportDetail in this.FuelReportDetails) { var inventoryResult = inventoryOperationNotifier.NotifySubmittingFuelReportDetail(fuelReportDetail, fuelReportDomainService); if (inventoryResult != null) fuelReportDetail.InventoryOperations.AddRange(inventoryResult); } } setEntityState(entityNewState); }
//================================================================================ private void validateGood(Good good, IGoodDomainService goodDomainService) { if (good == null) throw new BusinessRuleException("", "Good must be selected."); if (goodDomainService.Get(good.Id) == null) throw new ObjectNotFound("Good", good.Id); }
//================================================================================ private void validateDetails(ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.ScrapDetails.ForEach(sd => sd.Validate(tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService)); }
//================================================================================ public OffhireDetail UpdateDetail( long offhireDetailId, decimal feeInVoucherCurrency, decimal feeInMainCurrency, IOffhireDomainService offhireDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { OffhireDetail offhireDetailToUpdate = this.findDetail(offhireDetailId); offhireDetailToUpdate.Update(feeInVoucherCurrency, feeInMainCurrency, offhireDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); return offhireDetailToUpdate; }
//================================================================================ private void validateApproveAction( IOffhireDomainService offhireDomainService, ITankDomainService tankDomainService, ICurrencyDomainService currencyDomainService, IGoodDomainService goodDomainService, IGoodUnitDomainService goodUnitDomainService) { this.validateDetailsExistance(); this.validateDetails(offhireDomainService, tankDomainService, currencyDomainService, goodDomainService, goodUnitDomainService); }
//================================================================================ 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 validateSubmittingState(IVoyageDomainService voyageDomainService, IFuelReportDomainService fuelReportDomainService, IInventoryOperationDomainService inventoryOperationDomainService, IGoodDomainService goodDomainService, IOrderDomainService orderDomainService, ICurrencyDomainService currencyDomainService, IInventoryManagementDomainService inventoryManagementDomainService) { validateToBeOpenOrSubmitRejected(); validateVoyageId(this.VoyageId, voyageDomainService); //BR_FR37 validatePreviousEndedVoyagesToBeIssued( voyageDomainService, fuelReportDomainService, inventoryOperationDomainService); //BR_FR38 validatePreviousFuelReportsToBeFinalApproved(fuelReportDomainService); //BR_FR39 validateFuelReportsOfPreviousDayForMandatoryType( fuelReportDomainService, goodDomainService); var isTheFirstReport = isCurrentFuelReportTheFirstOne(fuelReportDomainService); FuelReport previousFuelReport = getYesterdayLastFuelReport(fuelReportDomainService); validateFuelReportOfTheDayBefore(previousFuelReport, isTheFirstReport); foreach (var detailItem in this.FuelReportDetails) { FuelReportDetail fuelReportDetailOfYesterdayForRelevantGood = getGoodRelevantFuelReportDetailOfYesterday( detailItem.GoodId, isTheFirstReport, previousFuelReport); //All Edit Rules must be checked for details. detailItem.ValidateCurrentValues( fuelReportDetailOfYesterdayForRelevantGood, isTheFirstReport, currencyDomainService); detailItem.ValidateTransferReferences(orderDomainService, inventoryManagementDomainService); detailItem.ValidateReceiveReferences(orderDomainService); detailItem.ValidateCorrectionReferences(isTheFirstReport, voyageDomainService, fuelReportDomainService); } }