Ejemplo n.º 1
0
        /// <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")
                });
            }
        }
Ejemplo n.º 2
0
 /// <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());
 }