コード例 #1
0
        public async Task<OrganizationUnitDto> CreateOrganizationUnit(CreateOrganizationUnitInput input)
        {
            var organizationUnit = new OrganizationUnit(AbpSession.TenantId, input.DisplayName, input.ParentId);
            
            await _organizationUnitManager.CreateAsync(organizationUnit);
            await CurrentUnitOfWork.SaveChangesAsync();

            return organizationUnit.MapTo<OrganizationUnitDto>();
        }
コード例 #2
0
        protected virtual async Task ValidateOrganizationUnitAsync(OrganizationUnit organizationUnit)
        {
            var siblings = (await FindChildrenAsync(organizationUnit.ParentId))
                .Where(ou => ou.Id != organizationUnit.Id)
                .ToList();

            if (siblings.Any(ou => ou.DisplayName == organizationUnit.DisplayName))
            {
                throw new UserFriendlyException(L("OrganizationUnitDuplicateDisplayNameWarning", organizationUnit.DisplayName));
            }
        }
コード例 #3
0
 public virtual async Task <bool> IsInOrganizationUnitAsync(TUser user, OrganizationUnit ou)
 {
     return(await _userOrganizationUnitRepository.CountAsync(uou =>
                                                             uou.UserId == user.Id && uou.OrganizationUnitId == ou.Id
                                                             ) > 0);
 }
コード例 #4
0
 public void GetByID_Test()
 {
     organ_testObject = busOrgan.GetByID(ADOOrgan.ID);
     Assert.AreEqual(organ_testObject.ID, ADOOrgan.ID);
 }
コード例 #5
0
 public virtual async Task RemoveFromOrganizationUnitAsync(TRole role, OrganizationUnit ou)
 {
     await _organizationUnitRoleRepository.DeleteAsync(uor =>
                                                       uor.RoleId == role.Id && uor.OrganizationUnitId == ou.Id);
 }
コード例 #6
0
 protected virtual OrganizationUnitDto MapToEntityDto(OrganizationUnit entity)
 {
     return(ObjectMapper.Map <OrganizationUnitDto>(entity));
 }
コード例 #7
0
 /// <summary>
 /// 更新组织信息
 /// </summary>
 /// <param name="user"></param>
 /// <returns></returns>
 public abstract bool UpdateOrganizationUnit(OrganizationUnit unit);
コード例 #8
0
 public static void Update(this OrganizationUnitManager manager, OrganizationUnit organizationUnit)
 {
     AsyncHelper.RunSync(() => manager.UpdateAsync(organizationUnit));
 }
コード例 #9
0
 public void TestGetLastUnitCode()
 {
     OrganizationUnit.GetLastUnitCode("00055").ShouldBe("00055");
     OrganizationUnit.GetLastUnitCode("00019.00055.00001").ShouldBe("00001");
 }
コード例 #10
0
 public void TestCalculateNextCode()
 {
     OrganizationUnit.CalculateNextCode("00019.00055.00001").ShouldBe("00019.00055.00002");
     OrganizationUnit.CalculateNextCode("00009").ShouldBe("00010");
 }
コード例 #11
0
 public void TestGetRelativeCode()
 {
     OrganizationUnit.GetRelativeCode("00042", null).ShouldBe("00042");
     OrganizationUnit.GetRelativeCode("00019.00055.00001", "00019").ShouldBe("00055.00001");
 }
コード例 #12
0
 public void TestAppendCode()
 {
     OrganizationUnit.AppendCode(null, "00005").ShouldBe("00005");
     OrganizationUnit.AppendCode("00042", "00034").ShouldBe("00042.00034");
 }
