Beispiel #1
0
        private void Matching()
        {
            foreach (var job in _IsEmriList.Where(w => w.isFinished == false))
            {
                foreach (var makina in _MakinaList.Where(w => w.Durum == MakinaStatus.EMPTY))
                {
                    if (job.Tip == makina.Tip)
                    {
                        if (makina.Isler == null)
                        {
                            makina.Isler = new List <IsEmri>();
                        }
                        makina.Isler.Add(job);
                        makina.Durum = MakinaStatus.BUSY;
                    }
                }
            }

            foreach (var makina in _MakinaList.Where(w => w.Durum == MakinaStatus.BUSY))
            {
                int makinaHız    = makina.UretimHizi;
                int makinaAzalan = makina.UretimHizi;
                int jobToplam    = 0;
                foreach (var job in makina.Isler)
                {
                    jobToplam    += job.Miktar;
                    makinaAzalan -= job.Miktar;
                    if (makinaAzalan > job.Miktar)
                    {
                        job.isFinished = true;
                    }
                }
                if (makinaHız > jobToplam)
                {
                    makina.Durum = MakinaStatus.EMPTY;
                }
            }
            foreach (var sockets in _MakinaSockets)
            {
                foreach (var makina in _MakinaList)
                {
                    if (makina.MakinaId == sockets.Makina.MakinaId)
                    {
                        string data = JsonConvert.SerializeObject(makina);
                        SendData(sockets.Socket, data);
                    }
                }
            }
            ServerResponsePlanlamaClients model = new ServerResponsePlanlamaClients();

            model.IsEmriList = _IsEmriList;
            model.MakinaList = _MakinaList;
            string response = JsonConvert.SerializeObject(model);

            foreach (var item in _PlanClients)
            {
                SendData(item, response);
            }
        }
Beispiel #2
0
        private void PlanReceiveCallback(IAsyncResult ar)
        {
            Socket socket = (Socket)ar.AsyncState;

            if (socket.Connected)
            {
                int received = 0;
                try
                {
                    received = socket.EndReceive(ar);
                }
                catch (Exception)
                {
                    for (int i = 0; i < _PlanClients.Count; i++)
                    {
                        if (_PlanClients[i].RemoteEndPoint.ToString().Equals(socket.RemoteEndPoint.ToString()))
                        {
                            _PlanClients.RemoveAt(i);
                        }
                    }
                }
                if (received != 0)
                {
                    byte[] dataBuf = new byte[received];
                    Array.Copy(_buffer, dataBuf, received);
                    string text = Encoding.ASCII.GetString(dataBuf);
                    var    emir = JsonConvert.DeserializeObject <IsEmri>(text);
                    emir.Id = IsEmriId;
                    IsEmriId++;
                    _IsEmriList.Add(emir);
                    ServerResponsePlanlamaClients model = new ServerResponsePlanlamaClients();
                    model.IsEmriList = _IsEmriList;
                    model.MakinaList = _MakinaList;
                    string response = JsonConvert.SerializeObject(model);
                    foreach (var item in _PlanClients)
                    {
                        SendData(item, response);
                    }
                    Matching();
                }
                else
                {
                    for (int i = 0; i < _PlanClients.Count; i++)
                    {
                        if (_PlanClients[i].RemoteEndPoint.ToString().Equals(socket.RemoteEndPoint.ToString()))
                        {
                            _PlanClients.RemoveAt(i);
                        }
                    }
                }
            }
            socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(PlanReceiveCallback), socket);
        }
Beispiel #3
0
        private void PlanAcceptCallback(IAsyncResult ar)
        {
            Socket socket = _planSocket.EndAccept(ar);

            _PlanClients.Add(socket);
            ServerResponsePlanlamaClients model = new ServerResponsePlanlamaClients();

            model.IsEmriList = _IsEmriList;
            model.MakinaList = _MakinaList;
            string response = JsonConvert.SerializeObject(model);

            foreach (var item in _PlanClients)
            {
                SendData(item, response);
            }
            socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, new AsyncCallback(PlanReceiveCallback), socket);
            _planSocket.BeginAccept(new AsyncCallback(PlanAcceptCallback), null);
        }