public Function(Environment e) : base()
 {
     Env    = e;
     Params = new HashSet <Symbol>();
     EnvList.Add(e);
     while (!(e.outer is null))
     {
         e = e.outer;
         EnvList.Add(e);
     }
     gfl.Add(this);
 }
Beispiel #2
0
        public IRestResponse GetCollection()
        {
            Console.WriteLine("Get collection: {0}", Name);

            RestRequest request = new RestRequest("collections", Method.GET);

            request.AddHeader("Content-Type", "application/json");
            Authorize(request);

            IRestResponse response = Client.Execute(request);

            RestSharp.Serialization.Json.JsonDeserializer deserializer = new RestSharp.Serialization.Json.JsonDeserializer();
            CollectionList collections = deserializer.Deserialize <CollectionList>(response);

            foreach (CollectionInfo collection in collections.Collections)
            {
                if (collection.Name.Equals(Name))
                {
                    Id = collection.Id;
                    Console.WriteLine("Found collection ID: {0}", Id);
                }
            }

            if (Id != null)
            {
                Console.WriteLine("Get collection by id: {0}", Id);

                request = new RestRequest("collections/{id}");
                request.AddUrlSegment("id", Id);
                Authorize(request);
                response = Client.Execute(request);

                //parse environment
                if (Env != null && Env.Equals("") == false)
                {
                    Console.WriteLine("Get Environment: " + Env);
                    RestRequest envRequest = new RestRequest("environments");
                    Authorize(envRequest);
                    IRestResponse envResponse = Client.Execute(envRequest);

                    deserializer = new RestSharp.Serialization.Json.JsonDeserializer();
                    EnvList envs  = deserializer.Deserialize <EnvList>(envResponse);
                    String  EnvId = "";

                    foreach (EnvInfo env in envs.Environments)
                    {
                        if (env.Name.Equals(Env))
                        {
                            EnvId = env.Id;
                            Console.WriteLine("Found environment ID: {0}", EnvId);

                            break;
                        }
                    }

                    if (!EnvId.Equals(""))
                    {
                        envRequest = new RestRequest("environments/{id}");
                        envRequest.AddUrlSegment("id", EnvId);
                        Authorize(envRequest);
                        envResponse = Client.Execute(envRequest);
                        EnvironmentBody envBody = deserializer.Deserialize <EnvironmentBody>(envResponse);

                        foreach (Value value in envBody.Environment.Values)
                        {
                            if (!BlackList.Contains(value.Key))
                            {
                                Console.WriteLine("Parse environment value: " + value.Key + " [" + value.value + "]");

                                response.Content = response.Content.Replace("{{" + value.Key + "}}", value.value);
                            }
                        }
                    }
                }

                CollecitonDetail detail = deserializer.Deserialize <CollecitonDetail>(response);
                Console.WriteLine("Number of collections' endpoints: {0}", detail.Collection.Item.Count);
                Collection = detail.Collection;
            }
            else
            {
                String message = "Collection " + Name + " not found!!!";
                throw new Exception(message);
            }

            return(response);
        }