コード例 #13
0
        public string[] UpdatePost_PostsPage(string state, string SelectedOrganizationPostID, string OrganizationPostCode, string OrganizationPostName)
        {
            this.InitializeCulture();

            string[] retMessage = new string[4];

            decimal OrganizationPostID         = 0;
            decimal selectedOrganizationPostID = decimal.Parse(this.StringBuilder.CreateString(SelectedOrganizationPostID));

            OrganizationPostCode = this.StringBuilder.CreateString(OrganizationPostCode);
            OrganizationPostName = this.StringBuilder.CreateString(OrganizationPostName);
            UIActionType     uam = UIActionType.ADD;
            OrganizationUnit organizationPost = new OrganizationUnit();

            try
            {
                switch (this.StringBuilder.CreateString(state))
                {
                case "Add":
                    uam = UIActionType.ADD;
                    organizationPost.ParentID = selectedOrganizationPostID;
                    organizationPost.ID       = 0;
                    break;

                case "Edit":
                    uam = UIActionType.EDIT;
                    if (selectedOrganizationPostID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoOrganizationPostSelectedforEdit").ToString()), retMessage);
                        return(retMessage);
                    }
                    else
                    {
                        organizationPost.ID = selectedOrganizationPostID;
                    }
                    break;

                case "Delete":
                    uam = UIActionType.DELETE;
                    if (selectedOrganizationPostID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoOrganizationPostSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    else
                    {
                        organizationPost.ID = selectedOrganizationPostID;
                    }
                    break;

                default:
                    break;
                }

                if (uam != UIActionType.DELETE)
                {
                    organizationPost.CustomCode = OrganizationPostCode;
                    organizationPost.Name       = OrganizationPostName;
                }
                OrganizationPostID = this.OrganizationPostBusiness.SaveChanges(organizationPost, uam);

                retMessage[0] = GetLocalResourceObject("RetSuccessType").ToString();
                string SuccessMessageBody = string.Empty;
                switch (uam)
                {
                case UIActionType.ADD:
                    SuccessMessageBody = GetLocalResourceObject("AddComplete").ToString();
                    break;

                case UIActionType.EDIT:
                    SuccessMessageBody = GetLocalResourceObject("EditComplete").ToString();
                    break;

                case UIActionType.DELETE:
                    SuccessMessageBody = GetLocalResourceObject("DeleteComplete").ToString();
                    break;

                default:
                    break;
                }
                retMessage[1] = SuccessMessageBody;
                retMessage[2] = "success";
                retMessage[3] = OrganizationPostID.ToString();
                return(retMessage);
            }
            catch (UIValidationExceptions ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
                return(retMessage);
            }
            catch (UIBaseException ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
                return(retMessage);
            }
            catch (Exception ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
                return(retMessage);
            }
        }
コード例 #14
0
 private OrganizationUnit CreateOU(string displayName, string code, long? parentId = null)
 {
     var ou = new OrganizationUnit(_defaultTenant.Id, displayName, parentId) {Code = code};
     _session.Save(ou);
     return ou;
 }
コード例 #15
0
 public virtual async Task UpdateAsync(OrganizationUnit organizationUnit)
 {
     await ValidateOrganizationUnitAsync(organizationUnit);
     await OrganizationUnitRepository.UpdateAsync(organizationUnit);
 }
コード例 #16
0
        /// <summary>
        /// 263插入ou逻辑
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="YXTdepId">父级id</param>
        /// <param name="isAll">是否完全同步</param>
        /// <returns>bool</returns>
        public static bool YXTOU(DataTable dt, string YXTdepId, bool isAll, SyncResult syn)
        {
            bool isTrue = true;

            try
            {
                DataRow[] OUInfo = dt.Select("depId='" + YXTdepId + "'");
                for (int i = 0; i < OUInfo.Length; i++)
                {
                    string           NewGuid      = Guid.NewGuid().ToString();
                    string           h3OUid       = GetOUObjectiID(OUInfo[i]["departmentId"] + string.Empty);               //获取对应H3OU的GUID
                    string           H3OUParentID = GetOUObjectiID(YXTdepId);                                               //获取对应H3OU的父GUID
                    OrganizationUnit unit         = new OrganizationUnit();
                    Unit             H3Unit       = OThinker.H3.Controllers.AppUtility.Engine.Organization.GetUnit(h3OUid); //获取H3中对应的组织
                    if (h3OUid != "" && H3Unit != null)                                                                     //之前同步过,进行更新
                    {
                        unit = (OrganizationUnit)H3Unit;
                    }

                    unit.Name = OUInfo[i]["departmentName"] + string.Empty;
                    if (H3OUParentID != "")
                    {
                        unit.ParentID = H3OUParentID;
                    }
                    else
                    {
                        unit.ParentID = "18f923a7-5a5e-426d-94ae-a55ad1a4b240";
                    }
                    unit.Description = OUInfo[i]["departmentName"] + string.Empty;
                    unit.SortKey     = int.Parse(OUInfo[i]["top"] + string.Empty);
                    if (h3OUid != "")//之前同步过,
                    {
                        if (isAll)
                        {
                            if (H3Unit == null)//之前同步过,后面删除后再次同步,使用之前的ObjectID
                            {
                                unit.ObjectID    = h3OUid;
                                unit.CreatedTime = DateTime.Now;
                                isTrue           = AddUnit(unit, "新增OU", syn);
                            }
                            else//同步过,进行更新
                            {
                                unit.ModifiedTime = DateTime.Now;
                                isTrue            = UpdateUnit(unit, "更新OU", syn);
                            }
                        }
                    }
                    else//之前没有同步过,curUnit一定为null,不考虑人为删除对应的关系表
                    {
                        unit.ObjectID    = NewGuid;
                        unit.CreatedTime = DateTime.Now;
                        isTrue           = AddUnit(unit, "新增OU", syn);
                        InsertToCorresponding(OUInfo[i]["departmentId"] + string.Empty, OUInfo[i]["departmentName"] + string.Empty, NewGuid, YXTdepId);
                    }
                    YXTOU(dt, OUInfo[i]["departmentId"] + string.Empty, isAll, syn);
                }
            }
            catch (Exception e)
            {
                isTrue = false;
                OThinker.H3.Controllers.AppUtility.Engine.LogWriter.Write(e.ToString());
            }

            return(isTrue);
        }
コード例 #17
0
 public void TestGetParentCode()
 {
     OrganizationUnit.GetParentCode("00055").ShouldBe(null);
     OrganizationUnit.GetParentCode("00019.00055.00001").ShouldBe("00019.00055");
 }
コード例 #18
0
 private async Task<OrganizationUnitDto> CreateOrganizationUnitDto(OrganizationUnit organizationUnit)
 {
     var dto = organizationUnit.MapTo<OrganizationUnitDto>();
     dto.MemberCount = await _userOrganizationUnitRepository.CountAsync(uou => uou.OrganizationUnitId == organizationUnit.Id);
     return dto;
 }
コード例 #19
0
 public void TestCreateCode()
 {
     OrganizationUnit.CreateCode().ShouldBe(null);
     OrganizationUnit.CreateCode(42).ShouldBe("00042");
     OrganizationUnit.CreateCode(1, 1, 3).ShouldBe("00001.00001.00003");
 }
コード例 #20
0
        /// <summary>
        ///پر کردن عمق 0 و1 درخت پست های سازمانی
        /// </summary>
        private void Fill_trvPosts_Posts()
        {
            string imageUrl  = "Images\\TreeView\\folder.gif";
            string imagePath = "Images/TreeView/folder.gif";

            string[] retMessage = new string[4];
            this.InitializeCulture();
            try
            {
                OrganizationUnit rootOrgPost     = this.OrganizationPostBusiness.GetOrganizationUnitTree();
                TreeViewNode     rootOrgPostNode = new TreeViewNode();
                rootOrgPostNode.ID = rootOrgPost.ID.ToString();
                string rootOrgPostNodeText = string.Empty;
                if (GetLocalResourceObject("OrgNode_trvPosts_Post") != null)
                {
                    rootOrgPostNodeText = GetLocalResourceObject("OrgNode_trvPosts_Post").ToString();
                }
                else
                {
                    rootOrgPostNodeText = rootOrgPost.Name;
                }
                rootOrgPostNode.Text = rootOrgPostNodeText;
                OrganizationPostNodeValue rootOrgPostNodeValue = new OrganizationPostNodeValue();
                rootOrgPostNodeValue.CustomCode    = rootOrgPost.CustomCode;
                rootOrgPostNodeValue.ParentPath    = string.Empty;
                rootOrgPostNodeValue.PersonnelName = string.Empty;
                rootOrgPostNodeValue.PersonnelCode = string.Empty;
                rootOrgPostNodeValue.PersonnelID   = "0";
                rootOrgPostNode.Value = this.JsSerializer.Serialize(rootOrgPostNodeValue);
                if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + imageUrl))
                {
                    rootOrgPostNode.ImageUrl = imagePath;
                }
                this.trvPosts_Post.Nodes.Add(rootOrgPostNode);
                IList <OrganizationUnit> OrganizationUnitChlidList = this.OrganizationPostBusiness.GetChilds(rootOrgPost.ID);
                foreach (OrganizationUnit childOrgPost in OrganizationUnitChlidList)
                {
                    TreeViewNode childOrgPostNode = new TreeViewNode();
                    childOrgPostNode.ID   = childOrgPost.ID.ToString();
                    childOrgPostNode.Text = childOrgPost.Name;
                    OrganizationPostNodeValue childOrgPostNodeValue = new OrganizationPostNodeValue();
                    childOrgPostNodeValue.CustomCode    = childOrgPost.CustomCode;
                    childOrgPostNodeValue.ParentPath    = childOrgPost.ParentPath;
                    childOrgPostNodeValue.PersonnelName = childOrgPost.Person != null ? childOrgPost.Person.Name : string.Empty;
                    childOrgPostNodeValue.PersonnelCode = childOrgPost.Person != null ? childOrgPost.Person.PersonCode : string.Empty;
                    childOrgPostNodeValue.PersonnelID   = childOrgPost.Person != null?childOrgPost.Person.ID.ToString() : "0";

                    childOrgPostNode.Value = this.JsSerializer.Serialize(childOrgPostNodeValue);
                    if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + imageUrl))
                    {
                        childOrgPostNode.ImageUrl = imagePath;
                    }
                    childOrgPostNode.ContentCallbackUrl = "XmlOrganizationPostsLoadonDemand.aspx?ParentOrgPostID=" + childOrgPost.ID + "&LangID=" + this.LangProv.GetCurrentLanguage();
                    if (this.OrganizationPostBusiness.GetChilds(childOrgPost.ID).Count > 0)
                    {
                        childOrgPostNode.Nodes.Add(new TreeViewNode());
                    }
                    rootOrgPostNode.Nodes.Add(childOrgPostNode);
                }
                if (OrganizationUnitChlidList.Count > 0)
                {
                    rootOrgPostNode.Expanded = true;
                }
            }
            catch (UIValidationExceptions ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
                this.ErrorHiddenField_Posts.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
            }
            catch (UIBaseException ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
                this.ErrorHiddenField_Posts.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
            }
            catch (Exception ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
                this.ErrorHiddenField_Posts.Value = this.exceptionHandler.CreateErrorMessage(retMessage);
            }
        }
