コード例 #1
0
        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;
        }
コード例 #2
0
ファイル: FuelLoader.cs プロジェクト: NextStalker/BBAuto
 public FuelLoader(string path, FuelReport fuelReport)
 {
     this.path = path;
     this.fuelReport = fuelReport;
     erorrs.Clear();
 }
コード例 #3
0
 public virtual void Reject(FuelReport fuelReport)
 {
     throw new InvalidStateException("Reject", string.Format("Cannot Reject {0} State", fuelReport.State.ToString()));
 }
コード例 #4
0
 public virtual void Cancel(FuelReport fuelReport)
 {
     throw new InvalidStateException("Cancel", string.Format("Cannot Cancel {0} State", fuelReport.State.ToString()));
 }
コード例 #5
0
 public virtual void Approve(FuelReport fuelReport, IApprovableFuelReportDomainService approveService)
 {
     throw new InvalidStateException("Approve", string.Format("Cannot Approve {0} State", fuelReport.State.ToString()));
 }
コード例 #6
0
 public override void Cancel(FuelReport fuelReport)
 {
     fuelReport.Invalidate(this.FuelReportStateFactory.CreateInvalidState());
 }
コード例 #7
0
 public override void Approve(FuelReport fuelReport, IApprovableFuelReportDomainService approveService)
 {
     approveService.Submit(fuelReport, this.FuelReportStateFactory.CreateSubmitState());
 }
コード例 #8
0
 public override void Reject(FuelReport fuelReport)
 {
     fuelReport.SubmittedReject(this.FuelReportStateFactory.CreateSubmitRejectedState());
 }
コード例 #9
0
 public override void Approve(FuelReport fuelReport, IApprovableFuelReportDomainService approvableFuelReportDomainService)
 {
     fuelReport.Close(this.FuelReportStateFactory.CreateClosedState());
 }
コード例 #10
0
ファイル: FuelLoader.cs プロジェクト: BBraunRussia/BBAuto
 public FuelLoader(string path, FuelReport fuelReport)
 {
     this.path       = path;
     this.fuelReport = fuelReport;
     erorrs.Clear();
 }
コード例 #11
0
        private void Calculate(object sender, EventArgs e)
        {
            fuelReportTxtBox.ForeColor = Color.Black;
            fuelReportTxtBox.Text      = "";

            var            validator = new FuelParameterValidator(this);
            FuelParameters para      = null;

            try
            {
                para = validator.Validate();
            }
            catch (InvalidUserInputException ex)
            {
                this.ShowWarning(ex.Message);
                return;
            }

            var altnRoutes = AltnControl.Routes;

            if (altnRoutes.Any(r => r == null))
            {
                this.ShowWarning("All alternate routes must be entered.");
                return;
            }

            if (RouteToDest == null)
            {
                this.ShowWarning("Route to destination must be entered.");
                return;
            }

            var windTables = windTableLocator.Instance;

            if (windTables is DefaultWindTableCollection)
            {
                var result = this.ShowDialog(
                    "The wind data has not been downloaded. " +
                    "Continue to calculate and ignore wind aloft?",
                    MsgBoxIcon.Info,
                    "",
                    DefaultButton.Button1,
                    "Yes", "No", "Cancel");

                if (result != MsgBoxResult.Button1)
                {
                    return;
                }
            }

            FuelReport fuelReport = null;

            try
            {
                fuelReport = new FuelReportGenerator(
                    airportList,
                    new BasicCrzAltProvider(),
                    windTables,
                    RouteToDest.Expanded,
                    altnRoutes,
                    para).Generate();
            }
            catch (InvalidPlanAltitudeException)
            {
                this.ShowWarning("Cannot find a valid cruising altitude.");
                return;
            }

            var ac = GetCurrentAircraft().Config;

            if (fuelReport.TotalFuel > ac.MaxFuelKg)
            {
                var msg = InsufficientFuelMsg(fuelReport.TotalFuel, ac.MaxFuelKg, WeightUnit);
                this.ShowInfo(msg, "Insufficient fuel");
                return;
            }

            string outputText = fuelReport.ToString(WeightUnit);

            fuelReportTxtBox.Text = "\n" + outputText.ShiftToRight(20);

            AircraftRequest = new AircraftRequest(
                acListComboBox.Text,
                registrationComboBox.Text,
                para.Zfw + fuelReport.TakeoffFuel,
                para.Zfw + fuelReport.PredictedLdgFuel,
                para.Zfw,
                WeightUnit);

            AircraftRequestChanged?.Invoke(this, EventArgs.Empty);
            SaveStateToFile();
            ScrollToBottom();
        }