예제 #1
0
        [Route("newtask/{plane}/{dest}")] //ВНЕШКА  этот пост используется сторонними системами, для постановки задания
        public string Post(int plane, int dest)
        {
            var bl         = new BusLog();
            var Busses     = new List <Bus>();
            var filebusses = new FileCSV();

            Busses = filebusses.ReadFromCSVBus();
            if (Busses.Count == 0)
            {
                bl.WriteToLog("Шесть автобусов на стоянке. ID автобусов от 1 до 6");
                for (var j = 1; j <= 6; j++)
                {
                    var bus = new Bus()
                    {
                        busId = j, isFree = 1
                    };
                    Busses.Add(bus);
                    filebusses.WriteToCSVBus(j, 1);
                }
            }
            bl.WriteToLog("Получено задание. ID самолета - " + plane);
            int i = 0;

            while (i < Busses.Count() && Busses[i].isFree != 1)
            {
                i++;
            }
            if (Busses[i].isFree == 1)
            {
                bl.WriteToLog("Для самолета " + plane + " назначен автобус. ID автобуса - " + Busses[i].busId + ". Вместимость - 30 пассажиров.");
                var filetasks = new FileCSV();
                Busses[i].planeId = plane;
                Busses[i].dest    = dest;
                filetasks.ChangeBusStatusCSV(Busses[i].busId);
                if (dest == 0)
                {
                    Busses[i].AllowMoving("BGR", "GT1");
                    Busses[i].SendLocation("BGR", "GT1", "Moving");
                }
                else
                {
                    Busses[i].FindPlaneLocationCode();
                    Busses[i].AllowMoving("BGR", Busses[i].planelocationcode);
                    Busses[i].SendLocation("BGR", Busses[i].planelocationcode, "Moving");
                }
                Thread busthread;
                busthread = new Thread(new ThreadStart(Busses[i].Execute));
                busthread.Start();
                return("busID=" + Busses[i].busId + ";amountPassengers=30;flagMoving=true");
            }
            else
            {
                bl.WriteToLog("Нет свободных автобусов для самолета " + plane);
                return("1");
            }
        }
예제 #2
0
        [Route("setpassenger")] //ВНЕШКА  этот пост используется системой пассажир для посадки в автобус
        public void Post([FromBody] ValueTuple <Guid, Guid> pastuple)
        {
            var filepassangers = new FileCSV();
            var bl             = new BusLog();
            var pas            = new Passanger();

            byte[] p    = pastuple.Item1.ToByteArray();
            int    pint = BitConverter.ToInt32(p, 0);

            byte[] b    = pastuple.Item2.ToByteArray();
            int    bint = BitConverter.ToInt32(b, 0);


            pas.passangerId = pint;
            pas.busId       = bint;
            bl.WriteToLog("Автобус " + bint + " принялна борт пассажира " + pint + ".");
            filepassangers.WriteToCSVPassanger(pas);
        }