コード例 #21
0
 private async Task<OrganizationUnitDto> CreateOrganizationUnitDto(OrganizationUnit organizationUnit)
 {
     var dto = organizationUnit.MapTo<OrganizationUnitDto>();
     dto.MemberCount = await _userOrganizationUnitRepository.CountAsync(uou => uou.OrganizationUnitId == organizationUnit.Id);
     return dto;
 }
コード例 #22
0
 public virtual async Task <bool> IsInOrganizationUnitAsync(TRole role, OrganizationUnit ou)
 {
     return(await _organizationUnitRoleRepository.CountAsync(uou =>
                                                             uou.RoleId == role.Id && uou.OrganizationUnitId == ou.Id
                                                             ) > 0);
 }
コード例 #23
0
        private async Task <OrganizationUnit> CreateAndSaveOrganizationUnit(List <OrganizationUnit> organizationUnits, Tenant tenant, string displayName, OrganizationUnit parent = null)
        {
            long?  nullable;
            int?   nullable1 = new int?(tenant.Id);
            string str       = displayName;

            if (parent == null)
            {
                nullable = null;
            }
            else
            {
                nullable = new long?(parent.Id);
            }
            OrganizationUnit organizationUnit = new OrganizationUnit(nullable1, str, nullable);

            await this._organizationUnitManager.CreateAsync(organizationUnit);

            await this.CurrentUnitOfWork.SaveChangesAsync();

            organizationUnits.Add(organizationUnit);
            return(organizationUnit);
        }
