Esempio n. 1
0
        public void KV_Put_Get_Delete()
        {
            var client = new Client();
            var kv = client.KV;

            var key = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var getRequest = kv.Get(key);
            Assert.IsNull(getRequest.Response);

            var pair = new KVPair(key)
            {
                Flags = 42,
                Value = value
            };

            var putRequest = kv.Put(pair);
            Assert.IsTrue(putRequest.Response);

            getRequest = kv.Get(key);
            var res = getRequest.Response;

            Assert.IsNotNull(res);
            Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, res.Value));
            Assert.AreEqual(pair.Flags, res.Flags);
            Assert.IsTrue(getRequest.LastIndex > 0);

            var del = kv.Delete(key);
            Assert.IsTrue(del.Response);

            getRequest = kv.Get(key);
            Assert.IsNull(getRequest.Response);
        }
Esempio n. 2
0
        public async Task KV_Put_Get_Delete()
        {
            var client = new ConsulClient();
            var kv = client.KV;

            var key = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var getRequest = await kv.Get(key);
            Assert.Equal(System.Net.HttpStatusCode.NotFound, getRequest.StatusCode);
            Assert.Null(getRequest.Response);

            var pair = new KVPair(key)
            {
                Flags = 42,
                Value = value
            };

            var putRequest = await kv.Put(pair);
            Assert.Equal(System.Net.HttpStatusCode.OK, putRequest.StatusCode);
            Assert.True(putRequest.Response);

            try
            {
                // Put a key that begins with a '/'
                var invalidKey = new KVPair("/test")
                {
                    Flags = 42,
                    Value = value
                };
                await kv.Put(invalidKey);
                Assert.True(false, "Invalid key not detected");
            }
            catch (InvalidKeyPairException ex)
            {
                Assert.IsType<InvalidKeyPairException>(ex);
            }

            getRequest = await kv.Get(key);
            Assert.Equal(System.Net.HttpStatusCode.OK, getRequest.StatusCode);
            var res = getRequest.Response;

            Assert.NotNull(res);
            Assert.True(StructuralComparisons.StructuralEqualityComparer.Equals(value, res.Value));
            Assert.Equal(pair.Flags, res.Flags);
            Assert.True(getRequest.LastIndex > 0);

            var del = await kv.Delete(key);
            Assert.True(del.Response);

            getRequest = await kv.Get(key);
            Assert.Null(getRequest.Response);
        }
Esempio n. 3
0
        public void KV_AcquireRelease()
        {
            var c = ClientTest.MakeClient();
            var s = c.Session;
            var sesRes = s.CreateNoChecks(new SessionEntry());
            var id = sesRes.Response;

            Assert.IsFalse(string.IsNullOrEmpty(sesRes.Response));

            var kv = c.KV;
            var key = TestKey();
            var value = Encoding.UTF8.GetBytes("test");

            var pair = new KVPair(key)
            {
                Value = value,
                Session = id
            };

            var g = kv.Acquire(pair);
            Assert.IsTrue(g.Response);

            var res = kv.Get(key);

            Assert.IsNotNull(res.Response);
            Assert.AreEqual(id, res.Response.Session);
            Assert.AreEqual(res.Response.LockIndex, (ulong)1);
            Assert.IsTrue(res.LastIndex > 0);

            g = kv.Release(pair);
            Assert.IsTrue(g.Response);

            res = kv.Get(key);

            Assert.IsNotNull(res.Response);
            Assert.AreEqual(null, res.Response.Session);
            Assert.AreEqual(res.Response.LockIndex, (ulong)1);
            Assert.IsTrue(res.LastIndex > 0);

            var sesDesRes = s.Destroy(id);
            Assert.IsTrue(sesDesRes.Response);

            var del = kv.Delete(key);
            Assert.IsTrue(del.Response);
        }
        internal static ConsulSiloRegistration FromKVPairs(String deploymentId, KVPair siloKV, KVPair iAmAliveKV)
        {
            var ret = JsonConvert.DeserializeObject <ConsulSiloRegistration>(Encoding.UTF8.GetString(siloKV.Value));

            var keyParts = siloKV.Key.Split(KeySeparator);

            ret.Address      = SiloAddress.FromParsableString(keyParts.Last());
            ret.DeploymentId = deploymentId;
            ret.LastIndex    = siloKV.ModifyIndex;

            if (iAmAliveKV == null)
            {
                ret.IAmAliveTime = ret.StartTime;
            }
            else
            {
                ret.IAmAliveTime = JsonConvert.DeserializeObject <DateTime>(Encoding.UTF8.GetString(iAmAliveKV.Value));
            }

            return(ret);
        }
            private void ShouldReturnTrueIfKVPairIsLeafWithNonEmptyArrayValue(KVPair kvPair, bool expected)
            {
                var hasValue = kvPair.HasValue();

                hasValue.Should().Be(expected);
            }
Esempio n. 6
0
 internal static bool HasValue(this KVPair kvPair)
 {
     return(kvPair.IsLeafNode() && kvPair.Value != null && kvPair.Value.Any());
 }
Esempio n. 7
0
 public ConsulEntry(string key, TValue value, KVPair original)
 {
     Key      = key;
     Value    = value;
     Original = original;
 }
Esempio n. 8
0
        public void KV_AcquireRelease()
        {
            var client = new Client();
            var sessionRequest = client.Session.CreateNoChecks(new SessionEntry());
            var id = sessionRequest.Response;

            Assert.IsFalse(string.IsNullOrEmpty(sessionRequest.Response));

            var key = GenerateTestKeyName();
            var value = Encoding.UTF8.GetBytes("test");

            var pair = new KVPair(key)
            {
                Value = value,
                Session = id
            };

            var acquireRequest = client.KV.Acquire(pair);
            Assert.IsTrue(acquireRequest.Response);

            var getRequest = client.KV.Get(key);

            Assert.IsNotNull(getRequest.Response);
            Assert.AreEqual(id, getRequest.Response.Session);
            Assert.AreEqual(getRequest.Response.LockIndex, (ulong)1);
            Assert.IsTrue(getRequest.LastIndex > 0);

            acquireRequest = client.KV.Release(pair);
            Assert.IsTrue(acquireRequest.Response);

            getRequest = client.KV.Get(key);

            Assert.IsNotNull(getRequest.Response);
            Assert.AreEqual(null, getRequest.Response.Session);
            Assert.AreEqual(getRequest.Response.LockIndex, (ulong)1);
            Assert.IsTrue(getRequest.LastIndex > 0);

            var sessionDestroyRequest = client.Session.Destroy(id);
            Assert.IsTrue(sessionDestroyRequest.Response);

            var deleteRequest = client.KV.Delete(key);
            Assert.IsTrue(deleteRequest.Response);
        }
Esempio n. 9
0
        public void KV_List_DeleteRecurse()
        {
            var client = new Client();

            var prefix = GenerateTestKeyName();

            var putTasks = new Task[100];

            var value = Encoding.UTF8.GetBytes("test");
            for (var i = 0; i < 100; i++)
            {
                var p = new KVPair(string.Join("/", prefix, GenerateTestKeyName()))
                {
                    Value = value
                };
                putTasks[i] = Task.Run(() => client.KV.Put(p));
            }

            Task.WaitAll(putTasks);

            var pairs = client.KV.List(prefix);
            Assert.IsNotNull(pairs.Response);
            Assert.AreEqual(pairs.Response.Length, putTasks.Length);
            foreach (var pair in pairs.Response)
            {
                Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, pair.Value));
            }
            Assert.IsFalse(pairs.LastIndex == 0);

            client.KV.DeleteTree(prefix);

            pairs = client.KV.List(prefix);
            Assert.IsNull(pairs.Response);
        }
Esempio n. 10
0
 private static string TheKey(KVPair pair) => pair.Key;
Esempio n. 11
0
        public void KV_WatchList()
        {
            var client = new Client();

            var prefix = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var pairs = client.KV.List(prefix);
            Assert.IsNull(pairs.Response);

            Task.Run(() =>
            {
                Thread.Sleep(100);
                var p = new KVPair(prefix) { Flags = 42, Value = value };
                var putRes = client.KV.Put(p);
                Assert.IsTrue(putRes.Response);
            });

            var pairs2 = client.KV.List(prefix, new QueryOptions() { WaitIndex = pairs.LastIndex });
            Assert.IsNotNull(pairs2.Response);
            Assert.AreEqual(pairs2.Response.Length, 1);
            Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, pairs2.Response[0].Value));
            Assert.AreEqual(pairs2.Response[0].Flags, (ulong)42);
            Assert.IsTrue(pairs2.LastIndex > pairs.LastIndex);

            var deleteTree = client.KV.DeleteTree(prefix);
            Assert.IsTrue(deleteTree.Response);
        }
