示例#1
0
        public async Task <IActionResult> SendToPrint(IFormFile file, [FromQuery] string UserName, CancellationToken token = default)
        {
            // save uploaded file
            string path = System.IO.Path.GetTempFileName();

            using (var stream = System.IO.File.Create(path))
            {
                await file.CopyToAsync(stream, token);
            }

            // convert to base64
            Byte[] bytes      = System.IO.File.ReadAllBytes(path);
            String fileBase64 = Convert.ToBase64String(bytes);

            // prepare payload
            var request = new printRequest();

            request.request = new requestContent()
            {
                Document    = fileBase64,
                FileName    = file.FileName,
                PrinterName = "SamplePrinter",
                UserName    = UserName
            };

            // send to api
            HttpClient client   = new HttpClient();
            var        response = await client.PostAsJsonAsync("https://localhost:44302/api/v4/Print", request, token);

            response.EnsureSuccessStatusCode();

            return(Ok());
        }
示例#2
0
        //https://www.codeproject.com/Articles/576820/Basic-Step-by-Step-WCF-WebService

        static void Main(string[] args)
        {
            using (ChannelFactory <IBindingInterface> ServiceProxy =
                       new ChannelFactory <IBindingInterface>("BasicHttpBinding_IBindingInterface"))
            {
                ServiceProxy.Open();
                IBindingInterface service = ServiceProxy.CreateChannel();

                printRequest pRequest = new printRequest();
                //heckRequest pRequest = new checkRequest();
                for (int i = 0; i < 1; i++)
                {
                    pRequest.Pan          = String.Format("11189838202343{0:D2}", i);
                    pRequest.FirstName    = "Cardholder";
                    pRequest.SecondName   = i.ToString();
                    pRequest.EmbossedName = String.Format("Cardholder {0}", i);
                    pRequest.CompanyName  = "ostpack";
                    pRequest.ExpDate      = Convert.ToDateTime("31.12.2019");
                    pRequest.StartDate    = DateTime.Now;
                    pRequest.ProductId    = "235";
                    pRequest.SeqNum       = "0";
                    //pRequest.EmbAlias = "CB_br_01_001";
                    pRequest.EmbAlias = "DC450";
                    pRequest.PinIP    = "127.0.0.1";
                    //pRequest.DivisionName = "000001";
                    //pRequest.uIID = i.ToString();
                    printResponse resp = null;
                    //checkResponse resp = null;
                    try
                    {
                        resp = service.print(pRequest);
                        //resp = service.check(pRequest);
                    }
                    catch (FaultException <errorResponse> e)
                    {
                        Console.WriteLine(e.Detail.ErrText);
                    }
                    if (resp != null)
                    {
                        //Console.WriteLine(String.Format("status {0}, uiid {1}", resp.Status, pRequest.uIID));
                        Console.WriteLine($"Print result: {resp.Status}, id = {resp.uIID}");
                    }
                }
                ServiceProxy.Close();
            }
            Console.ReadKey();
        }
示例#3
0
        public async Task <IActionResult> Print(printRequest request)
        {
            try
            {
                if (request.request.UserName != "test")
                {
                    ModelState.AddModelError("UserName", "Invalid username");
                    return(ValidationProblem());
                }

                var    b64Str = request.request.Document;
                var    path   = System.IO.Path.Combine(AppContext.BaseDirectory, "Result", request.request.FileName);
                Byte[] bytes  = Convert.FromBase64String(b64Str);
                System.IO.File.WriteAllBytes(path, bytes);

                return(Ok());
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("1", ex.Message);
                return(ValidationProblem());
            }
        }