コード例 #24
0
 public void GetOrganizationTreeTest()
 {
     organ_testObject = busOrgan.GetOrganizationUnitTree();
     Assert.AreEqual(organ_testObject.ParentID, 0);
 }
コード例 #25
0
 private OrganizationUnit CreateOu(OrganizationUnitsDemoDbContext context, string displayName, string code, long? parentId = null)
 {
     var ou = new OrganizationUnit(AbpSession.GetTenantId(), displayName, parentId) {Code = code};
     context.OrganizationUnits.Add(ou);
     context.SaveChanges();
     return ou;
 }
コード例 #26
0
 public void GetById_PersistPersonTest()
 {
     organ_testObject = busOrgan.GetByID(ADOOrgan.ID);
     Assert.IsNotNull(organ_testObject.Person);
     Assert.AreEqual(organ_testObject.Person.BarCode, "0000");
 }
コード例 #27
0
 public void Test2()
 {
     var oU = new OrganizationUnit(null, "RootNode", null);
 }
コード例 #28
0
 public virtual async Task RemoveFromOrganizationUnitAsync(TUser user, OrganizationUnit ou)
 {
     await _userOrganizationUnitRepository.DeleteAsync(uou => uou.UserId == user.Id && uou.OrganizationUnitId == ou.Id);
 }
