/// <summary> /// 获取所有队列,dbid>0时会带入查询条件 /// </summary> public static List <Skill> GetSkills(int?dbid = null, string name = null) { var result = new List <Skill>(); var dns = new List <SwitcheVQ>(); if (name == null) { dns = GetSwitcheDNs(name); } else { dns = GetSwitcheDNs("V" + name); } var icfg = OpenCfg(); try { CfgSkillQuery query = new CfgSkillQuery(icfg); query.State = CfgObjectState.CFGEnabled; if (dbid.HasValue) { query.Dbid = dbid.Value; } var skills = query.Execute(); foreach (var item in skills.ToList()) { var info = new Skill() { DBID = item.DBID, Name = item.Name, ObjectPath = item.ObjectPath, LastDate = DateTime.Now, LastValue = 0, }; if (info.Name.StartsWith("Q")) { var dn = dns.Where(x => x.DnName.ToLower() == ("V" + info.Name).ToLower()).FirstOrDefault(); if (dn != null) { info.Number = dn.Number; info.SwitchName = dn.SwitchName; result.Add(info); } } else if (info.Name.StartsWith("VQ")) { var dn = dns.Where(x => x.DnName.ToLower() == (info.Name).ToLower()).FirstOrDefault(); if (dn != null) { info.Number = dn.Number; info.SwitchName = dn.SwitchName; result.Add(info); } } } } catch (Exception ex) { throw ex; } finally { CloseCfg(icfg); } return(result); }
internal static OutputValues AddUpdateSkillToAgent(string operationType, string userName, string skillName, Int32 skillLevel) { OutputValues output = new OutputValues(); try { CfgPersonQuery queryPerson = new CfgPersonQuery(); queryPerson.UserName = userName; queryPerson.TenantDbid = _configContainer.TenantDbId; CfgPerson person = _configContainer.ConfServiceObject.RetrieveObject <CfgPerson>(queryPerson); if (operationType == "Add") { if (person != null) { ICollection <CfgSkillLevel> agentSkills = person.AgentInfo.SkillLevels; bool flag = false; foreach (CfgSkillLevel checkSkill in agentSkills) { if (checkSkill.Skill.Name == skillName) { flag = true; break; } } if (!flag) { CfgSkillQuery querySkill = new CfgSkillQuery(); querySkill.TenantDbid = _configContainer.TenantDbId; querySkill.Name = skillName; CfgSkill skill = _configContainer.ConfServiceObject.RetrieveObject <CfgSkill>(querySkill); CfgSkillLevel skillToAdd = new CfgSkillLevel(_configContainer.ConfServiceObject, person); skillToAdd.Skill = skill; skillToAdd.Level = Convert.ToInt32(skillLevel); person.AgentInfo.SkillLevels.Add(skillToAdd); person.Save(); } } } else if (operationType == "Edit") { if (person != null) { ICollection <CfgSkillLevel> agentSkills = person.AgentInfo.SkillLevels; foreach (CfgSkillLevel editingSkill in agentSkills) { if (editingSkill.Skill.Name == skillName) { editingSkill.Level = Convert.ToInt32(skillLevel); person.Save(); break; } } } } output.MessageCode = "200"; output.Message = "Skill " + operationType + "ed Successfully."; person = _configContainer.ConfServiceObject.RetrieveObject <CfgPerson>(queryPerson); if (person != null) { //Update the skill level to MySkills if (person.AgentInfo.SkillLevels != null && person.AgentInfo.SkillLevels.Count > 0) { Datacontext.GetInstance().MySkills.Clear(); foreach (CfgSkillLevel skill in person.AgentInfo.SkillLevels) { Datacontext.GetInstance().MySkills.Add(new Agent.Interaction.Desktop.Helpers.MySkills(skill.Skill.Name.ToString(), skill.Level)); } } else { Datacontext.GetInstance().MySkills.Clear(); } } } catch (Exception commonException) { output.MessageCode = "2001"; output.Message = (commonException.InnerException == null ? commonException.Message : commonException.InnerException.Message); } return(output); }