Example #1
0
        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)));
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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;
        }