コード例 #29
0
 public async Task UpdateAsync(OrganizationUnit organizationUnit)
 {
     await _entityManager.UpdateAsync(organizationUnit);
 }
コード例 #30
0
 public virtual async Task CreateAsync(OrganizationUnit organizationUnit)
 {
     organizationUnit.Code = await GetNextChildCodeAsync(organizationUnit.ParentId);
     await ValidateOrganizationUnitAsync(organizationUnit);
     await OrganizationUnitRepository.InsertAsync(organizationUnit);
 }
コード例 #31
0
        public void Create()
        {
            var orgsLv1 = new OrganizationUnit[]
            {
                new OrganizationUnit(_tenantId, "上海烟草机械有限责任公司", null)
                {
                    Code = "00"
                },
                new OrganizationUnit(_tenantId, "新场铸造公司", null)
                {
                    Code = "21"
                },
                new OrganizationUnit(_tenantId, "鑫隆烟机厂", null)
                {
                    Code = "22"
                },
                new OrganizationUnit(_tenantId, "兴松配件厂", null)
                {
                    Code = "23"
                },
                new OrganizationUnit(_tenantId, "借中烟机械技术中心", null)
                {
                    Code = "28"
                }
            };

            foreach (var org in orgsLv1)
            {
                _context.OrganizationUnits.Add(org);
            }
            _context.SaveChanges();


            var ctmcOrgId = _context.OrganizationUnits.First(o => o.DisplayName == "上海烟草机械有限责任公司").Id;
            var orgsLv2   = new OrganizationUnit[]
            {
                new OrganizationUnit(_tenantId, "总经理室", null)
                {
                    Code = "01", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "党委书记室", null)
                {
                    Code = "02", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "公司办公室", null)
                {
                    Code = "03", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "政治工作部", null)
                {
                    Code = "04", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "工会", null)
                {
                    Code = "05", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "综合管理部", null)
                {
                    Code = "06", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "信息技术部", null)
                {
                    Code = "07", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "技术开发部", null)
                {
                    Code = "08", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "质量检验部", null)
                {
                    Code = "09", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "客户中心", null)
                {
                    Code = "10", ParentId = ctmcOrgId
                },

                new OrganizationUnit(_tenantId, "生产管理部", null)
                {
                    Code = "11", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "财务会计部", null)
                {
                    Code = "13", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "人力资源部", null)
                {
                    Code = "14", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "安全保卫部", null)
                {
                    Code = "15", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "行政事业部", null)
                {
                    Code = "16", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "服务中心", null)
                {
                    Code = "17", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "设备动力部", null)
                {
                    Code = "18", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "制造一部", null)
                {
                    Code = "19", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "制造二部", null)
                {
                    Code = "20", ParentId = ctmcOrgId
                },

                new OrganizationUnit(_tenantId, "烟草门市部", null)
                {
                    Code = "24", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "其他", null)
                {
                    Code = "25", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "中臣配件公司", null)
                {
                    Code = "26", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "退管会办公室", null)
                {
                    Code = "27", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "技能培训部", null)
                {
                    Code = "30", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "中臣数控公司", null)
                {
                    Code = "31", ParentId = ctmcOrgId
                },

                new OrganizationUnit(_tenantId, "技术改造办公室", null)
                {
                    Code = "32", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "综合计划部门", null)
                {
                    Code = "33", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "采购中心", null)
                {
                    Code = "34", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "数字化制造基地(筹)", null)
                {
                    Code = "35", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "招投标管理和核价办公室", null)
                {
                    Code = "38", ParentId = ctmcOrgId
                },
                new OrganizationUnit(_tenantId, "战略发展部", null)
                {
                    Code = "39", ParentId = ctmcOrgId
                },
            };

            foreach (var org in orgsLv2)
            {
                _context.OrganizationUnits.Add(org);
            }
            _context.SaveChanges();
        }
