示例#1
0
    public TransportPlan GeFastest(int distance, int maxTime)
    {
        TransportPlan fastest       = new TransportPlan(Transport.TYPE.NONE, -1, -1);
        float         speedValueMax = 0f;
        int           iteration     = 0;

        foreach (Transport t in Transports)
        {
            if (iteration++ < 1)
            {
                continue;
            }
            int timeRequiered = GetTravelTime(distance, t);
            if (t.Speed > speedValueMax &&
                freeSpaces[(int)t.TransportType] > 0 &&
                timeRequiered <= maxTime)
            {
                fastest.Transport     = t.TransportType;
                fastest.Safety        = t.Safety.Value;
                fastest.TimeRequiered = timeRequiered;
                speedValueMax         = fastest.Safety;
            }
        }
        freeSpaces[(int)fastest.Transport]--;
        return(fastest);
    }
示例#2
0
    public TransportPlan GetLeastPolluting(int distance, int maxTime)
    {
        TransportPlan leastPolluting = new TransportPlan(Transport.TYPE.NONE, -1, -1);
        float         pollutionValue = 1f;
        int           iteration      = 0;

        foreach (Transport t in Transports)
        {
            if (iteration++ < 1)
            {
                continue;
            }
            int timeRequiered = GetTravelTime(distance, t);
            if (t.Safety.Value < pollutionValue &&
                freeSpaces[(int)t.TransportType] > 0 &&
                timeRequiered <= maxTime)
            {
                leastPolluting.Transport     = t.TransportType;
                leastPolluting.Safety        = t.Safety.Value;
                leastPolluting.TimeRequiered = timeRequiered;
                pollutionValue = t.Safety.Value;
            }
        }
        freeSpaces[(int)leastPolluting.Transport]--;
        return(leastPolluting);
    }
示例#3
0
    public TransportPlan GetSafest(int distance, int maxTime)
    {
        TransportPlan safest      = new TransportPlan(Transport.TYPE.NONE, -1, -1);
        float         safestValue = 0f;
        int           iteration   = 0;

        foreach (Transport t in Transports)
        {
            if (iteration++ < 1)
            {
                continue;
            }
            int timeRequiered = GetTravelTime(distance, t);
            if (t.Safety.Value > safestValue &&
                freeSpaces[(int)t.TransportType] > 0 &&
                timeRequiered <= maxTime)
            {
                safest.Transport     = t.TransportType;
                safest.Safety        = t.Safety.Value;
                safest.TimeRequiered = timeRequiered;
                safestValue          = safest.Safety;
            }
        }
        freeSpaces[(int)safest.Transport]--;
        return(safest);
    }
示例#4
0
        public void TransportPlan(string ChannelId, string ChannelRef, string TransactionId, TransportPlanHeadDoc aTransportPlanHeadDoc)
        {
            // transform external object to packaged object understandable by BizTalk
            TransportPlan part = new TransportPlan();

            part.ChannelId             = ChannelId;
            part.ChannelRef            = ChannelRef;
            part.TransactionId         = TransactionId;
            part.aTransportPlanHeadDoc = aTransportPlanHeadDoc;

            ArrayList inHeaders            = null;
            ArrayList inoutHeaders         = null;
            ArrayList inoutHeaderResponses = null;
            ArrayList outHeaderResponses   = null;

            SoapUnknownHeader[] unknownHeaderResponses = null;

            // Parameter information
            object[]    invokeParams  = new object[] { part };
            ParamInfo[] inParamInfos  = new ParamInfo[] { new ParamInfo(typeof(TransportPlan), "part") };
            ParamInfo[] outParamInfos = null;

            // Define the assembly (port)
            // NOTE! This line is only a sample, it needs to be modified to match your orchestration
            // at least regarding your project name and the public access token
            string bodyTypeAssemblyQualifiedName = "YOUR_ORCHESTRATION_PROJECT.FromWMSschema+TransportPlan, YOUR_ORCHESTRATION_PROJECT, Version=1.0.0.0, Culture=neutral, PublicKeyToken=" +
                                                   "92267163d02e63da";

            // BizTalk invocation
            // NOTE! This line is only a sample, it needs to be modified to match your orchestration
            // regarding the operation to call
            this.Invoke("Operation_1", invokeParams, inParamInfos, outParamInfos, 0, bodyTypeAssemblyQualifiedName, inHeaders, inoutHeaders, out inoutHeaderResponses, out outHeaderResponses, null, null, null, out unknownHeaderResponses, true, false);
        }
示例#5
0
        public ActionResult Edit(TransportPlan model)
        {
            if (!ModelState.IsValid)
            {
                View(model);
            }


            var existing = transportPlanRepository.Get(model.Id);

            existing.Name      = model.Name;
            existing.startTime = model.startTime;
            existing.stopTime  = model.stopTime;
            existing.Remark    = model.Remark;

            transportPlanRepository.Update(existing);

            return(RedirectToAction("Index"));
        }
示例#6
0
        public ActionResult Create(TransportPlan model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            transportPlanRepository.Add(model);


            auditLogRepository.Add(AuditLogBuilder.Builder()
                                   .User(HttpContext.User.Identity.Name)
                                   .Added(typeof(TransportPlan), model.Name)
                                   .With(new ChangeInfo().AddChange(() => model.Name).ToJson())
                                   .Build());

            logger.Info("User '{0}' created TransportPlan '{1}'.", Identity.Name, model.Name);

            return(RedirectToAction("Index"));
        }