public long StartSession(RlmParams data)
        {
            long retVal = 0;

            RlmNetworkWebAPI network = LoadNetworkFromCache(data);

            retVal = network.SessionStart();

            return(retVal);
        }
 public void StartSession(RlmParams data)
 {
     try
     {
         manager.StartSession(data);
     }
     catch (Exception e)
     {
         System.Diagnostics.Debug.WriteLine($"Internal error: {e.Message}");
         throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, e));
     }
 }
        private RlmNetworkWebAPI LoadNetworkFromCache(RlmParams data)
        {
            RlmNetworkWebAPI retVal = null;

            if (RLM_NETWORKS.TryGetValue(data.RlmName, out retVal))
            {
                if (retVal.CurrentNetworkName != data.NetworkName)
                {
                    throw new ArgumentException($"Network '{data.NetworkName}' not found or has not been loaded yet. Please check the network name or make sure to call the CreateOrLoad API method first.");
                }
            }
            else
            {
                throw new ArgumentException($"RLM '{data.RlmName}' not found or has not been loaded yet. Please check the network name or make sure to call the CreateOrLoad API method first.");
            }

            retVal.ResetExpiry();

            return(retVal);
        }