Esempio n. 12
0
        public void KV_WatchGet()
        {
            var c = ClientTest.MakeClient();
            var kv = c.KV;

            var key = TestKey();

            var value = Encoding.UTF8.GetBytes("test");

            var g = kv.Get(key);
            Assert.IsNull(g.Response);

            var pair = new KVPair(key)
            {
                Flags = 42,
                Value = value
            };

            Task.Run(() =>
            {
                Task.Delay(1100).Wait();
                var p = new KVPair(key) { Flags = 42, Value = value };
                var putRes = kv.Put(p);
                Assert.IsTrue(putRes.Response);
            });

            var g2 = kv.Get(key, new QueryOptions() { WaitIndex = g.LastIndex });
            var res = g2.Response;

            Assert.IsNotNull(res);
            Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, res.Value));
            Assert.AreEqual(pair.Flags, res.Flags);
            Assert.IsTrue(g2.LastIndex > 0);

            var del = kv.Delete(key);
            Assert.IsTrue(del.Response);

            g = kv.Get(key);
            Assert.IsNull(g.Response);
        }
Esempio n. 13
0
        public async Task <bool> KVReleaseAsync(KVPair p)
        {
            var result = await _consulClient.KV.Release(p);

            return(result.Response);
        }
Esempio n. 14
0
        public void KV_Put_Get_Delete()
        {
            var c = ClientTest.MakeClient();
            var kv = c.KV;

            var key = TestKey();

            var value = Encoding.UTF8.GetBytes("test");

            var g = kv.Get(key);
            Assert.IsNull(g.Response);

            var pair = new KVPair(key)
            {
                Flags = 42,
                Value = value
            };

            var p = kv.Put(pair);
            Assert.IsTrue(p.Response);

            g = kv.Get(key);
            var res = g.Response;

            Assert.IsNotNull(res);
            Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, res.Value));
            Assert.AreEqual(pair.Flags, res.Flags);
            Assert.IsTrue(g.LastIndex > 0);

            var del = kv.Delete(key);
            Assert.IsTrue(del.Response);

            g = kv.Get(key);
            Assert.IsNull(g.Response);
        }
Esempio n. 15
0
        public void KV_Keys_DeleteRecurse()
        {
            var c = ClientTest.MakeClient();
            var kv = c.KV;

            var prefix = TestKey();

            var putTasks = new Task[100];

            var value = Encoding.UTF8.GetBytes("test");
            for (var i = 0; i < 100; i++)
            {
                var p = new KVPair(string.Join("/", prefix, TestKey()))
                {
                    Value = value
                };
                putTasks[i] = Task.Run(() => kv.Put(p));
            }

            Task.WaitAll(putTasks);

            var pairs = kv.Keys(prefix, "");
            Assert.IsNotNull(pairs.Response);
            Assert.AreEqual(pairs.Response.Length, putTasks.Length);
            Assert.IsFalse(pairs.LastIndex == 0);

            var deleteTree = kv.DeleteTree(prefix);

            pairs = kv.Keys(prefix, "");
            Assert.IsNull(pairs.Response);
        }
        /// <summary>
        ///     Allocates a new ID from Consul.
        /// </summary>
        /// <returns>A task object for the operation with the ID allocated.</returns>
        private async Task <ushort> AllocateID()
        {
            for (int attempt = 0; attempt < 10; attempt++)
            {
                Logger.Trace("Allocating a new ID on Consul, attempt: " + (attempt + 1));

                QueryResult <KVPair> result = await client.KV.Get("darkrift-2/next-id");

                KVPair kvPair = result.Response;

                if (kvPair != null)
                {
                    bool valid = ushort.TryParse(Encoding.UTF8.GetString(kvPair.Value, 0, kvPair.Value.Length), out ushort id);
                    if (!valid)
                    {
                        throw new InvalidOperationException("Failed to allocate ID as the stored next ID is not a valid ushort.");
                    }

                    kvPair.Value = Encoding.UTF8.GetBytes((id + 1).ToString());

                    WriteResult <bool> casResult;
                    try
                    {
                        casResult = await client.KV.CAS(kvPair);
                    }
                    catch (Exception e)
                    {
                        Logger.Error("Failed to perform CAS operation on Consul while updating ID field.", e);
                        throw e;
                    }

                    if (casResult.Response)
                    {
                        return(id);
                    }
                }
                else
                {
                    // First in the cluster, we need to create the next-id field!
                    kvPair = new KVPair("darkrift-2/next-id")
                    {
                        Value = Encoding.UTF8.GetBytes("1")
                    };

                    WriteResult <bool> casResult;
                    try
                    {
                        casResult = await client.KV.CAS(kvPair);
                    }
                    catch (Exception e)
                    {
                        Logger.Error("Failed to perform CAS operation on Consul while creating ID field.", e);
                        throw e;
                    }

                    if (casResult.Response)
                    {
                        return(0);
                    }
                }
            }

            Logger.Error("Failed to allocate ID from Consul as the operation exceeded the maximum number of allowed attempts (10).");
            throw new InvalidOperationException("Failed to allocate ID from Consul as the operation exceeded the maximum number of allowed attempts (10).");
        }
Esempio n. 17
0
        private void LoadData()
        {
            txtSearch.Text = Session["PUBENT_SearchKeyword"].ToString();

            //NCIPLCC ddlTOC.DataSource = KVPair.GetKVPair("sp_NCIPL_getCancerTypes");
            ddlTOC.DataSource     = KVPair.GetKVPair("sp_NCIPLCC_getCancerTypes");
            ddlTOC.DataTextField  = "val";
            ddlTOC.DataValueField = "key";
            ddlTOC.DataBind();
            ddlTOC.Items.Insert(0, new ListItem("All Types", "-99"));
            if (Session["PUBENT_TypeOfCancer"].ToString().Length > 0)
            {
                int Cntr = 0;
                foreach (ListItem li in ddlTOC.Items)
                {
                    if (string.Compare(li.Value, Session["PUBENT_TypeOfCancer"].ToString()) == 0)
                    {
                        ddlTOC.SelectedIndex = Cntr;
                        break;
                    }
                    Cntr++;
                }
            }

            //NCIPLCC ddlCT.DataSource = KVPair.GetKVPair("sp_NCIPL_getSubjects");
            ddlCT.DataSource     = KVPair.GetKVPair("sp_NCIPLCC_getSubjects");
            ddlCT.DataTextField  = "val";
            ddlCT.DataValueField = "key";
            ddlCT.DataBind();
            ddlCT.Items.Insert(0, new ListItem("All Cancer Topics", "-99"));
            if (Session["PUBENT_Subject"].ToString().Length > 0)
            {
                int Cntr = 0;
                foreach (ListItem li in ddlCT.Items)
                {
                    if (string.Compare(li.Value, Session["PUBENT_Subject"].ToString()) == 0)
                    {
                        ddlCT.SelectedIndex = Cntr;
                        break;
                    }
                    Cntr++;
                }
            }

            //NCIPLCC ddlAud.DataSource = KVPair.GetKVPair("sp_NCIPL_getAudience");
            ddlAud.DataSource     = KVPair.GetKVPair("sp_NCIPLCC_getAudience");
            ddlAud.DataTextField  = "val";
            ddlAud.DataValueField = "key";
            ddlAud.DataBind();
            ddlAud.Items.Insert(0, new ListItem("All Audiences", "-99"));
            if (Session["PUBENT_Audience"].ToString().Length > 0)
            {
                int Cntr = 0;
                foreach (ListItem li in ddlAud.Items)
                {
                    if (string.Compare(li.Value, Session["PUBENT_Audience"].ToString()) == 0)
                    {
                        ddlAud.SelectedIndex = Cntr;
                        break;
                    }
                    Cntr++;
                }
            }

            //NCIPLCC ddlLan.DataSource = KVPair.GetKVPair("sp_NCIPL_getLanguages");
            ddlLan.DataSource     = KVPair.GetKVPair("sp_NCIPLCC_getLanguages");
            ddlLan.DataTextField  = "val";
            ddlLan.DataValueField = "key";
            ddlLan.DataBind();
            ddlLan.Items.Insert(0, new ListItem("All Languages", "-99"));
            if (Session["PUBENT_Language"].ToString().Length > 0)
            {
                int Cntr = 0;
                foreach (ListItem li in ddlLan.Items)
                {
                    if (string.Compare(li.Value, Session["PUBENT_Language"].ToString()) == 0)
                    {
                        ddlLan.SelectedIndex = Cntr;
                        break;
                    }
                    Cntr++;
                }
            }

            //NCIPLCC ddlForm.DataSource = KVPair.GetKVPair("sp_NCIPL_getProductFormats");
            ddlForm.DataSource     = KVPair.GetKVPair("sp_NCIPLCC_getProductFormats");
            ddlForm.DataTextField  = "val";
            ddlForm.DataValueField = "key";
            ddlForm.DataBind();
            ddlForm.Items.Insert(0, new ListItem("All Formats", "-99"));
            if (Session["PUBENT_ProductFormat"].ToString().Length > 0)
            {
                int Cntr = 0;
                foreach (ListItem li in ddlForm.Items)
                {
                    if (string.Compare(li.Value, Session["PUBENT_ProductFormat"].ToString()) == 0)
                    {
                        ddlForm.SelectedIndex = Cntr;
                        break;
                    }
                    Cntr++;
                }
            }

            //NCIPLCC ddlColl.DataSource = KVPair.GetKVPair("sp_NCIPL_getCollections");
            ddlColl.DataSource     = KVPair.GetKVPair("sp_NCIPLCC_getCollections");
            ddlColl.DataTextField  = "val";
            ddlColl.DataValueField = "key";
            ddlColl.DataBind();
            ddlColl.Items.Insert(0, new ListItem("All Collections", "-99"));
            if (Session["PUBENT_Series"].ToString().Length > 0)
            {
                int Cntr = 0;
                foreach (ListItem li in ddlColl.Items)
                {
                    if (string.Compare(li.Value, Session["PUBENT_Series"].ToString()) == 0)
                    {
                        ddlColl.SelectedIndex = Cntr;
                        break;
                    }
                    Cntr++;
                }
            }
        }
