public async Task <IActionResult> GetLicenceSummaryAsync([FromBody] dynamic value)
        {
            SafeCentralLicenceDetail result = new SafeCentralLicenceDetail();

            try
            {
                string svalue = Convert.ToString(value);

                dynamic partnerJsonEntity = JsonConvert.DeserializeObject(svalue);

                var subid = Convert.ToInt32(partnerJsonEntity["sid"].Value);

                Subscription subscription = _subscriptionService.GetById(subid);

                LicenceEnvironment le = _licenceEnvironmentService.GetBymanagerId(subscription.LicencingEnvironment);

                //Check Authorization status
                if (!IsAuthorised(subscription.LicenceKey))
                {
                    Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                    return(Json(string.Empty));
                }

                if (subscription.LicencingEnvironment == (int)LicencingEnvironmentEnum.Development)
                {
                    manager.Licence.Proxy.LsxDevCore lsxDevCore = new manager.Licence.Proxy.LsxDevCore(url: le.CoreURL,
                                                                                                       username: subscription.CoreAuthUsername,
                                                                                                       password: subscription.CoreAuthPassword,
                                                                                                       brandid: subscription.BrandId,
                                                                                                       campaignid: subscription.Campaign,
                                                                                                       logger: _logger);


                    result = await lsxDevCore.GetLicenceDetailsAsync(subscription.LicenceKey);

                    return(Json(result));
                }
                else if (subscription.LicencingEnvironment == (int)LicencingEnvironmentEnum.Production)
                {
                    manager.Licence.Proxy.Ls1Core Ls1Core = new manager.Licence.Proxy.Ls1Core(url: le.CoreURL,
                                                                                              username: subscription.CoreAuthUsername,
                                                                                              password: subscription.CoreAuthPassword,
                                                                                              brandid: subscription.BrandId,
                                                                                              campaignid: subscription.Campaign,
                                                                                              logger: _logger);

                    result = await Ls1Core.GetLicenceDetailsAsync(subscription.LicenceKey);

                    return(Json(result));
                }
            }
            catch (System.InvalidOperationException)
            {
                return(Json(result));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.GetLogText("licapi_getlicencesummaryasync"));
                return(Json(ex.Message));
            }


            return(Json(""));
        }
        public async Task <IActionResult> DeactivateSeatAsync([FromBody] dynamic value)
        {
            bool result = false;

            try
            {
                string svalue = Convert.ToString(value);

                dynamic partnerJsonEntity = JsonConvert.DeserializeObject(svalue);

                var seatKey = partnerJsonEntity["sk"].Value;

                var subId = Convert.ToInt32(partnerJsonEntity["sid"].Value);

                Subscription subscription = _subscriptionService.GetById(subId);

                if (subscription == null)
                {
                    return(Json(new
                    {
                        c = ResultCode.LicenceResultCodes.SubscriptionDoesntExist,
                        d = ""
                    }));
                }

                LicenceEnvironment le = _licenceEnvironmentService.GetBymanagerId(subscription.LicencingEnvironment);

                if (subscription.LicencingEnvironment == (int)LicencingEnvironmentEnum.Development)
                {
                    manager.Licence.Proxy.LsxDevCore lsxDevCore = new manager.Licence.Proxy.LsxDevCore(url: le.CoreURL,
                                                                                                       username: subscription.CoreAuthUsername,
                                                                                                       password: subscription.CoreAuthPassword,
                                                                                                       brandid: subscription.BrandId,
                                                                                                       campaignid: subscription.Campaign,
                                                                                                       logger: _logger);

                    var licresult = await lsxDevCore.GetLicenceDetailsAsync(subscription.LicenceKey);

                    foreach (var item in licresult.ComputersCurrentlyInstalled)
                    {
                        if (item.Seats.Where(x => x.SeatKey == seatKey).Count() > 0)
                        {
                            foreach (var seat in item.Seats)
                            {
                                result = lsxDevCore.DeactivateSeat(seat.SeatKey);
                            }
                        }
                    }


                    if (result)
                    {
                        return(Json(new
                        {
                            c = ResultCode.Success,
                            d = ""
                        }));
                    }
                    else
                    {
                        return(Json(new
                        {
                            c = ResultCode.LicenceResultCodes.FailedToDeactivateSeat,
                            d = ""
                        }));
                    }
                }
                else if (subscription.LicencingEnvironment == (int)LicencingEnvironmentEnum.Production)
                {
                    manager.Licence.Proxy.Ls1Core Ls1Core = new manager.Licence.Proxy.Ls1Core(url: le.CoreURL,
                                                                                              username: subscription.CoreAuthUsername,
                                                                                              password: subscription.CoreAuthPassword,
                                                                                              brandid: subscription.BrandId,
                                                                                              campaignid: subscription.Campaign,
                                                                                              logger: _logger);

                    var licresult = await Ls1Core.GetLicenceDetailsAsync(subscription.LicenceKey);

                    foreach (var item in licresult.ComputersCurrentlyInstalled)
                    {
                        if (item.Seats.Where(x => x.SeatKey == seatKey).Count() > 0)
                        {
                            foreach (var seat in item.Seats)
                            {
                                result = Ls1Core.DeactivateSeat(seat.SeatKey);
                            }
                        }
                    }



                    if (result)
                    {
                        return(Json(new
                        {
                            c = ResultCode.Success,
                            d = ""
                        }));
                    }
                    else
                    {
                        return(Json(new
                        {
                            c = ResultCode.LicenceResultCodes.FailedToDeactivateSeat,
                            d = ""
                        }));
                    }
                }
            }
            catch (System.InvalidOperationException)
            {
                return(Json(new
                {
                    c = ResultCode.Success,
                    d = ""
                }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.GetLogText("licapi_DeactivateSeat"));

                return(Json(new
                {
                    c = ResultCode.GenericException,
                    d = ex.Message
                }));
            }

            //something went wrong.

            return(Json(new
            {
                c = ResultCode.LicenceResultCodes.FailedToDeactivateSeat,
                d = ""
            }));
        }