Пример #1
0
        public IHttpActionResult Activate([FromUri] string id, [FromBody] VerifyLicenseRequestEx request)
        {
            try
            {
                var license = _service.Get(id);

                #region Validation
                if (license == null)
                {
                    return(BadRequestWithError(ApiErrorEnum.LicenseNotFound,
                                               string.Format("No such license with the given Id {0}.", id)));
                }

                if (!license.Enabled)
                {
                    return(BadRequestWithError(ApiErrorEnum.LicenseNotEnabled,
                                               string.Format("LIcense with Id {0} has not been enabled.", id)));
                }

                if (request == null ||
                    string.IsNullOrEmpty(request.ActivationKey))
                {
                    return(BadRequestWithError(ApiErrorEnum.NoActivationKey, "No activation key supplied."));
                }

                if (!_service.Activate(license.Id, new LicenseActivateModel()
                {
                    ActivationKey = request.ActivationKey,
                    ComputerName = request.ComputerName,
                    ServerName = request.ServerName
                }))
                {
                    return(BadRequestWithError(ApiErrorEnum.LicenseActivationFailed, "Cannot activate license."));
                }
                #endregion

                return(Ok(new ActivateLicenseMessage()
                {
                    LicenseId = license.Id,
                    ActivationKey = request.ActivationKey,
                    ComputerName = request.ComputerName,
                    ServerName = request.ServerName,
                    Activated = true
                }));
            }
            catch (Exception ex)
            {
                _logger.Log(NLog.LogLevel.Error, ex);

                return(BadRequestWithError(ApiErrorEnum.GeneralError));
            }
        }