Esempio n. 18
0
        private void Page_Load(object sender, System.EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Session["PUBENT_SearchKeyword"] = "";
                Session["PUBENT_TypeOfCancer"]  = "";
                Session["PUBENT_Subject"]       = "";
                Session["PUBENT_Audience"]      = "";
                Session["PUBENT_Language"]      = "";
                Session["PUBENT_ProductFormat"] = "";
                Session["PUBENT_StartsWith"]    = "";
                Session["PUBENT_Series"]        = "";
                Session["PUBENT_NewOrUpdated"]  = "";
                Session["PUBENT_Race"]          = "";


                if (Request.QueryString["cantype"] != null)
                {
                    Session["PUBENT_TypeOfCancer"] = Request.QueryString["cantype"];
                }
                else if (Request.QueryString["subj"] != null)
                {
                    Session["PUBENT_Subject"] = Request.QueryString["subj"];
                }
                else if (Request.QueryString["aud"] != null)
                {
                    Session["PUBENT_Audience"] = Request.QueryString["aud"];
                }
                else if (Request.QueryString["lang"] != null)
                {
                    Session["PUBENT_Language"] = Request.QueryString["lang"];
                }
                else if (Request.QueryString["form"] != null)
                {
                    Session["PUBENT_ProductFormat"] = Request.QueryString["form"];
                }
                else if (Request.QueryString["starts"] != null)
                {
                    Session["PUBENT_StartsWith"] = Request.QueryString["starts"];
                }
                else if (Request.QueryString["coll"] != null)
                {
                    Session["PUBENT_Series"] = Request.QueryString["coll"];
                }
                else if (Request.QueryString["newupt"] != null)
                {
                    Session["PUBENT_NewOrUpdated"] = Request.QueryString["newupt"];
                }
                else if (Request.QueryString["race"] != null)
                {
                    Session["PUBENT_Race"] = Request.QueryString["race"];
                }


                //Begin - Code to show search criteria on search results
                Session["PUBENT_Criteria"] = "";
                string SearchCriteria = "";
                GlobalUtils.Utils.InitializeCriteriaTextSessionVariables(); //CR-31 HITT 7074
                if (Session["PUBENT_TypeOfCancer"].ToString().Length > 0)
                {
                    KVPairCollection collCancerTypes = KVPair.GetKVPair("sp_NCIPL_getCancerTypes");
                    foreach (KVPair kvItem in collCancerTypes)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_TypeOfCancer"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("TypeOfCancer", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }

                if (Session["PUBENT_Subject"].ToString().Length > 0)
                {
                    KVPairCollection collSubjects = KVPair.GetKVPair("sp_NCIPL_getSubjects");
                    foreach (KVPair kvItem in collSubjects)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_Subject"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("Subject", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }
                if (Session["PUBENT_ProductFormat"].ToString().Length > 0)
                {
                    KVPairCollection collProdFormats = KVPair.GetKVPair("sp_NCIPL_getProductFormats");
                    foreach (KVPair kvItem in collProdFormats)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_ProductFormat"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("ProductFormat", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }
                if (Session["PUBENT_Series"].ToString().Length > 0)
                {
                    KVPairCollection collSeries = KVPair.GetKVPair("sp_NCIPL_getCollections");
                    foreach (KVPair kvItem in collSeries)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_Series"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("Series", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }
                if (Session["PUBENT_NewOrUpdated"].ToString().Length > 0)
                {
                    KVPairCollection collProdUpdates = KVPair.GetKVPair("sp_NCIPL_getProductUpdates");
                    foreach (KVPair kvItem in collProdUpdates)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_NewOrUpdated"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("NewOrUpdated", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }
                if (Session["PUBENT_Language"].ToString().Length > 0)
                {
                    KVPairCollection collLanguages = KVPair.GetKVPair("sp_NCIPL_getLanguages");
                    foreach (KVPair kvItem in collLanguages)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_Language"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("Language", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }
                if (Session["PUBENT_Audience"].ToString().Length > 0)
                {
                    KVPairCollection collAudience = KVPair.GetKVPair("sp_NCIPL_getAudience");
                    foreach (KVPair kvItem in collAudience)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_Audience"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("Audience", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }

                if (Session["PUBENT_StartsWith"].ToString().Length > 0)
                {
                    if (SearchCriteria.Length == 0)
                    {
                        SearchCriteria = Session["PUBENT_StartsWith"].ToString();
                    }
                    else
                    {
                        SearchCriteria = SearchCriteria + ", " + Session["PUBENT_StartsWith"].ToString();
                    }
                    GlobalUtils.Utils.SetCriteriaText("StartsWith", Session["PUBENT_StartsWith"].ToString()); //HITT 7074 CR-31
                }

                if (Session["PUBENT_Race"].ToString().Length > 0)
                {
                    KVPairCollection collRace = KVPair.GetKVPair("sp_NCIPL_getRace");
                    foreach (KVPair kvItem in collRace)
                    {
                        if (string.Compare(kvItem.Key, Session["PUBENT_Race"].ToString(), true) == 0)
                        {
                            if (SearchCriteria.Length == 0)
                            {
                                SearchCriteria = kvItem.Val;
                            }
                            else
                            {
                                SearchCriteria = SearchCriteria + ", " + kvItem.Val;
                            }
                            GlobalUtils.Utils.SetCriteriaText("Race", kvItem.Val); //HITT 7074 CR-31
                        }
                    }
                }

                Session["PUBENT_Criteria"] = SearchCriteria;

                //End Code

                /*Begin CR-31 - HITT 9815 */
                GlobalUtils.Utils objUtils    = new GlobalUtils.Utils();
                string            QueryParams = objUtils.GetQueryStringParams();
                objUtils = null;
                /*End CR-31 - HITT 9815 */

                if (Session["PUBENT_NewOrUpdated"].ToString().Length > 0) //HITT 8300 - New & Updated now has its own page
                {
                    Response.Redirect("newupdated.aspx");
                }
                else
                {
                    //CR-31 HITT 9815 Response.Redirect("searchres.aspx");
                    Response.Redirect("searchres.aspx" + "?sid=" + QueryParams);
                }
            }
        }
Esempio n. 19
0
        public async Task <bool> KVCasAsync(KVPair p)
        {
            var result = await _consulClient.KV.CAS(p);

            return(result.Response);
        }
Esempio n. 20
0
        public void KV_CAS()
        {
            var c = ClientTest.MakeClient();
            var kv = c.KV;

            var key = TestKey();

            var value = Encoding.UTF8.GetBytes("test");

            var pair = new KVPair(key)
            {
                Value = value
            };

            var p = kv.CAS(pair);
            Assert.IsTrue(p.Response);

            var g = kv.Get(key);
            pair = g.Response;

            Assert.IsNotNull(pair);
            Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, pair.Value));
            Assert.IsTrue(g.LastIndex > 0);

            value = Encoding.UTF8.GetBytes("foo");
            pair.Value = value;

            pair.ModifyIndex = 1;
            var cas = kv.CAS(pair);

            Assert.IsFalse(cas.Response);

            pair.ModifyIndex = g.LastIndex;
            cas = kv.CAS(pair);
            Assert.IsTrue(cas.Response);

            var del = kv.Delete(key);
            Assert.IsTrue(del.Response);
        }
Esempio n. 21
0
 public Task <WriteResult <bool> > Release(KVPair p, WriteOptions q, CancellationToken ct = new CancellationToken())
 {
     throw new NotImplementedException();
 }
 public Task <WriteResult <bool> > Release(KVPair p, CancellationToken ct = default)
 {
     throw new NotImplementedException();
 }
Esempio n. 23
0
        public void KV_Keys_DeleteRecurse()
        {
            var client = new Client();

            var prefix = GenerateTestKeyName();

            var putTasks = new Task[100];

            var value = Encoding.UTF8.GetBytes("test");
            for (var i = 0; i < 100; i++)
            {
                var pair = new KVPair(string.Join("/", prefix, GenerateTestKeyName()))
                {
                    Value = value
                };
                putTasks[i] = Task.Run(() => client.KV.Put(pair));
            }

            Task.WaitAll(putTasks);

            var pairs = client.KV.Keys(prefix, "");
            Assert.IsNotNull(pairs.Response);
            Assert.AreEqual(pairs.Response.Length, putTasks.Length);
            Assert.IsFalse(pairs.LastIndex == 0);

            var deleteTree = client.KV.DeleteTree(prefix);

            pairs = client.KV.Keys(prefix, "");
            Assert.IsNull(pairs.Response);
        }
 public Task <WriteResult <bool> > DeleteCAS(KVPair p, WriteOptions q, CancellationToken ct = default)
 {
     throw new NotImplementedException();
 }
        static void Main(string[] args)
        {
            var app = new CommandLineApplication();

            app.Name        = "consulAppender";
            app.Description = "Consul Key/Value appender";
            app.HelpOption("-?|-h|--help");
            var consulAddrOption        = app.Option($"-c|--consulAddress <{_defaultConsulAddr}>", "Consul HTTP address", CommandOptionType.SingleValue);
            var consulMasterTokenOption = app.Option($"-m|--masterToken <{_defaultConsulToken}>", "Master token value", CommandOptionType.SingleValue);

            app.OnExecute(async() =>
            {
                var consulAddress     = consulAddrOption.HasValue() ? consulAddrOption.Value() : _defaultConsulAddr;
                var consulMasterToken = consulMasterTokenOption.Value();

                var client = new ConsulClient(configuration =>
                {
                    configuration.Address = new Uri(consulAddress);
                    if (string.IsNullOrWhiteSpace(consulMasterToken) == false)
                    {
                        configuration.Token = consulMasterToken;
                    }
                });
                var filesToProcess = Directory.GetFiles("data/", "*Data.json");
                foreach (var file in filesToProcess)
                {
                    var jsonBytes = File.ReadAllBytes(file);
                    if (jsonBytes.Length == 0)
                    {
                        continue;
                    }

                    try
                    {
                        var jsonDoc = JsonDocument.Parse(jsonBytes);
                        var root    = jsonDoc.RootElement;
                        foreach (var item in root.EnumerateArray())
                        {
                            var key  = item.GetProperty("key").GetString();
                            var val  = item.GetProperty("value").ToString();
                            var pair = new KVPair(key)
                            {
                                Value = Encoding.UTF8.GetBytes(val)
                            };
                            await client.KV.Put(pair);
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                }

                var restClient = new RestClient($"{consulAddress}/v1");
                restClient.AddDefaultHeader("X-Consul-Token", "b1c89741-57d9-4e2c-98e8-7a71e9ae6b95");
                var restRequest = new RestRequest("/acl/policies", Method.GET);
                var response    = restClient.Execute(restRequest);
                Console.WriteLine(response.Content);
                var plicyget    = new RestRequest("/acl/policy/24ca309b-4909-27ec-3722-460c22c58e2b", Method.GET);
                var policyresp  = restClient.Execute(plicyget);
                var policyPut   = new RestRequest("/acl/policy", Method.PUT);
                var policyToPut = new ConsulPolicy()
                {
                    Name = "read-configurationTest", Description = "Grants read access to all key/value information"
                };
                policyToPut.SetRule("key-prefix", "", "read");
                policyToPut.SetRule("key-prefix", "apps/jpc", "write");
                policyPut.AddJsonBody(policyToPut);
                var policyPutResp = restClient.Execute(policyPut);
                Console.WriteLine(policyPutResp.Content);
                Console.WriteLine(policyresp.Content);
                var content = response.Content;
                var acl     = client.ACL.List().Result;// ACL.List().Result;
                var keys    = client.KV.Keys("").Result;

                Console.WriteLine("Finished uploading Consul configuration");
                return(0);
            });

            try
            {
                app.Execute(args);
            }
            catch (CommandParsingException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Unable to execute application: {ex.Message}");
            }
        }
Esempio n. 26
0
        public async Task KV_DeleteCAS()
        {
            var client = new ConsulClient();

            var key = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var pair = new KVPair(key)
            {
                Value = value
            };

            var putRequest = await client.KV.CAS(pair);
            Assert.True(putRequest.Response);

            var getRequest = await client.KV.Get(key);
            pair = getRequest.Response;

            Assert.NotNull(pair);
            Assert.True(StructuralComparisons.StructuralEqualityComparer.Equals(value, pair.Value));
            Assert.True(getRequest.LastIndex > 0);

            pair.ModifyIndex = 1;
            var deleteRequest = await client.KV.DeleteCAS(pair);

            Assert.False(deleteRequest.Response);

            pair.ModifyIndex = getRequest.LastIndex;
            deleteRequest = await client.KV.DeleteCAS(pair);

            Assert.True(deleteRequest.Response);
        }
Esempio n. 27
0
        public static async Task Main(string[] args)
        {
            IConfiguration Configuration;

            Startup = ConsoleAppConfigurator.BootstrapApp();
            var serviceCollection = new ServiceCollection();

            Startup.ConfigureServices(serviceCollection);
            ServiceProvider = serviceCollection.BuildServiceProvider();
            Configuration   = Startup.Configuration;
            var ConfigOptionsTest = new ConfigOptions();

            Configuration.GetSection("ConfigOptions").Bind(ConfigOptionsTest);
            DataOptions         dataOptions        = ServiceProvider.GetService <IOptions <DataOptions> >().Value;
            ConfigOptions       configOptions      = ServiceProvider.GetService <IOptions <ConfigOptions> >().Value;
            IConsulServicesFind consulServicesFind = ServiceProvider.GetRequiredService <IConsulServicesFind>();

            ConsulOption consulOption = new ConsulOption();

            Configuration.GetSection("ConsulOption").Bind(consulOption);
            //注册10个不健康的ServiceA节点
            consulOption.ServiceHealthCheck = "http://127.0.0.1:8088/healthCheck";
            for (int i = 0; i < 10; i++)
            {
                RegisterConsul(consulOption);
            }
            // Find the ServiceA

            using (var consulClient = new ConsulClient(a => a.Address = new Uri(dataOptions.ConsulUrl)))
            {
                CatalogService[] services = consulServicesFind.FindConsulServices("ServiceA").ToArray();

                if (services != null && services.Any())
                {
                    // 模拟随机一台进行请求,这里只是测试,可以选择合适的负载均衡工具或框架
                    Random r       = new Random();
                    int    index   = r.Next(services.Count());
                    var    service = services.ElementAt(index);

                    using (HttpClient client = new HttpClient())
                    {
                        var response = await client.GetAsync($"http://{service.ServiceAddress}:{service.ServicePort}/weatherforecast");

                        var result = await response.Content.ReadAsStringAsync();

                        Console.WriteLine(result);
                    }
                }
            }
            //注册10个不健康的ServiceB节点
            consulOption.ServiceName = "ServiceB";
            for (int i = 0; i < 10; i++)
            {
                RegisterConsul(consulOption);
            }
            //Find the ServiceB
            using (var consulClient = new ConsulClient(a => a.Address = new Uri(dataOptions.ConsulUrl)))
            {
                CatalogService[] services = consulServicesFind.FindConsulServices("ServiceB").ToArray();
                if (services != null && services.Any())
                {
                    // 模拟随机一台进行请求,这里只是测试,可以选择合适的负载均衡工具或框架
                    Random r       = new Random();
                    int    index   = r.Next(services.Count());
                    var    service = services.ElementAt(index);

                    using (HttpClient client = new HttpClient())
                    {
                        var response = await client.GetAsync($"http://{service.ServiceAddress}:{service.ServicePort}/weatherforecast");

                        var result = await response.Content.ReadAsStringAsync();

                        Console.WriteLine(result);
                    }
                }
            }
            //Put or Replace the config, the ServiceA and ServiceB will sync the config
            using (var consulClient = new ConsulClient(a => a.Address = new Uri(dataOptions.ConsulUrl)))
            {
                string jsonString = File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config.json"), Encoding.Default);
                var    putPair    = new KVPair("Config.json")
                {
                    Value = Encoding.UTF8.GetBytes(jsonString)
                };

                var putAttempt = await consulClient.KV.Put(putPair);

                if (putAttempt.Response)
                {
                    var getPair = await consulClient.KV.Get("Config.json");

                    string result = Encoding.UTF8.GetString(getPair.Response.Value, 0,
                                                            getPair.Response.Value.Length);
                    Console.WriteLine(result);
                }
            }
        }
Esempio n. 28
0
        public async Task KV_WatchGet()
        {
            var client = new ConsulClient();

            var key = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var getRequest = await client.KV.Get(key);
            Assert.Null(getRequest.Response);

            var pair = new KVPair(key)
            {
                Flags = 42,
                Value = value
            };

#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
            Task.Run(async () =>
            {
                Task.Delay(1100).Wait();
                var p = new KVPair(key) { Flags = 42, Value = value };
                var putResponse = await client.KV.Put(p);
                Assert.True(putResponse.Response);
            });
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed

            var getRequest2 = await client.KV.Get(key, new QueryOptions() { WaitIndex = getRequest.LastIndex });
            var res = getRequest2.Response;

            Assert.NotNull(res);
            Assert.True(StructuralComparisons.StructuralEqualityComparer.Equals(value, res.Value));
            Assert.Equal(pair.Flags, res.Flags);
            Assert.True(getRequest2.LastIndex > 0);

            var deleteRequest = await client.KV.Delete(key);
            Assert.True(deleteRequest.Response);

            getRequest = await client.KV.Get(key);
            Assert.Null(getRequest.Response);
        }
Esempio n. 29
0
 internal static bool IsLeafNode(this KVPair kvPair)
 {
     return(!kvPair.Key.EndsWith("/"));
 }
Esempio n. 30
0
        public async Task KV_WatchList()
        {
            var client = new ConsulClient();

            var prefix = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var pairs = await client.KV.List(prefix);
            Assert.Null(pairs.Response);

#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
            Task.Run(async () =>
            {
                Thread.Sleep(100);
                var p = new KVPair(prefix) { Flags = 42, Value = value };
                var putRes = await client.KV.Put(p);
                Assert.True(putRes.Response);
            });
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed

            var pairs2 = await client.KV.List(prefix, new QueryOptions() { WaitIndex = pairs.LastIndex });
            Assert.NotNull(pairs2.Response);
            Assert.Equal(pairs2.Response.Length, 1);
            Assert.True(StructuralComparisons.StructuralEqualityComparer.Equals(value, pairs2.Response[0].Value));
            Assert.Equal(pairs2.Response[0].Flags, (ulong)42);
            Assert.True(pairs2.LastIndex > pairs.LastIndex);

            var deleteTree = await client.KV.DeleteTree(prefix);
            Assert.True(deleteTree.Response);
        }
Esempio n. 31
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Utils.ValidateRedirect().Length > 0) //Important check
            {
                Response.Redirect(Utils.ValidateRedirect(), true);
            }

            //Moving this to default page
            //if (Session["JSTurnedOn"] == null)
            //    Session["JSTurnedOn"] = "True"; //Assuming JavaScript is enabled, by default.

            ////Missing Session
            //if (Session["JSTurnedOn"] == null)
            //    //Response.Redirect("default.aspx?missingsession=true", true);
            //    Response.Redirect("conf.aspx?missingjs=true", true);

            //For Hailstorm check length
            if (this.searchbar.Terms.Length > 100) //Using a hundred limit for search contains sp
            {
                Response.Redirect("default.aspx", true);
            }

            if (!Page.IsPostBack)
            {
                if (Request.QueryString["js"] != null) //Test for JavaScript
                {
                    if (string.Compare(Request.QueryString["js"].ToString(), "2") == 0)
                    {
                        Session["JSTurnedOn"] = "False";
                    }
                }

                ////***EAC Create the session variables asap
                //Session["NCIPL_Pubs"] = "";
                //Session["NCIPL_Qtys"] = "";
                //Session["PUBENT_SearchKeyword"] = "";
                //Session["PUBENT_TypeOfCancer"] = "";
                //Session["PUBENT_Subject"] = "";
                //Session["PUBENT_Audience"] = "";
                //Session["PUBENT_ProductFormat"] = "";
                //Session["PUBENT_Language"] = "";
                //Session["PUBENT_StartsWith"] = "";
                //Session["PUBENT_Series"] = ""; //Or collection
                //Session["PUBENT_NewOrUpdated"] = "";
                //Session["PUBENT_Race"] = "";


                //Added the session values clearing (other than pubids qtys) back for HITT 7432
                Session["NCIPLEX_SearchKeyword"] = "";
                Session["NCIPLEX_TypeOfCancer"]  = "";
                Session["NCIPLEX_Subject"]       = "";
                Session["NCIPLEX_Audience"]      = "";
                Session["NCIPLEX_ProductFormat"] = "";
                Session["NCIPLEX_Language"]      = "";
                Session["NCIPLEX_StartsWith"]    = "";
                Session["NCIPLEX_Series"]        = ""; //Or collection
                Session["NCIPLEX_NewOrUpdated"]  = "";
                Session["NCIPLEX_Race"]          = "";
                Session["NCIPLEX_Criteria"]      = "";


                ListCancerTypes.DataSource = KVPair.GetKVPair("sp_NCIPLex_getCancerTypes");
                ListCancerTypes.DataBind();
                ListSubjs.DataSource = KVPair.GetKVPair("sp_NCIPLex_getSubjects");
                ListSubjs.DataBind();
                ListProductFormat.DataSource = KVPair.GetKVPair("sp_NCIPLex_getProductFormats");
                ListProductFormat.DataBind();
                ListCollections.DataSource = KVPair.GetKVPair("sp_NCIPLex_getCollections");
                ListCollections.DataBind();
                ListProductUpdates.DataSource = KVPair.GetKVPair("sp_NCIPLex_getProductUpdates");
                ListProductUpdates.DataBind();
                ListLanguages.DataSource = KVPair.GetKVPair("sp_NCIPLex_getLanguages");
                ListLanguages.DataBind();
                ListAudience.DataSource = KVPair.GetKVPair("sp_NCIPLex_getAudience");
                ListAudience.DataBind();
                ListRace.DataSource = KVPair.GetKVPair("sp_NCIPLex_getRace");
                ListRace.DataBind();

                ////ListAnnouncements.DataSource = KVPair.GetKVPair("sp_NCIPL_getAnnouncements");
                ////ListAnnouncements.DataBind();
                //ListAnnouncements.DataSource = Announcement.GetAnnouncements();
                //ListAnnouncements.DataBind();
                //if (ListAnnouncements.Items.Count == 0)
                //    divAnnouncements.Visible = false;
                ////ListFeatures.DataSource = KVPair.GetKVPair("sp_NCIPL_getFeatures");
                ////ListFeatures.DataBind();
                //ProductCollection p = DAL.DAL.GetProductFeatures();
                //ListFeatures.DataSource = p;
                //ListFeatures.DataBind();
            }
            else //HITT 7426 - The else code is added to handle enter key pressed in the text box
            {
                //txtSearch.Text = Session["PUBENT_SearchKeyword"].ToString();
                Session["NCIPLEX_SearchKeyword"] = this.searchbar.Terms;

                Session["NCIPLEX_TypeOfCancer"]  = "";
                Session["NCIPLEX_Subject"]       = "";
                Session["NCIPLEX_Audience"]      = "";
                Session["NCIPLEX_Language"]      = "";
                Session["NCIPLEX_ProductFormat"] = "";
                Session["NCIPLEX_StartsWith"]    = "";
                Session["NCIPLEX_Series"]        = "";
                Session["NCIPLEX_NewOrUpdated"]  = "";
                Session["NCIPLEX_Race"]          = "";

                Session["NCIPLEX_Criteria"] = Session["NCIPLEX_SearchKeyword"];

                /*Begin CR-31 - HITT 9815 */
                GlobalUtils.Utils objUtils    = new GlobalUtils.Utils();
                string            QueryParams = objUtils.GetQueryStringParams();
                objUtils = null;
                /*End CR-31 - HITT 9815 */

                //CR-31 HITT 9815 Response.Redirect("searchres.aspx");
                Response.Redirect("searchres.aspx" + "?sid=" + QueryParams);
            }


            //Set the appropriate tab
            //int intTotalQty = 0;
            //if (Session["NCIPL_Qtys"] != null)
            //{
            //    string[] qtys = Session["NCIPL_Qtys"].ToString().Split(new Char[] { ',' });
            //    for (int i = 0; i < qtys.Length; i++)
            //    {
            //        if (qtys[i].Length > 0)
            //            intTotalQty += Int32.Parse(qtys[i].ToString());
            //    }
            //}

            //string litText1 = @"<li id=""selected""><a href=""home.aspx"">Home</a></li>";
            //string litText2 = @"<li><a href=""self.aspx"">Self-Printing Options</a></li>";
            //string litText3 = @"<li><a href=""cart.aspx"">" + "Shopping Cart (" + intTotalQty.ToString() + ") </a></li>";
            //Master.LiteralText = "<ul>" + litText1 + litText2 + litText3 + "</ul>";

            //Begin - Code for Appropriate Tabs
            GlobalUtils.Utils UtilMethod = new GlobalUtils.Utils();
            if (Session["NCIPLEX_Pubs"] != null)
            {
                Master.LiteralText = UtilMethod.GetTabHtmlMarkUp(Session["NCIPLEX_Qtys"].ToString(), "home");
            }
            else
            {
                Master.LiteralText = UtilMethod.GetTabHtmlMarkUp("", "home");
            }
            UtilMethod = null;
            //End Code for Tab
        }
Esempio n. 32
0
        public async Task KV_Keys_DeleteRecurse()
        {
            var client = new ConsulClient();

            var prefix = GenerateTestKeyName();

            var putTasks = new bool[100];

            var value = Encoding.UTF8.GetBytes("test");
            for (var i = 0; i < 100; i++)
            {
                var pair = new KVPair(string.Join("/", prefix, GenerateTestKeyName()))
                {
                    Value = value
                };
                putTasks[i] = (await client.KV.Put(pair)).Response;
            }

            var pairs = await client.KV.Keys(prefix, "");
            Assert.NotNull(pairs.Response);
            Assert.Equal(pairs.Response.Length, putTasks.Length);
            Assert.False(pairs.LastIndex == 0);

            var deleteTree = await client.KV.DeleteTree(prefix);

            pairs = await client.KV.Keys(prefix, "");
            Assert.Null(pairs.Response);
        }
Esempio n. 33
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (shoppingcartV2 == null || shoppingcartV2.Count < 1)
            {  //***EAC I need a shopping cart at this point
                GlobalUtils.Utils.ClearAllSessions();
                Response.Redirect("~/login.aspx", true);
            }
            if (!GlobalUtils.Utils.isLoggedin())
            {  //***EAC I need a logged in user at this point
                GlobalUtils.Utils.ClearAllSessions();
                Response.Redirect("~/login.aspx", true);
            }
            string role = GlobalUtils.Utils.LoggedinRole();

            if (role != "NCIPL_LM")
            {
                throw (new ArgumentException("Your role is not allowed at this point."));
            }
            if (!IsPostBack)
            {
                Session["NCIPLCC_PrinterSplitOrder"] = null; //NCIPL_CC
                steps1.Activate("cell3");

                //NCIPL_CC - Populate Customer Type Dropdown
                KVPairCollection kvpairColl = KVPair.GetKVPair("sp_NCIPLLM_getTypeOfCustomer");
                foreach (KVPair kvpair in kvpairColl)
                {
                    ListItem li = new ListItem();
                    li.Value = kvpair.Key;
                    li.Text  = kvpair.Val;
                    drpCustomerType.Items.Add(li);
                }
                kvpairColl = null;

                //NCIPL_CC - Populate Order Media Dropdown
                KVPairCollection kvpairColl2 = KVPair.GetKVPair("sp_NCIPLLM_getOrderMedia");
                foreach (KVPair kvpair in kvpairColl2)
                {
                    ListItem li = new ListItem();
                    //li.Value = kvpair.Key;
                    li.Value = kvpair.Val; //Non-critical data. Just use description to make the data retrieval from tbl_orderheader easy.
                    li.Text  = kvpair.Val;
                    drpOrderMedia.Items.Add(li);
                }
                kvpairColl2 = null;

                drpDelivery.DataSource     = DAL2.DAL.GetAllShippingMethods();
                drpDelivery.DataTextField  = "Val";
                drpDelivery.DataValueField = "Key";
                drpDelivery.DataBind();
                drpDelivery.Items.Insert(0, new ListItem("USPS", "S1"));
                drpDelivery.Items.Insert(0, new ListItem("Courier", "C1"));
                drpDelivery.Items.Insert(0, new ListItem("[Select a Shipping Method]", ""));

                drpCountry.DataSource     = drp2Country.DataSource = DAL2.DAL.GetCountries();
                drpCountry.DataTextField  = drp2Country.DataTextField = "Val";
                drpCountry.DataValueField = drp2Country.DataValueField = "Key";
                drpCountry.DataBind();
                drp2Country.DataBind();
                drpCountry.Items.Insert(0, new ListItem("UNITED STATES", "US"));
                drp2Country.Items.Insert(0, new ListItem("UNITED STATES", "US"));

                BindShippingInfo();   //Restore ship vals
                BindBillingInfo();
                BindExtraInfo();

                BindTotals(shipto != null ? shipto.State : "");
            }
        }
Esempio n. 34
0
        public async Task KV_List_DeleteRecurse()
        {
            var client = new ConsulClient();

            var prefix = GenerateTestKeyName();


            var value = Encoding.UTF8.GetBytes("test");
            for (var i = 0; i < 100; i++)
            {
                var p = new KVPair(string.Join("/", prefix, GenerateTestKeyName()))
                {
                    Value = value
                };
                Assert.True((await client.KV.Put(p)).Response);
            }

            var pairs = await client.KV.List(prefix);
            Assert.NotNull(pairs.Response);
            Assert.Equal(pairs.Response.Length, 100);
            foreach (var pair in pairs.Response)
            {
                Assert.True(StructuralComparisons.StructuralEqualityComparer.Equals(value, pair.Value));
            }
            Assert.False(pairs.LastIndex == 0);

            await client.KV.DeleteTree(prefix);

            pairs = await client.KV.List(prefix);
            Assert.Null(pairs.Response);
        }
Esempio n. 35
0
        /// <summary>
        /// 使用Consul并且注册当前API服务
        /// </summary>
        /// <returns></returns>
        public static IApplicationBuilder UseConsul(this IApplicationBuilder app)
        {
            #region check consul
            if (!isUseConsulConfigCenter)
            {
            }
            if (string.IsNullOrEmpty(consulIP))
            {
                throw new Exception("配置项Consul IP为空--->Consul:IP");
            }

            if (string.IsNullOrEmpty(consulPort))
            {
                throw new Exception("配置项Consul 端口为空--->Consul:Port");
            }

            if (string.IsNullOrEmpty(serverIP))
            {
                throw new Exception("配置项服务IP为空--->Server:IP");
            }

            if (string.IsNullOrEmpty(serverPort))
            {
                throw new Exception("配置项服务端口为空--->Server:Port");
            }
            #endregion

            var lifetime = app.ApplicationServices.GetRequiredService <IHostApplicationLifetime>();
            using (var consulClient = new ConsulClient(x =>
            {
                x.Address = new Uri(consulServerUrl);
                if (!string.IsNullOrEmpty(aclToken))
                {
                    x.Token = aclToken;
                }
            }))
            {
                var config = consulClient.KV.Get(consulServiceConfigName).Result;


                var ocelotConfig    = consulClient.KV.Get("InternalConfiguration").Result;
                var ocelotConfigVal = Encoding.UTF8.GetString(ocelotConfig.Response.Value, 0, ocelotConfig.Response.Value.Length);


                if (config.StatusCode == HttpStatusCode.NotFound)
                {
                    var putPair    = new KVPair(consulServiceConfigName);
                    var putAttempt = consulClient.KV.Put(putPair).Result;
                }
                //服务名称
                var registration = new AgentServiceRegistration()
                {
                    ID      = Guid.NewGuid().ToString("N"),
                    Name    = consulServiceName,
                    Address = serverIP,
                    Port    = Convert.ToInt32(serverPort)
                };

                if (openHealth)
                {
                    registration.Check = new AgentServiceCheck()
                    {
                        //服务启动多久后注册
                        DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),
                        //健康检查时间间隔
                        Interval = TimeSpan.FromSeconds(10),
                        //健康检查地址
                        HTTP    = $"http://{serverIP}:{serverPort}/api/health",
                        Timeout = TimeSpan.FromSeconds(5)
                    };
                }
                // 注册服务
                consulClient.Agent.ServiceRegister(registration).Wait();
                // 应用程序终止时,注销服务
                lifetime.ApplicationStopping.Register(() =>
                {
                    consulClient.Agent.ServiceDeregister(registration.ID).Wait();
                });
                return(app);
            }
        }
        protected void DoSearch()
        {
            string strResult       = "";
            string strOrder        = "";
            string strOrderDate    = "";
            string currShipToEmail = "";

            if (Session["SEARCHORDER_CUSTOMERTYPEDESC"] != null)
            {
                if (Session["SEARCHORDER_CUSTOMERTYPEDESC"].ToString() != "")
                {
                    lblTypeofCustomer.Text    = Session["SEARCHORDER_CUSTOMERTYPEDESC"].ToString();
                    divTypeofCustomer.Visible = true;
                }
                else
                {
                    lblTypeofCustomer.Text    = "";
                    divTypeofCustomer.Visible = false;
                }
            }

            if (Session["SEARCHORDER_CUSTOMERTYPE"] != null)
            {
                if (Session["SEARCHORDER_CUSTOMERTYPE"].ToString() != "" && Session["SEARCHORDER_CUSTOMERTYPE"].ToString() != "All")
                {
                    strCustomerType = Convert.ToInt32(Session["SEARCHORDER_CUSTOMERTYPE"].ToString());
                }
                else
                {
                    strCustomerType = 0;
                }
            }
            else
            {
                strCustomerType = 0;
            }

            if (Session["SEARCHORDER_KEYWORD"] != null)
            {
                strKeyWord = Session["SEARCHORDER_KEYWORD"].ToString().Replace("'", "''");

                if (Session["SEARCHORDER_KEYWORD"].ToString() != "")
                {
                    lblSearchPhase.Text    = Session["SEARCHORDER_KEYWORD"].ToString();
                    divSearchPhase.Visible = true;
                }
                else
                {
                    lblSearchPhase.Text    = "";
                    divSearchPhase.Visible = false;
                }
            }
            else
            {
                lblSearchPhase.Text    = "";
                divSearchPhase.Visible = false;
            }

            if (Session["SEARCHORDER_SDATE"] != null)
            {
                strSDate = Session["SEARCHORDER_SDATE"].ToString();

                if (Session["SEARCHORDER_SDATE"].ToString() != "")
                {
                    lblStartDate.Text    = Session["SEARCHORDER_SDATE"].ToString();
                    divStartDate.Visible = true;
                }
                else
                {
                    lblStartDate.Text    = "";
                    divStartDate.Visible = false;
                }
            }
            else
            {
                lblStartDate.Text    = "";
                divStartDate.Visible = false;
            }

            if (Session["SEARCHORDER_EDATE"] != null)
            {
                strEDate = Session["SEARCHORDER_EDATE"].ToString();

                if (Session["SEARCHORDER_EDATE"].ToString() != "")
                {
                    lblEndDate.Text    = Session["SEARCHORDER_EDATE"].ToString();
                    divEndDate.Visible = true;
                }
                else
                {
                    lblEndDate.Text    = "";
                    divEndDate.Visible = false;
                }
            }
            else
            {
                lblEndDate.Text    = "";
                divEndDate.Visible = false;
            }

            if (Session["SEARCHORDER_CURRPAGE"] != null)
            {
                if (Session["SEARCHORDER_CURRPAGE"].ToString() != "")
                {
                    iCurrPage = Convert.ToInt32(Session["SEARCHORDER_CURRPAGE"].ToString());
                }
            }

            iToRec   = iCurrPage * iRecPerPage;
            iFromRec = iToRec - iRecPerPage + 1;

            iSearchOrderCount = DAL.DAL.GetSearchOrderCount(strCustomerType, strKeyWord, strSDate, strEDate);
            iTotalPage        = 0;
            if (iSearchOrderCount > 0)
            {
                this.divSearchOrderResult.Style["display"] = "";
                this.divNoRecord.Style["display"]          = "none";

                //--- Calculate Total number of pages for search result
                if ((iSearchOrderCount % iRecPerPage) == 0)
                {
                    iTotalPage = iSearchOrderCount / iRecPerPage;
                }
                else
                {
                    iTotalPage = (iSearchOrderCount / iRecPerPage) + 1;
                }

                //--- Search Result count
                this.lblRecordCount.Text         = iSearchOrderCount.ToString();
                this.divRecNavigation.Visible    = true;
                this.divRecNavigationBtm.Visible = true;

                //--- Get navigation on right
                Display_RecNavigation();

                //--- Get navigation dropdown
                if (bTotalPage)
                {
                    Navigation_AssignPages(iSearchOrderCount, iRecPerPage, iTotalPage);
                }


                CustomerCollection CustColl = DAL.DAL.GetSearchOrderResult(strCustomerType, strKeyWord, strSearchSort, strSDate, strEDate, iFromRec, iToRec);

                foreach (Customer o in CustColl)
                {
                    if (currShipToEmail == o.ShipToEmail)
                    {
                        //strResult = strResult + "<tr>" +
                        //            "<td colspan=\"5\">" +
                        //            "&nbsp;" +
                        //            "</td>" +
                        //            "</tr>";
                    }
                    else
                    {
                        //strResult = strResult + "<tr>" +
                        //            "<td colspan=\"5\">" +
                        //            "<div style=\"height:1px; border-top:solid 1px #bbb\"></div>" +
                        //            "</td>" +
                        //            "</tr>";
                    }

                    currShipToEmail = o.ShipToEmail;

                    strOrder     = "";
                    strOrderDate = "";

                    //StringCollection OrderColl = DAL.DAL.GetOrderByCustomer(o.CustID);
                    //foreach (string orderinvoice in OrderColl)

                    KVPairCollection kvpairColl = KVPair.GetKVPair_Order_Date(o.CustID);
                    foreach (KVPair kvpair in kvpairColl)
                    {
                        //strOrder = strOrder + "<a href=\"OrderDetail.aspx?CustID=" + o.CustID + "&OrderNum=" + orderinvoice + "&PrevPage=SearchOrder\">" + orderinvoice + "</a>";
                        strOrder = strOrder + "<a href=\"javascript:ViewOrderDetail('" + drpQJumpsN.ClientID + "'";
                        strOrder = strOrder + ", '" + hidCustID.ClientID + "'";
                        strOrder = strOrder + ", '" + hidOrderNum.ClientID + "'";
                        strOrder = strOrder + ", '" + hidPrevPage.ClientID + "'";
                        //strOrder = strOrder + ", '" + o.CustID + "', '" + orderinvoice + "', 'SearchOrder');\">" + orderinvoice + "</a>";
                        strOrder = strOrder + ", '" + o.CustID + "', '" + kvpair.Key + "', 'SearchOrder');\">" + kvpair.Key + "</a>";
                        strOrder = strOrder + "<br />";

                        strOrderDate = strOrderDate + kvpair.Val;
                        strOrderDate = strOrderDate + "<br />";
                    }

                    strResult = strResult + "<tr>" +
                                "<td>" + o.ShipToName + "<br />";
                    //"<a href=\"CustomerDetail.aspx?CustID=" + o.CustID + "\">" + o.ShipToName + "</a>" + "<br />";

                    if (o.ShipToAddr1 != "")
                    {
                        strResult = strResult + o.ShipToAddr1 + "<br />";
                    }
                    if (o.ShipToAddr2 != "")
                    {
                        strResult = strResult + o.ShipToAddr2 + "<br />";
                    }
                    if (o.ShipToCity != "" || o.ShipToState != "" || o.ShipToZip5 != "")
                    {
                        strResult = strResult + o.ShipToCity + ", " + o.ShipToState + " " + o.ShipToZip5;
                    }

                    strResult = strResult + "</td>" +
                                "<td>" + o.ShipToOrg + "</td>" +
                                "<td>" + o.ShipToEmail + "</td>" +
                                "<td>" + strOrder + "</td>" +
                                "<td>" + strOrderDate + "</td>" +
                                "</tr>";
                }

                ltrlSearchOrderResult.Text = strResult;
            }
            else
            {
                this.lblRecordCount.Text         = "";
                this.divRecNavigation.Visible    = false;
                this.divRecNavigationBtm.Visible = false;

                this.divSearchOrderResult.Style["display"] = "none";
                this.divNoRecord.Style["display"]          = "";
            }
        }
Esempio n. 37
0
        public async Task <bool> KVAcquireAsync(KVPair p, WriteOptions q)
        {
            var result = await _consulClient.KV.Acquire(p, q);

            return(result.Response);
        }
Esempio n. 38
0
        public void KV_CAS()
        {
            var client = new Client();

            var key = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var pair = new KVPair(key)
            {
                Value = value
            };

            var putRequest = client.KV.CAS(pair);
            Assert.IsTrue(putRequest.Response);

            var getRequest = client.KV.Get(key);
            pair = getRequest.Response;

            Assert.IsNotNull(pair);
            Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, pair.Value));
            Assert.IsTrue(getRequest.LastIndex > 0);

            value = Encoding.UTF8.GetBytes("foo");
            pair.Value = value;

            pair.ModifyIndex = 1;
            var casRequest = client.KV.CAS(pair);

            Assert.IsFalse(casRequest.Response);

            pair.ModifyIndex = getRequest.LastIndex;
            casRequest = client.KV.CAS(pair);
            Assert.IsTrue(casRequest.Response);

            var deleteRequest = client.KV.Delete(key);
            Assert.IsTrue(deleteRequest.Response);
        }