コード例 #32
0
        public Result Add([FromBody] IEnumerable <OrganizationUnit> units)
        {
            if (units == null || !units.Any())
            {
                return(Result.GenError <Result>(Error.ParamError));
            }

            if (units.Any(x => x.Name.IsNullOrEmpty()))
            {
                return(Result.GenError <Result>(Error.OrganizationUnitNotEmpty));
            }

            if (units.GroupBy(x => x.Name).Any(y => y.Count() > 1))
            {
                return(Result.GenError <Result>(Error.OrganizationUnitDuplicate));
            }

            var parentIds = units.Select(x => x.ParentId).Distinct();
            var sames     = units.Select(x => x.Name).Distinct();

            if (OrganizationUnitHelper.GetHaveSame(parentIds, sames))
            {
                return(Result.GenError <Result>(Error.OrganizationUnitIsExist));
            }

            var names = units.Select(x => x.Name).Distinct();
            IEnumerable <OrganizationUnit> parentUnits = null;
            var p = parentIds.Where(x => x != 0);

            if (p.Any())
            {
                parentUnits = OrganizationUnitHelper.Instance.GetByIds <OrganizationUnit>(p);
                if (p.Count() != parentUnits.Count())
                {
                    return(Result.GenError <Result>(Error.ParentNotExist));
                }
            }

            var underUnits = OrganizationUnitHelper.GetUnderOrganizationUnits(parentIds);

            if (underUnits.Any(x => units.Any(y => y.ParentId == x.ParentId && y.Name == x.Name)))
            {
                return(Result.GenError <Result>(Error.OrganizationUnitIsExist));
            }
            var userId         = Request.GetIdentityInformation();
            var markedDateTime = DateTime.Now;

            foreach (var unit in units)
            {
                unit.CreateUserId   = userId;
                unit.MarkedDateTime = markedDateTime;
                unit.Name           = unit.Name ?? "";
            }
            OrganizationUnitHelper.Instance.Add(units);

            var newUnits = OrganizationUnitHelper.GetUnderOrganizationUnits(parentIds, names);

            foreach (var unit in units)
            {
                var nu = newUnits.FirstOrDefault(x => x.ParentId == unit.ParentId && x.Name == unit.Name);
                if (nu != null)
                {
                    unit.Id   = nu.Id;
                    unit.Code = (10000 + nu.Id).ToString();
                    OrganizationUnit parent = null;
                    if (unit.ParentId != 0)
                    {
                        parent = parentUnits.FirstOrDefault(x => x.Id == unit.ParentId);
                    }
                    unit.CodeLink = unit.ParentId == 0 ? $"{unit.Code}" : $"{parent?.CodeLink ?? ""},{unit.Code}";
                }
            }
            OrganizationUnitHelper.UpdateOrganizationUnit(units);
            return(Result.GenError <Result>(Error.Success));
        }
