Beispiel #1
0
        internal FuelReport(
            long id,
            string code,
            string description,
            DateTime eventDate,
            DateTime reportDate,
            long vesselInCompanyId,
            long? voyageId,
            FuelReportTypes fuelReportType,
            States state)
            : this()
        {
            //Id = id;

            Code = code;

            Description = description;

            EventDate = eventDate;

            ReportDate = reportDate;

            VesselInCompanyId = vesselInCompanyId;

            VoyageId = voyageId;

            FuelReportType = fuelReportType;

            State = state;
        }
        public FuelReport CreateFuelReport(
            string code,
            string description,
            DateTime eventDate,
            DateTime reportDate,
            long vesselInCompanyId,
            long? voyageId,
            FuelReportTypes fuelReportType,
            States state)
        {
            var vesselInCompany = vesselInCompanyRepository.First(vic => vic.Id == vesselInCompanyId);

            var fuelReport = new FuelReport(
                0,
                code,
                description,
                eventDate,
                reportDate,
                vesselInCompany,
                voyageId,
                fuelReportType,
                state);

            var init = this.workflowRepository.Single(c =>
                    c.WorkflowEntity == WorkflowEntities.FuelReport &&
                    c.CurrentWorkflowStage == WorkflowStages.Initial);

            if (init == null)
                throw new ObjectNotFound("FuelReportInitialStep");

            var fuelReportWorkflow = new FuelReportWorkflowLog(-1, WorkflowEntities.FuelReport, DateTime.Now, WorkflowActions.Init,
                //TODO: Fake ActorId
                    1101, "", init.Id, true);

            fuelReport.ApproveWorkFlows.Add(fuelReportWorkflow);

            fuelReportConfigurator.Configure(fuelReport);

            return fuelReport;
        }