public static void OrganizationTree() { var cheatInvest = new OrganizationHierarchy("CEO"); //Directors Employee devDirector = cheatInvest.AddEmployee("DEV Director", JobTitle.DIRECTOR, cheatInvest.CEO); Employee qaDirector = cheatInvest.AddEmployee("QA Director", JobTitle.DIRECTOR, cheatInvest.CEO); //Managers Employee funcTestManager = cheatInvest.AddEmployee("Functional Test Manager", JobTitle.MANAGER, qaDirector); Employee perfTestManager = cheatInvest.AddEmployee("Performance Test Manager", JobTitle.MANAGER, qaDirector); //Employees Employee seniorQA = cheatInvest.AddEmployee("Senior QA", JobTitle.EMPLOYEE, funcTestManager); Employee juniorQA = cheatInvest.AddEmployee("Junior QA", JobTitle.EMPLOYEE, funcTestManager); //Print subordinates //cheatInvest.CEO.PrintSubordinateDetails(); //funcTestManager.PrintSubordinateDetails(); //Find Employee List <Employee> findSeniorQA = cheatInvest.FindEmployee("Senior QA"); cheatInvest.PrintChiefsHierarchy(seniorQA); cheatInvest.PrintChiefsHierarchy(cheatInvest.CEO); }
private static void Get(UserSecurityContext user, HttpContext context, CancellationToken cancel) { try { OrganizationHierarchyProviderBase provider = OrganizationHierarchyManager.Instance.GetProvider(user); OrganizationHierarchy hierarchy = provider.GetReporting(); if (provider != null) { IEnumerable <KeyValuePair <CompoundIdentity, CompoundIdentity> > links = hierarchy.GetAllPairs(); JArray jlinks = Jsonifier.ToJson(links); if (jlinks != null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, jlinks.ToString()); } else { RestUtils.Push(context.Response, JsonOpStatus.Ok, "[]"); } } RestUtils.Push(context.Response, RestUtils.JsonOpStatus(JsonOpStatus.Failed)); } catch { RestUtils.Push(context.Response, JsonOpStatus.Failed); return; } }
public override OrganizationHierarchy Get(CompoundIdentity hierarchyId) { if (!hierarchyId.IsNullOrEmpty() && this.CanGet()) { NpgsqlCommand cmd = Db.GetCmd(Db.ConnectionString); cmd.CommandText = Db.Select + Db.WhereId; cmd.Parameters.AddWithValue("sid", hierarchyId.DataStoreIdentity); cmd.Parameters.AddWithValue("id", hierarchyId.Identity); NpgsqlDataReader rdr = Db.ExecuteReader(cmd); OrganizationHierarchy o = null; if (rdr != null) { try { if (rdr.Read()) { o = new PgOrgHierarchy(this.Context, new CompoundIdentity(DbReaderUtils.GetGuid(rdr, 0), DbReaderUtils.GetGuid(rdr, 1)), new CompoundIdentity(DbReaderUtils.GetGuid(rdr, 2), DbReaderUtils.GetGuid(rdr, 3)), DbReaderUtils.GetString(rdr, 4), DbReaderUtils.GetString(rdr, 5)); if (cmd.Connection.State == System.Data.ConnectionState.Open) { cmd.Connection.Close(); } } } catch { } finally { cmd.Dispose(); } } return(o); } return(null); }
private static void GetParent(CompoundIdentity cid, UserSecurityContext user, HttpContext context, CancellationToken cancel) { try { OrganizationHierarchyProviderBase provider = OrganizationHierarchyManager.Instance.GetProvider(user); OrganizationHierarchy hierarchy = provider.GetReporting(); if (provider != null) { IEnumerable <CompoundIdentity> parentids = hierarchy.GetParentIds(cid); JArray jparentids = Jsonifier.ToJson(parentids); if (jparentids != null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, jparentids.ToString()); } else { RestUtils.Push(context.Response, JsonOpStatus.Ok, "[]"); } return; } RestUtils.Push(context.Response, RestUtils.JsonOpStatus(JsonOpStatus.Failed)); } catch { RestUtils.Push(context.Response, RestUtils.JsonOpStatus(JsonOpStatus.Failed)); return; } }
public void AddOrganizationHierarchy(Organization parent,Organization child,OrganizationHierarchyType organizationHierarchyType) { Guard.Against<ArgumentNullException>(_organizationHierarchyRepository == null, "建構式需指定repository"); OrganizationHierarchy organizationHierarchy = new OrganizationHierarchy() { Level = 1, ParentOrganizationId = parent.Id, ChildOrganizationId = child.Id, OrganizationHierarchyType = organizationHierarchyType }; _organizationHierarchyRepository.SaveOrUpdate(organizationHierarchy); ISpecification<OrganizationHierarchy> specFindParents = new Specification<OrganizationHierarchy>( s => s.ChildOrganizationId == parent.Id && s.OrganizationHierarchyType == organizationHierarchyType); IList<OrganizationHierarchy> allParents = _organizationHierarchyRepository.Query(specFindParents); foreach(var up in allParents) { OrganizationHierarchy hierarchy = new OrganizationHierarchy() { Level = up.Level + 1, ParentOrganizationId = up.ParentOrganizationId, ChildOrganizationId = child.Id, OrganizationHierarchyType = organizationHierarchyType }; _organizationHierarchyRepository.SaveOrUpdate(hierarchy); } }
public override bool Delete(OrganizationHierarchy hierarchy) { if (hierarchy != null) { return(Delete(hierarchy.Identity)); } return(false); }
public static JObject ToJson(OrganizationHierarchy org) { if (org != null) { JObject o = new JObject(); o.Add(JsonUtils.Id, JsonUtils.ToJson(org.Identity)); o.Add(JsonUtils.OwnerId, JsonUtils.ToJson(org.OwningOrgId)); o.Add(JsonUtils.Name, org.Name); o.Add(JsonUtils.Description, org.Description); return(o); } return(null); }
static void Main(string[] args) { int[][] matrix = //new int[][] { new int[] { 1, 1, 1 }, new int[] { 1, 0, 1 }, new int[] { 1, 1, 1 } }; SetMatrixZeroes_73.SetZeroes(matrix); string ssss = "#2#1#3"; string[] split = ssss.Split(new[] { '#' }, StringSplitOptions.RemoveEmptyEntries); TreeNode root = new TreeNode(Int32.Parse(split[0])); int dist = HammingDistance_461.HammingDistance(1, 4); //CoinChange.CoinChange2(new[] { 186, 419, 83, 408 }, 6249); Console.WriteLine(CoinChange.canGetExactChange(6249, new[] { 186, 419, 83, 408 })); return; var inpOrg = new List <string>() { "B2,E5,F6", "A1,B2,C3,D4", "D4,G7,I9", "G7,H8" }; OrganizationHierarchy.Print(inpOrg); return; var head = new ListNode(1); var ln2 = new ListNode(3); var ln0 = new ListNode(0); var ln4 = new ListNode(2); head.next = ln2; ln2.next = ln0; ln0.next = ln4; //ln4.next = ln2; bool isPalindrome = new _234_PalindromeLinkedList().IsPalindrome(head); var cycelStartNode = new LinkedListCyclePosition().DetectCycle(head); //new SubSets_78().Subsets(new int[] { 1, 2, 3 }); //var ln9 = new ListNode(9); //var ln1 = new ListNode(1); //ln1.next = ln9; //var ln5 = new ListNode(5); //ln5.next = ln1; //var head = new ListNode(4); //head.next = ln5; //PrintLinkList(head); // new _237_deleteLinkListNodecs().DeleteNode(ln5); PrintLinkList(head); //int cccc = new ClassB().TrapRainWater(new[] { 4, 9, 4, 5, 3, 2}); //int cccc = new ClassB().TrapRainWater(new[] { 4, 2, 3 }); //int cccc = new ClassB().TrapRainWater(new[] { 2, 0, 2 }); int cccc = new ClassB().TrapRainWater(new[] { 0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1 }); //int cccc= new ClassB().StrStr("mississippi", "pi"); return; Console.WriteLine(SellBuy_121.MaxProfit(new[] { 1, 2 })); //Console.WriteLine(new _58LenOflastWord().LengthOfLastWord("azx vx")); return; //var tn = new TreeNode(10); //tn.left = new TreeNode(5); //tn.right = new TreeNode(15); //tn.right.left = new TreeNode(6); //tn.right.right = new TreeNode(20); var tn = new TreeNode(3); tn.left = new TreeNode(1); tn.left.left = new TreeNode(0); tn.left.right = new TreeNode(2); tn.left.right.right = new TreeNode(3); tn.right = new TreeNode(5); tn.right.left = new TreeNode(4); tn.right.right = new TreeNode(6); bool isValid = new Solution98().IsValidBST(tn); return; //var l1 = new ListNode(1); //var l2 = new ListNode(2); //var l3 = new ListNode(3); //var l4 = new ListNode(4); //var l5 = new ListNode(5); //l1.next = l2; //l2.next = l3; //l3.next = l4; //l4.next = l5; //l5.next = null; //var rll = new ReverseLinkList(); //PrintLinkList(rll.ReverseList(l1)); //Console.ReadKey(); //return; ClassA a = new ClassA(); ClassB b = new ClassB(); a.B = b; b.A = a; //Solution s = new Solution(); //var xx = s.Generate(10); //foreach (IList<int> row in xx) // Console.WriteLine(string.Join(',', row)); }
static void BuildTestCTE(UserSecurityContext context) { OrganizationHierarchyManager.Instance.Initialize(); Console.WriteLine("OHM state: " + OrganizationHierarchyManager.Instance.State); OrganizationHierarchyManager.Instance.Start(); Console.WriteLine("OHM state: " + OrganizationHierarchyManager.Instance.State); if (OrganizationHierarchyManager.Instance.State != Osrs.Runtime.RunState.Running) { Console.WriteLine("Cannot test OHM - not running"); return; } CompoundIdentity systemId = new CompoundIdentity(Guid.NewGuid(), Guid.NewGuid()); IEnumerable <Organization> orgs = OrganizationManager.Instance.GetOrganizationProvider(context).Get("Pacific Northwest National Lab"); Organization owner = null; foreach (Organization cur in orgs) { owner = cur; break; } OrganizationHierarchyProviderBase prov = OrganizationHierarchyManager.Instance.GetProvider(context); OrganizationHierarchy hier = null; if (prov.Exists("temp")) { hier = prov.Get("temp"); if (hier != null) { Console.WriteLine("Fetched hierarchy"); } } if (hier == null) { hier = prov.Create("temp", owner); if (hier != null) { Console.WriteLine("Created hierarchy"); } } if (hier != null) { List <CompoundIdentity> idList = new List <CompoundIdentity>(); for (int i = 0; i <= 100; i++) { idList.Add(new CompoundIdentity(Guid.NewGuid(), Guid.NewGuid())); } for (int i = 0; i < 10; i++) { hier.Add(idList[i], idList[i + 10]); hier.Add(idList[i + 10], idList[i + 20]); hier.Add(idList[i + 20], idList[i + 30]); hier.Add(idList[i + 30], idList[i + 40]); hier.Add(idList[i + 40], idList[i + 50]); hier.Add(idList[i + 50], idList[i + 60]); hier.Add(idList[i + 60], idList[i + 70]); hier.Add(idList[i + 70], idList[i + 80]); hier.Add(idList[i + 80], idList[i + 90]); } //Console.WriteLine("Targeting org: 0403e3d2-b8a2-42cf-80fc-848fcf86aaad,b32cad24-9338-45f4-8d99-bd1aeb43b804"); Console.WriteLine("Targeting org: " + idList[30].DataStoreIdentity.ToString() + "," + idList[30].Identity.ToString()); Console.WriteLine("Getting children - no limit specified"); IEnumerable <CompoundIdentity> orgIds = hier.GetChildrenIds(idList[30]); //IEnumerable<CompoundIdentity> orgIds = hier.GetChildrenIds(new CompoundIdentity(new Guid("0403e3d2-b8a2-42cf-80fc-848fcf86aaad"), new Guid("b32cad24-9338-45f4-8d99-bd1aeb43b804"))); int ct = 0; foreach (CompoundIdentity curId in orgIds) { //Console.Write(curId.DataStoreIdentity.ToString() + "," + curId.Identity.ToString()+" "); ct++; } Console.WriteLine(); Console.WriteLine("Got " + ct + " items"); Console.WriteLine("Getting children - max limit specified"); orgIds = hier.GetChildrenIds(idList[30], true); //orgIds = hier.GetChildrenIds(new CompoundIdentity(new Guid("0403e3d2-b8a2-42cf-80fc-848fcf86aaad"), new Guid("b32cad24-9338-45f4-8d99-bd1aeb43b804")), true); ct = 0; foreach (CompoundIdentity curId in orgIds) { //Console.Write(curId.DataStoreIdentity.ToString() + "," + curId.Identity.ToString()+" "); ct++; } Console.WriteLine(); Console.WriteLine("Got " + ct + " items"); if (prov.Delete(hier)) { Console.WriteLine("Deleted hierarchy"); } else { Console.WriteLine("Failed deleting hierarchy"); } } else { Console.WriteLine("Failed to create hierarchy"); } }
public static void Handle(UserSecurityContext user, string method, HttpContext context, CancellationToken cancel) { if (context.Request.Method == "POST") { if (method.Equals("all", StringComparison.OrdinalIgnoreCase)) { Get(user, context, cancel); return; } else if (method.Equals("children", StringComparison.OrdinalIgnoreCase)) { try { //parse request JToken token = JsonUtils.GetDataPayload(context.Request); CompoundIdentity cid = JsonUtils.ToId(token["parentid"]); string outputType = (token["outputType"] != null) ? token["outputType"].ToString() : ""; string recurse = token["recurse"] != null ? token["recurse"].ToString() : null; //get default hierarchy OrganizationHierarchyProviderBase provider = OrganizationHierarchyManager.Instance.GetProvider(user); OrganizationHierarchy hierarchy = provider.GetReporting(); //get children ids IEnumerable <CompoundIdentity> children = null; if (recurse != null) { children = hierarchy.GetChildrenIds(cid, Convert.ToBoolean(recurse)); } else { children = hierarchy.GetChildrenIds(cid); } if (children == null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, "[]"); //empty return; } //return children ids or objects JArray jchildren = null; if (outputType.Equals("values")) { OrganizationProviderBase orgProvider = OrganizationManager.Instance.GetOrganizationProvider(user); List <Organization> orgs = new List <Organization>(); foreach (CompoundIdentity child in children) { orgs.Add(orgProvider.Get(child)); } jchildren = Jsonifier.ToJson(orgs); } else { jchildren = Jsonifier.ToJson(children); } if (jchildren != null) { RestUtils.Push(context.Response, JsonOpStatus.Ok, jchildren.ToString()); } else { RestUtils.Push(context.Response, RestUtils.JsonOpStatus(JsonOpStatus.Failed)); //empty returned above } } catch { RestUtils.Push(context.Response, RestUtils.JsonOpStatus(JsonOpStatus.Failed)); } return; } else if (method.Equals("parent", StringComparison.OrdinalIgnoreCase)) { try { CompoundIdentity cid = JsonUtils.ToId(JsonUtils.GetDataPayload(context.Request)); if (cid != null) { GetParent(cid, user, context, cancel); return; } RestUtils.Push(context.Response, RestUtils.JsonOpStatus(JsonOpStatus.Failed)); } catch { RestUtils.Push(context.Response, RestUtils.JsonOpStatus(JsonOpStatus.Failed)); return; } } else if (method.Equals("add", StringComparison.OrdinalIgnoreCase)) { try { //parse request JToken token = JsonUtils.GetDataPayload(context.Request); CompoundIdentity parent = JsonUtils.ToId(token["parentid"]); HashSet <CompoundIdentity> child_cids = JsonUtils.ToIds(token["childid"]); //1 or more //get default hierarchy OrganizationHierarchyProviderBase provider = OrganizationHierarchyManager.Instance.GetProvider(user); OrganizationHierarchy hierarchy = provider.GetReporting(); //insert bool result = hierarchy.Add(parent, child_cids); if (result == true) { RestUtils.Push(context.Response, JsonOpStatus.Ok); } else { RestUtils.Push(context.Response, JsonOpStatus.Failed); } } catch { RestUtils.Push(context.Response, JsonOpStatus.Failed); } return; } else if (method.Equals("move", StringComparison.OrdinalIgnoreCase)) { try { //parse request JToken token = JsonUtils.GetDataPayload(context.Request); CompoundIdentity old_cid = JsonUtils.ToId(token["parentid"]); CompoundIdentity new_cid = JsonUtils.ToId(token["newparentid"]); HashSet <CompoundIdentity> cids = JsonUtils.ToIds(token["childid"]); //get default hierarchy OrganizationHierarchyProviderBase provider = OrganizationHierarchyManager.Instance.GetProvider(user); OrganizationHierarchy hierarchy = provider.GetReporting(); //move bool result = hierarchy.Move(old_cid, new_cid, cids); if (result == true) { RestUtils.Push(context.Response, JsonOpStatus.Ok); } else { RestUtils.Push(context.Response, JsonOpStatus.Failed); } } catch { RestUtils.Push(context.Response, JsonOpStatus.Failed); } return; } else if (method.Equals("remove", StringComparison.OrdinalIgnoreCase)) { try { //parse request JToken token = JsonUtils.GetDataPayload(context.Request); CompoundIdentity parent_cid = JsonUtils.ToId(token["parentid"]); HashSet <CompoundIdentity> child_cids = JsonUtils.ToIds(token["childid"]); //get default hierarchy OrganizationHierarchyProviderBase provider = OrganizationHierarchyManager.Instance.GetProvider(user); OrganizationHierarchy hierarchy = provider.GetReporting(); //remove membership bool result = hierarchy.Remove(parent_cid, child_cids); if (result == true) { RestUtils.Push(context.Response, JsonOpStatus.Ok); } else { RestUtils.Push(context.Response, JsonOpStatus.Failed); } } catch { RestUtils.Push(context.Response, JsonOpStatus.Failed); } return; } } context.Response.StatusCode = HttpStatusCodes.Status400BadRequest; }