コード例 #33
0
 public static bool IsStatic(this OrganizationUnit entity)
 {
     return((entity as ZeroOrganizationUnit)?.IsStatic == true);
 }
コード例 #34
0
        private async Task <OrganizationUnit> CreateAndSaveOrganizationUnit(List <OrganizationUnit> organizationUnits, Tenant tenant, string displayName, OrganizationUnit parent = null)
        {
            var organizationUnit = new OrganizationUnit(tenant.Id, displayName, parent == null ? (long?)null : parent.Id);

            await _organizationUnitManager.CreateAsync(organizationUnit);

            await CurrentUnitOfWork.SaveChangesAsync();

            organizationUnits.Add(organizationUnit);

            return(organizationUnit);
        }
コード例 #35
0
        public async Task <(Backlog, Project)> CreateProjectInBacklog(string name, BacklogDefinition backlogDefinition, OrganizationUnit assignee)
        {
            var result = await _http.PostAsJsonAsync($"api/Projects",
                                                     new CreateProjectDTO { Name = name, BacklogId = backlogDefinition.Id, AssigneeId = assignee.Id });

            if (!result.IsSuccessStatusCode)
            {
                throw new ApplicationException("Не получилось добавить проект.");
            }

            var createdProject = await result.Content.ReadFromJsonAsync <OrganizationUnit>();

            var backlog = await GetBacklog(backlogDefinition);

            var project = backlog.Projects.Single(x => x.Id == createdProject.Id);

            return(backlog, project);
        }
コード例 #36
0
        private async Task<OrganizationUnit> CreateAndSaveOrganizationUnit(List<OrganizationUnit> organizationUnits, Tenant tenant, string displayName, OrganizationUnit parent = null)
        {
            var organizationUnit = new OrganizationUnit(tenant.Id, displayName, parent == null ? (long?)null : parent.Id);

            await _organizationUnitManager.CreateAsync(organizationUnit);
            await CurrentUnitOfWork.SaveChangesAsync();

            organizationUnits.Add(organizationUnit);

            return organizationUnit;
        }
コード例 #37
0
        public virtual Task <List <User> > GetUsersInOrganizationUnit(OrganizationUnit organizationUnit, bool includeChildren = false)
        {
            var users = _userManager.GetUsersInOrganizationUnit(organizationUnit, includeChildren);

            return(users);
        }