Esempio n. 39
0
        public async Task <bool> KVDeleteCasAsync(KVPair p, WriteOptions q)
        {
            var result = await _consulClient.KV.DeleteCAS(p, q);

            return(result.Response);
        }
Esempio n. 40
0
        public void KV_WatchGet()
        {
            var client = new Client();

            var key = GenerateTestKeyName();

            var value = Encoding.UTF8.GetBytes("test");

            var getRequest = client.KV.Get(key);
            Assert.IsNull(getRequest.Response);

            var pair = new KVPair(key)
            {
                Flags = 42,
                Value = value
            };

            Task.Run(() =>
            {
                Task.Delay(1100).Wait();
                var p = new KVPair(key) { Flags = 42, Value = value };
                var putResponse = client.KV.Put(p);
                Assert.IsTrue(putResponse.Response);
            });

            var getRequest2 = client.KV.Get(key, new QueryOptions() { WaitIndex = getRequest.LastIndex });
            var res = getRequest2.Response;

            Assert.IsNotNull(res);
            Assert.IsTrue(StructuralComparisons.StructuralEqualityComparer.Equals(value, res.Value));
            Assert.AreEqual(pair.Flags, res.Flags);
            Assert.IsTrue(getRequest2.LastIndex > 0);

            var deleteRequest = client.KV.Delete(key);
            Assert.IsTrue(deleteRequest.Response);

            getRequest = client.KV.Get(key);
            Assert.IsNull(getRequest.Response);
        }
