示例#1
0
        async public Task <ApiResult> _Add([FromForm] int DepartmentId, [FromForm] string Title, [FromForm] string DutyContent, [FromForm] string JobContent, [FromForm] DateTime CreateTime, [FromForm] DateTime UpdateTime, [FromForm] bool IsDeleted, [FromForm] int Sort, [FromForm] int[] mn_Roles_Id, [FromForm] int[] mn_Persons_Id)
        {
            var item = new OrgPost();

            item.DepartmentId = DepartmentId;
            item.Title        = Title;
            item.DutyContent  = DutyContent;
            item.JobContent   = JobContent;
            item.CreateTime   = CreateTime;
            item.UpdateTime   = UpdateTime;
            item.IsDeleted    = IsDeleted;
            item.Sort         = Sort;
            using (var ctx = fsql.CreateDbContext())
            {
                await ctx.AddAsync(item);

                //关联 AuthRole
                var mn_Roles = mn_Roles_Id.Select((mn, idx) => new AuthRole.AuthRolePost {
                    RoleId = mn, OrgPostId = item.Id
                }).ToArray();
                await ctx.AddRangeAsync(mn_Roles);

                //关联 OrgPerson
                var mn_Persons = mn_Persons_Id.Select((mn, idx) => new OrgPost.OrgPostPerson {
                    PersonId = mn, PostId = item.Id
                }).ToArray();
                await ctx.AddRangeAsync(mn_Persons);

                await ctx.SaveChangesAsync();
            }
            return(ApiResult <object> .Success.SetData(item));
        }
示例#2
0
        /// <summary>
        /// 部门表单页
        /// </summary>
        /// <param name="user"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public IActionResult PostForm(SysUser user, OrgPost entity)
        {
            if (Request.IsAjaxRequest())
            {
                StateCode code = ServiceIoc.Get <OrgPostService>().Save(user.id, entity);
                return(Json(GetResult(code)));
            }
            else
            {
                //所属公司
                List <Company> menuList = ServiceIoc.Get <CompanyService>().GetTrees("", HttpUtility.HtmlDecode("&nbsp;&nbsp;"));
                menuList.Insert(0, new Company()
                {
                    name = "根目录", id = 0
                });
                ViewBag.Parents = menuList;

                //所属部门
                List <Department> departments = ServiceIoc.Get <DepartmentService>().GetTrees("", HttpUtility.HtmlDecode("&nbsp;&nbsp;"));
                departments.Insert(0, new Department()
                {
                    name = "根目录", id = 0
                });
                ViewBag.Departments = departments;

                //所属岗位
                List <OrgPost> posts = ServiceIoc.Get <OrgPostService>().GetTrees("", HttpUtility.HtmlDecode("&nbsp;&nbsp;"));
                posts.Insert(0, new OrgPost()
                {
                    name = "根目录", id = 0
                });
                ViewBag.Posts = posts;

                entity = ServiceIoc.Get <OrgPostService>().GetById(bid);
                if (entity != null)
                {
                    ViewBag.entity = JsonConvert.SerializeObject(entity);
                }
            }

            return(View());
        }
示例#3
0
        async public Task <ApiResult> _Edit([FromForm] int DepartmentId, [FromForm] string Title, [FromForm] string DutyContent, [FromForm] string JobContent, [FromForm] int Id, [FromForm] DateTime CreateTime, [FromForm] DateTime UpdateTime, [FromForm] bool IsDeleted, [FromForm] int Sort, [FromForm] int[] mn_Roles_Id, [FromForm] int[] mn_Persons_Id)
        {
            var item = new OrgPost();

            item.Id = Id;
            using (var ctx = fsql.CreateDbContext())
            {
                ctx.Attach(item);
                item.DepartmentId = DepartmentId;
                item.Title        = Title;
                item.DutyContent  = DutyContent;
                item.JobContent   = JobContent;
                item.CreateTime   = CreateTime;
                item.UpdateTime   = UpdateTime;
                item.IsDeleted    = IsDeleted;
                item.Sort         = Sort;
                await ctx.UpdateAsync(item);

                //关联 AuthRole
                if (mn_Roles_Id != null)
                {
                    var mn_Roles_Id_list = mn_Roles_Id.ToList();
                    var oldlist          = ctx.Set <AuthRole.AuthRolePost>().Where(a => a.OrgPostId == item.Id).ToList();
                    foreach (var olditem in oldlist)
                    {
                        var idx = mn_Roles_Id_list.FindIndex(a => a == olditem.RoleId);
                        if (idx == -1)
                        {
                            ctx.Remove(olditem);
                        }
                        else
                        {
                            mn_Roles_Id_list.RemoveAt(idx);
                        }
                    }
                    var mn_Roles = mn_Roles_Id_list.Select((mn, idx) => new AuthRole.AuthRolePost {
                        RoleId = mn, OrgPostId = item.Id
                    }).ToArray();
                    await ctx.AddRangeAsync(mn_Roles);
                }
                //关联 OrgPerson
                if (mn_Persons_Id != null)
                {
                    var mn_Persons_Id_list = mn_Persons_Id.ToList();
                    var oldlist            = ctx.Set <OrgPost.OrgPostPerson>().Where(a => a.PostId == item.Id).ToList();
                    foreach (var olditem in oldlist)
                    {
                        var idx = mn_Persons_Id_list.FindIndex(a => a == olditem.PersonId);
                        if (idx == -1)
                        {
                            ctx.Remove(olditem);
                        }
                        else
                        {
                            mn_Persons_Id_list.RemoveAt(idx);
                        }
                    }
                    var mn_Persons = mn_Persons_Id_list.Select((mn, idx) => new OrgPost.OrgPostPerson {
                        PersonId = mn, PostId = item.Id
                    }).ToArray();
                    await ctx.AddRangeAsync(mn_Persons);
                }
                var affrows = await ctx.SaveChangesAsync();

                if (affrows > 0)
                {
                    return(ApiResult.Success.SetMessage($"更新成功,影响行数:{affrows}"));
                }
            }
            return(ApiResult.Failed);
        }