Ejemplo n.º 1
0
        private async Task <string> Depart(IVessel vessel, string vesselName, DateTime ts)
        {
            var wait = await vessel.GetTicksToWait();

            if (wait == 0)
            {
                var r          = new Random();
                int routeIndex = r.Next(0, routes.Count - 1);
                await vessel.SetRoute(routes[routeIndex]);

                AssignAllocationAsync(vessel, ts);
                var obj = new IntakeEventModel();
                obj.VesselCode    = vesselName;
                obj.DepartureDate = ts;
                obj.Intake        = await vessel.GetCapacity();

                await new KafkaProducer().SendToKafka(JsonConvert.SerializeObject(obj), "intake");
                await vessel.Depart(ts);

                await vessel.ResetDistanceOnRoute();

                return(vesselName);
            }
            else
            {
                //_logger.LogInformation(vesselName+" Waiting");
                var i = wait - 1;
                await vessel.SetTicksToWait(i);
            }

            return("");
        }