예제 #1
0
        public ActionResult <ResponseDto> Generate([FromBody] IEnumerable <GenerateModel> m)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(InvalidModelErrors));
            }

            try
            {
                // var filePath = _licenseManager.GenerateLicense(new RequestModel
                // {
                //     Email = "*****@*****.**",
                //     Package = new Dictionary<string, string> {{"hrm", "licensed"}},
                //     VendorName = "cool"
                // });

                var items = _licenseManager
                            .GenerateLicense(m)?
                            .Select(s =>
                {
                    var(licenseCode, filePath) = s;
                    return(licenseCode, filePath);
                });

                // var fileInfo = System.IO.File.OpenRead(filePath);
                // var file = new FormFile(fileInfo, 0, fileInfo.Length, null, fileInfo.Name)
                // {
                //     Headers = new HeaderDictionary(),
                //     ContentType = "application/octet-stream"
                // };
                //
                // var licenseInfoXmlNode = _licenseManager.ExtractLicenseInfo(file, "*****@*****.**", TODO);
                // var valid = _licenseManager.Validate(licenseInfoXmlNode, "*****@*****.**", TODO);

                /*--- either of license code, license file or both of them can be return as necessary ---*/
                _response.ContentBody = items?.Select(s => s.licenseCode);

                return(Ok(_response));
                // return File( filePath, "application/octet-stream" );
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message));
            }
        }