コード例 #38
0
        public string[] UpdatePost_PostsPage(string state, string SelectedOrganizationPostID, string PersonnelID, string OrganizationPostCode, string OrganizationPostName, string OrganizationPostParentPath)
        {
            this.InitializeCulture();

            string[] retMessage = new string[4];

            try
            {
                decimal OrganizationPostID         = 0;
                decimal selectedOrganizationPostID = decimal.Parse(this.StringBuilder.CreateString(SelectedOrganizationPostID));
                decimal personnelID = decimal.Parse(this.StringBuilder.CreateString(PersonnelID));
                OrganizationPostCode       = this.StringBuilder.CreateString(OrganizationPostCode);
                OrganizationPostName       = this.StringBuilder.CreateString(OrganizationPostName);
                OrganizationPostParentPath = this.StringBuilder.CreateString(OrganizationPostParentPath);
                UIActionType uam = (UIActionType)Enum.Parse(typeof(UIActionType), this.StringBuilder.CreateString(state).ToUpper());

                OrganizationUnit organizationPost = new OrganizationUnit();
                if (uam != UIActionType.DELETE)
                {
                    organizationPost.CustomCode = OrganizationPostCode;
                    organizationPost.ParentPath = OrganizationPostParentPath;
                    organizationPost.Name       = OrganizationPostName;
                    if (uam == UIActionType.EDIT && personnelID != 0)
                    {
                        Person personnel = new Person();
                        personnel.ID            = personnelID;
                        organizationPost.Person = personnel;
                    }
                }

                switch (uam)
                {
                case UIActionType.ADD:
                    organizationPost.ParentID = selectedOrganizationPostID;
                    organizationPost.ID       = 0;
                    OrganizationPostID        = this.OrganizationPostBusiness.InsertOrganizationPost(organizationPost, uam);
                    break;

                case UIActionType.EDIT:
                    if (selectedOrganizationPostID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoOrganizationPostSelectedforEdit").ToString()), retMessage);
                        return(retMessage);
                    }
                    else
                    {
                        organizationPost.ID = selectedOrganizationPostID;
                    }
                    OrganizationPostID = this.OrganizationPostBusiness.UpdateOrganizationPost(organizationPost, uam);
                    break;

                case UIActionType.DELETE:
                    if (selectedOrganizationPostID == 0)
                    {
                        retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, new Exception(GetLocalResourceObject("NoOrganizationPostSelectedforDelete").ToString()), retMessage);
                        return(retMessage);
                    }
                    else
                    {
                        organizationPost.ID = selectedOrganizationPostID;
                    }
                    OrganizationPostID = this.OrganizationPostBusiness.DeleteOrganizationPost(organizationPost, uam);
                    break;
                }

                retMessage[0] = GetLocalResourceObject("RetSuccessType").ToString();
                string SuccessMessageBody = string.Empty;
                switch (uam)
                {
                case UIActionType.ADD:
                    SuccessMessageBody = GetLocalResourceObject("AddComplete").ToString();
                    break;

                case UIActionType.EDIT:
                    SuccessMessageBody = GetLocalResourceObject("EditComplete").ToString();
                    break;

                case UIActionType.DELETE:
                    SuccessMessageBody = GetLocalResourceObject("DeleteComplete").ToString();
                    break;

                default:
                    break;
                }
                retMessage[1] = SuccessMessageBody;
                retMessage[2] = "success";
                retMessage[3] = OrganizationPostID.ToString();
                return(retMessage);
            }
            catch (UIValidationExceptions ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIValidationExceptions, ex, retMessage);
                return(retMessage);
            }
            catch (UIBaseException ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.UIBaseException, ex, retMessage);
                return(retMessage);
            }
            catch (Exception ex)
            {
                retMessage = this.exceptionHandler.HandleException(this.Page, ExceptionTypes.Exception, ex, retMessage);
                return(retMessage);
            }
        }
コード例 #39
0
 /// <summary>
 /// 添加组织
 /// </summary>
 /// <param name="user"></param>
 /// <returns></returns>
 public abstract bool AddOrganizationUnit(OrganizationUnit unit);