public void AddVariousKeyClass() { Converts.Repository .AddStringTo <Guid>(Guid.TryParse); IKeyToParametersConverter converter = CreateConverter(); KeyValueCollection parameters = new KeyValueCollection(); converter.Add(parameters, Int32Key.Create(5, "Product")); Assert.AreEqual(2, parameters.Keys.Count()); Assert.AreEqual(5, parameters.Get <int>("ID")); Assert.AreEqual("Product", parameters.Get <string>("Type")); parameters = new KeyValueCollection(); converter.Add(parameters, StringKey.Create("abcdef", "Product")); Assert.AreEqual(2, parameters.Keys.Count()); Assert.AreEqual("abcdef", parameters.Get <string>("Identifier")); Assert.AreEqual("Product", parameters.Get <string>("Type")); parameters = new KeyValueCollection(); Guid guid = Guid.NewGuid(); converter.Add(parameters, GuidKey.Create(guid, "Product")); Assert.AreEqual(2, parameters.Keys.Count()); Assert.AreEqual(guid, parameters.Get <Guid>("Guid")); Assert.AreEqual("Product", parameters.Get <string>("Type")); }
static void TestExtensions() { KeyValueCollection collection = new KeyValueCollection(); collection.Add("id", "5"); collection.Add("key", (int?)5); Console.WriteLine(collection.Get <string>("idx", null)); Console.WriteLine(collection.Get <int?>("key")); }
public void AddPrefixWithoutType() { IKeyToParametersConverter converter = CreateConverter(); KeyValueCollection parameters = new KeyValueCollection(); converter.AddWithoutType(parameters, "Source", Int32Key.Create(5, "Product")); converter.AddWithoutType(parameters, "Target", Int32Key.Create(8, "Product")); Assert.AreEqual(2, parameters.Keys.Count()); Assert.AreEqual(5, parameters.Get <int>("SourceID")); Assert.AreEqual(8, parameters.Get <int>("TargetID")); }
public async Task <TResult> HandleAsync(TQuery query) { T instance = handlerFactory.Create(); IKeyValueCollection customValues = new KeyValueCollection() .Add("Query", query); await pipeline.ExecuteAsync(instance, customValues); return(customValues.Get <TResult>("Result")); }
public void AddWithoutType() { IKeyToParametersConverter converter = CreateConverter(); KeyValueCollection parameters = new KeyValueCollection(); converter.AddWithoutType(parameters, Int32Key.Create(5, "Product")); Assert.AreEqual(1, parameters.Keys.Count()); Assert.AreEqual(5, parameters.Get <int>("ID")); }
/// <summary> /// 获取所有员工(坐席)、坐席信息、坐席能力 /// 此方法效率太慢 /// </summary> /// <returns></returns> public static List <Person> GetPersons() { var result = new List <Person>(); var icfg = OpenCfg(); try { CfgPersonQuery qPerson1 = new CfgPersonQuery(icfg); qPerson1.TenantDbid = 101; qPerson1.State = CfgObjectState.CFGEnabled; qPerson1.IsAgent = 2; var persons = qPerson1.Execute(); foreach (var person1 in persons) { var info = new Person(); info.DBID = person1.DBID; info.EmployeeID = person1.EmployeeID; info.FirstName = person1.FirstName; info.UserName = person1.UserName; if (person1.AgentInfo != null) { info.AgentInfo.IsInitAgentInfo = true; //坐席信息 foreach (var item in person1.AgentInfo.AgentLogins) { if (item.AgentLogin != null && item.AgentLogin.State == CfgObjectState.CFGEnabled) { info.AgentInfo.AgentLogins.Add(new AgentLogin() { DBID = item.AgentLogin.DBID, LoginCode = item.AgentLogin.LoginCode, }); } } //队列 foreach (var item in person1.AgentInfo.SkillLevels) { if (item.Skill != null && item.Skill.State == CfgObjectState.CFGEnabled) { info.AgentInfo.SkillLevels.Add(new SkillLevel() { DBID = item.Skill.DBID, Level = item.Level }); } } } //服务能力 if (person1.AgentInfo != null) { info.VOICE = 1; if (person1.AgentInfo.CapacityRule != null) { CfgScript script = person1.AgentInfo.CapacityRule; if (script != null) { KeyValueCollection kv = script.UserProperties; if (kv != null && kv.Get("_CRWizardMediaCapacityList_") != null) { KeyValueCollection kv1 = (KeyValueCollection)kv.Get("_CRWizardMediaCapacityList_"); foreach (var key in kv1.AllKeys) { if (key == "chat") { info.CHAT = kv1.GetAsInt(key); } else if (key == "voice") { info.VOICE = kv1.GetAsInt(key); } } } } } } result.Add(info); } } catch (Exception ex) { throw ex; } finally { CloseCfg(icfg); } return(result); }
/// <summary> /// 获取员工(坐席、管理员)、坐席信息、坐席能力 /// </summary> /// <param name="employeeId">员工编号</param> public static Person GetPerson(string employeeId) { var result = new List <Person>(); var icfg = OpenCfg(); try { CfgPersonQuery qPerson1 = new CfgPersonQuery(icfg); qPerson1.TenantDbid = 101; qPerson1.State = CfgObjectState.CFGEnabled; qPerson1.IsAgent = 2;//只有坐席能登录 qPerson1.EmployeeId = employeeId; var persons = qPerson1.Execute(); foreach (var person1 in persons) { var info = new Person(); info.DBID = person1.DBID; info.EmployeeID = person1.EmployeeID; info.FirstName = person1.FirstName; info.UserName = person1.UserName; if (person1.AgentInfo != null) { info.AgentInfo.IsInitAgentInfo = true; //坐席信息 foreach (var item in person1.AgentInfo.AgentLogins) { if (item.AgentLogin != null && item.AgentLogin.State == CfgObjectState.CFGEnabled) { info.LoginCode = item.AgentLogin.LoginCode; info.AgentInfo.AgentLogins.Add(new AgentLogin() { DBID = item.AgentLogin.DBID, LoginCode = item.AgentLogin.LoginCode, }); } } //队列 foreach (var item in person1.AgentInfo.SkillLevels) { if (item.Skill != null && item.Skill.State == CfgObjectState.CFGEnabled) { info.AgentInfo.SkillLevels.Add(new SkillLevel() { DBID = item.Skill.DBID, Level = item.Level }); } } } //服务能力 if (person1.AgentInfo != null) { info.VOICE = 1; if (person1.AgentInfo.CapacityRule != null) { CfgScript script = person1.AgentInfo.CapacityRule; if (script != null) { KeyValueCollection kv = script.UserProperties; if (kv != null && kv.Get("_CRWizardMediaCapacityList_") != null) { KeyValueCollection kv1 = (KeyValueCollection)kv.Get("_CRWizardMediaCapacityList_"); foreach (var key in kv1.AllKeys) { if (key == "chat") { info.CHAT = kv1.GetAsInt(key); } //else if (key == "voice") //{ // info.VOICE = kv1.GetAsInt(key); //} } } } } } if (string.IsNullOrEmpty(info.LoginCode)) { info.LoginCode = ""; } result.Add(info); } } catch (Exception ex) { throw ex; } finally { CloseCfg(icfg); } if (result.Count > 0) { var person = result.First(); var ip = HttpContext.Current.Request.UserHostAddress; using (var db = new Tele.DataLibrary.SPhoneEntities()) { var ipdn = db.SPhone_IPDN.Where(x => x.PlaceIP == ip).FirstOrDefault(); if (ipdn != null) { person.DN = ipdn.DNNo; person.Place = ipdn.Place; } } return(person); } return(null); }