public IActionResult GetClientComputerName(string ip)
        {
            try
            {
                Config config  = ConfigJSON.Read();
                string url     = "http://" + ip + ":" + config.ClientPort + "/POSClient/GetComputerName";
                var    client  = new RestSharp.RestClient(url);
                var    request = new RestSharp.RestRequest(RestSharp.Method.GET);

                request.AddHeader("Access-Control-Allow-Origin", "*");

                RestSharp.IRestResponse response = client.Execute(request);
                string pcName     = response.Content.Replace("\"", "");
                int    terminalId = 0;
                //check if terminal is assigned
                TerminalMapping terminalMapping = _context.TerminalMapping.FirstOrDefault(x => x.PCName == pcName);
                Terminal        terminal        = new Terminal();
                if (terminalMapping != null)
                {
                    terminal = _context.Terminal.FirstOrDefault(x => x.Id == terminalMapping.TerminalId);
                }

                return(Ok(new { pcName = pcName, terminalId = terminalMapping.TerminalId.ToString(), terminalName = terminal?.Name }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500));
            }
        }
        public IActionResult TerminalMapping([FromBody] TerminalMapping terminalMapping)
        {
            if (ModelState.IsValid)
            {
                //first remove if mapped to terminal
                IEnumerable <TerminalMapping> oldMapping = _context.TerminalMapping.Where(x => x.IPAddress == terminalMapping.IPAddress);
                _context.TerminalMapping.RemoveRange(oldMapping);
                _context.SaveChanges();

                terminalMapping.AssignedBy   = User.Identity.Name;;
                terminalMapping.AssignedDate = DateTime.Now;
                _context.TerminalMapping.Add(terminalMapping);
                _context.SaveChanges();
                return(Ok());
            }
            return(StatusCode(400));
        }
        public IActionResult GetTerminalInfo(string ip)
        {
            try
            {
                int terminalId = 0;
                //check if terminal is assigned
                TerminalMapping terminalMapping = _context.TerminalMapping.FirstOrDefault(x => x.IPAddress == ip);
                Terminal        terminal        = new Terminal();
                if (terminalMapping != null)
                {
                    terminal   = _context.Terminal.FirstOrDefault(x => x.Id == terminalMapping.TerminalId);
                    terminalId = terminal.Id;
                }

                return(Ok(new { pcName = "", terminalId = terminalId, terminalName = terminal?.Name }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500));
            }
        }