public ActionResult Create(CreateFormModel createFormModel) { RequestResult requestResult = new RequestResult(); try { var model = Session["OrganizationCreateFormModel"] as CreateFormModel; model.FormInput = createFormModel.FormInput; requestResult = OrganizationDataAccessor.Create(model); if (requestResult.IsSuccess) { HttpRuntime.Cache.Remove("Organizations"); Session.Remove("OrganizationFormAction"); Session.Remove("OrganizationCreateFormModel"); var account = Session["Account"] as Account; account.OrganizationPermissions = OrganizationDataAccessor.GetOrganizationPermissions(account.OrganizationId); Session["Account"] = account; } } catch (Exception e) { var error = new Error(MethodBase.GetCurrentMethod(), e); Logger.Log(error); requestResult.ReturnError(error); //throw; } return(Content(JsonConvert.SerializeObject(requestResult))); }
public ActionResult InitTree() { try { var account = Session["Account"] as Account; account.OrganizationPermissions = OrganizationDataAccessor.GetOrganizationPermissions(account.OrganizationId); Session["Account"] = account; var organizations = HttpRuntime.Cache.GetOrInsert("Organizations", () => OrganizationDataAccessor.GetAllOrganizations()); RequestResult requestResult = new RequestResult(); if (account.RootOrganizationId == new Guid()) { requestResult = OrganizationDataAccessor.GetTreeItem(organizations, account.RootOrganizationId, account); } else { requestResult = OrganizationDataAccessor.GetRootTreeItem(organizations, account.RootOrganizationId, account); } if (requestResult.IsSuccess) { return(PartialView("_Tree", JsonConvert.SerializeObject((List <TreeItem>)requestResult.Data))); } else { return(PartialView("_Error", requestResult.Error)); } } catch (Exception e) { var error = new Error(MethodBase.GetCurrentMethod(), e); Logger.Log(error); return(PartialView("_Error", error)); throw; } }
public static RequestResult GetTreeItem(List<Models.Shared.Organization> organizations, string refOrganizationId, string organizationId) { RequestResult result = new RequestResult(); try { var treeItemList = new List<TreeItem>(); var attributes = new Dictionary<Define.EnumTreeAttribute, string>() { { Define.EnumTreeAttribute.NodeType, string.Empty }, { Define.EnumTreeAttribute.ToolTip, string.Empty }, { Define.EnumTreeAttribute.OrganizationId, string.Empty }, { Define.EnumTreeAttribute.CheckpointId, string.Empty } }; using (CFContext context = new CFContext()) { var checkpoints = context.Checkpoints.Where(x => x.OrganizationId == new Guid(organizationId)).OrderBy(x => x.CId).ToList(); foreach (var checkpoint in checkpoints) { var treeItem = new TreeItem() { Title = string.Format("{0}/{1}", checkpoint.CId, checkpoint.Name) }; attributes[Define.EnumTreeAttribute.NodeType] = Define.EnumTreeNodeType.Checkpoint.ToString(); attributes[Define.EnumTreeAttribute.ToolTip] = string.Format("{0}/{1}", checkpoint.CId, checkpoint.Name); attributes[Define.EnumTreeAttribute.OrganizationId ] = organizationId; attributes[Define.EnumTreeAttribute.CheckpointId] = checkpoint.CheckpointId.ToString(); foreach (var attribute in attributes) { treeItem.Attributes[attribute.Key.ToString()] = attribute.Value; } treeItemList.Add(treeItem); } var availableOrganizationIds = OrganizationDataAccessor.GetOrganizationPermissions(new Guid(refOrganizationId)).Select(x => x.OrganizationId).ToList(); var newOrganizations = organizations.Where(x => x.ParentId == new Guid(organizationId)).OrderBy(x => x.OId).ToList(); foreach (var organization in newOrganizations) { var downStreamOrganizationIds = OrganizationDataAccessor.GetDownStreamOrganizationIds(organization.OrganizationId, true); if (context.Checkpoints.Any(x => downStreamOrganizationIds.Contains(x.OrganizationId) && availableOrganizationIds.Contains(x.OrganizationId))) { var treeItem = new TreeItem() { Title = organization.Name }; attributes[Define.EnumTreeAttribute.NodeType] = Define.EnumTreeNodeType.Organization.ToString(); attributes[Define.EnumTreeAttribute.ToolTip] = string.Format("{0}/{1}", organization.OId, organization.Name); attributes[Define.EnumTreeAttribute.OrganizationId] = organization.OrganizationId.ToString(); attributes[Define.EnumTreeAttribute.CheckpointId] = string.Empty; foreach (var attribute in attributes) { treeItem.Attributes[attribute.Key.ToString()] = attribute.Value; } treeItem.State = "closed"; treeItemList.Add(treeItem); } } } result.ReturnData(treeItemList); } catch (Exception ex) { var err = new Error(MethodBase.GetCurrentMethod(), ex); Logger.Log(err); result.ReturnError(err); } return result; }