Esempio n. 41
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //Check GUAM UserId, Role for NCIPL_CC
            if (GlobalUtils.UserRoles.getLoggedInUserId().Length == 0 || GlobalUtils.UserRoles.getLoggedInUserRole() < 1)
            {
                string currASPXfilename = System.IO.Path.GetFileName(Request.Path).ToString();
                Session["NCIPL_REGISTERREFERRER"] = currASPXfilename;
                Response.Redirect("~/login.aspx?msg=invaliduser&redir=" + currASPXfilename, true);
            }

            //Moving this to default page
            //if (Session["JSTurnedOn"] == null)
            //    Session["JSTurnedOn"] = "True"; //Assuming JavaScript is enabled, by default.

            ////Missing Session -- COMMENTED FOR NCIPLCC
            //if (Session["JSTurnedOn"] == null)
            //    Response.Redirect("default.aspx?missingsession=true", true);

            //For Hailstorm check length
            if (this.searchbar.Terms.Length > 100) //Using a hundred limit for search contains sp
            {
                Response.Redirect("default.aspx", true);
            }

            if (!Page.IsPostBack)
            {
                if (Request.QueryString["js"] != null) //Test for JavaScript
                {
                    if (string.Compare(Request.QueryString["js"].ToString(), "2") == 0)
                    {
                        Session["JSTurnedOn"] = "False";
                    }
                }

                //Begin CR-36 - A quick way to turn off Featured Images
                if (ConfigurationManager.AppSettings["TurnOffFeaturedImages"] != null)
                {
                    TurnOffFeaturedImages = ConfigurationManager.AppSettings["TurnOffFeaturedImages"];
                }
                //End CR-36

                ////***EAC Create the session variables asap
                Session["PUBENT_SearchKeyword"] = "";
                Session["PUBENT_TypeOfCancer"]  = "";
                Session["PUBENT_Subject"]       = "";
                Session["PUBENT_Audience"]      = "";
                Session["PUBENT_ProductFormat"] = "";
                Session["PUBENT_Language"]      = "";
                Session["PUBENT_StartsWith"]    = "";
                Session["PUBENT_Series"]        = ""; //Or collection
                Session["PUBENT_NewOrUpdated"]  = "";
                Session["PUBENT_Race"]          = "";
                Session["PUBENT_Criteria"]      = "";


                ListCancerTypes.DataSource = KVPair.GetKVPair("sp_NCIPLCC_getCancerTypes");
                ListCancerTypes.DataBind();
                ListSubjs.DataSource = KVPair.GetKVPair("sp_NCIPLCC_getSubjects");
                ListSubjs.DataBind();
                ListProductFormat.DataSource = KVPair.GetKVPair("sp_NCIPLCC_getProductFormats");
                ListProductFormat.DataBind();
                ListCollections.DataSource = KVPair.GetKVPair("sp_NCIPLCC_getCollections");
                ListCollections.DataBind();
                //CR 11-001-36 ListProductUpdates.DataSource = KVPair.GetKVPair("sp_NCIPL_getProductUpdates");
                //CR 11-001-36 ListProductUpdates.DataBind();
                ListLanguages.DataSource = KVPair.GetKVPair("sp_NCIPLCC_getLanguages");
                ListLanguages.DataBind();
                ListAudience.DataSource = KVPair.GetKVPair("sp_NCIPLCC_getAudience");
                ListAudience.DataBind();
                ListRace.DataSource = KVPair.GetKVPair("sp_NCIPLCC_getRace");
                ListRace.DataBind();

                //ListAnnouncements.DataSource = KVPair.GetKVPair("sp_NCIPL_getAnnouncements");
                //ListAnnouncements.DataBind();
                ListAnnouncements.DataSource = Announcement.GetAnnouncements();
                ListAnnouncements.DataBind();
                if (ListAnnouncements.Items.Count == 0)
                {
                    divAnnouncements.Visible = false;
                }
                //ListFeatures.DataSource = KVPair.GetKVPair("sp_NCIPL_getFeatures");
                //ListFeatures.DataBind();
                //CR-36 ProductCollection p = DAL.DAL.GetProductFeatures();
                //CR-36 ListFeatures.DataSource = p;
                //CR-36 ListFeatures.DataBind();

                #region StackRelated
                //ListFeatures.DataSource = DAL.DAL.GetStacks(); //CR-36
                //ListFeatures.DataBind(); //CR-36
                #endregion
            }

            //Begin - Code for Appropriate Tabs
            GlobalUtils.Utils UtilMethod = new GlobalUtils.Utils();
            if (Session["NCIPL_Pubs"] != null)
            {
                Master.LiteralText = UtilMethod.GetTabHtmlMarkUp(Session["NCIPL_Qtys"].ToString(), "home");
            }
            else
            {
                Master.LiteralText = UtilMethod.GetTabHtmlMarkUp("", "home");
            }
            UtilMethod = null;
            //End Code for Tab
        }
Esempio n. 42
0
 public Task <WriteResult <bool> > Put(KVPair p, CancellationToken ct = new CancellationToken())
 {
     throw new NotImplementedException();
 }