/// <summary> /// License validation post /// </summary> /// <param name="request">LicenseValidationRequest to validate</param> /// <returns>LicenseValidationResult with validation result</returns> /// <example> /// POST http://localhost:63436/api/licensevalidation/ HTTP/1.2 /// User-Agent: Fiddler /// Host: localhost:63436 /// Content-Length: 357 /// Content-Type: application/xml /// <?xml version="1.0" encoding="utf-8"?> /// <LicenseValidationRequest> /// <AppId>{guid}</AppId> /// <Domains> /// <Domain name="microsoft.com"> /// <Feature>{guid}</Feature> /// <Feature>{guid}</Feature> /// </Domain> /// <Domain name="microsoft.com"> /// <Feature>{guid}</Feature> /// <Feature>{guid}</Feature> /// </Domain> /// </Domains> /// </LicenseValidationRequest> /// </example> public HttpResponseMessage Post([FromBody] LicenseValidationRequest request) { try { IEnumerable <DomainValidationResult> domainValidationResults = licenseValidator.Validate(request.AppId, ToDomainValidationList(request)); string domainValidationString = domainValidationResults != null?Serialize(domainValidationResults) : string.Empty; return(new HttpResponseMessage { Content = new StringContent(domainValidationString, Encoding.UTF8, "text/html") }); } catch (Exception e) { loggingService.Log(e.ToString(), LogTypes.Error); return(new HttpResponseMessage { Content = new StringContent(string.Empty, Encoding.UTF8, "text/html") }); } }
/// <summary> /// Converts license validation request to combination of domainName/featureCode /// </summary> /// <param name="licenseValidationRequest"></param> /// <returns></returns> private static IEnumerable <DomainValidation> ToDomainValidationList(LicenseValidationRequest licenseValidationRequest) { return((from licenseValidationRequestDomain in licenseValidationRequest.Domains from featureCode in licenseValidationRequestDomain.Feature select new DomainValidation(licenseValidationRequestDomain.name, featureCode)).ToList()); }