Пример #1
0
        async public Task <ApiResult> _Edit([FromForm] int PersonId, [FromForm] string Username, [FromForm] string Password, [FromForm] DateTime LoginTime, [FromForm] string LoginIp, [FromForm] AuthUserStatus Status, [FromForm] bool IsAdmin, [FromForm] int Id, [FromForm] DateTime CreateTime, [FromForm] DateTime UpdateTime, [FromForm] bool IsDeleted, [FromForm] int Sort, [FromForm] int[] mn_Roles_Id)
        {
            var item = new AuthUser();

            item.Id = Id;
            using (var ctx = fsql.CreateDbContext())
            {
                ctx.Attach(item);
                item.PersonId   = PersonId;
                item.Username   = Username;
                item.Password   = Password;
                item.LoginTime  = LoginTime;
                item.LoginIp    = LoginIp;
                item.Status     = Status;
                item.IsAdmin    = IsAdmin;
                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.AuthRoleUser>().Where(a => a.UserId == 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.AuthRoleUser {
                        RoleId = mn, UserId = item.Id
                    }).ToArray();
                    await ctx.AddRangeAsync(mn_Roles);
                }
                var affrows = await ctx.SaveChangesAsync();

                if (affrows > 0)
                {
                    return(ApiResult.Success.SetMessage($"更新成功,影响行数:{affrows}"));
                }
            }
            return(ApiResult.Failed);
        }
Пример #2
0
        async public Task <ApiResult> _Add([FromForm] int PersonId, [FromForm] string Username, [FromForm] string Password, [FromForm] DateTime LoginTime, [FromForm] string LoginIp, [FromForm] AuthUserStatus Status, [FromForm] bool IsAdmin, [FromForm] DateTime CreateTime, [FromForm] DateTime UpdateTime, [FromForm] bool IsDeleted, [FromForm] int Sort, [FromForm] int[] mn_Roles_Id)
        {
            var item = new AuthUser();

            item.PersonId   = PersonId;
            item.Username   = Username;
            item.Password   = Password;
            item.LoginTime  = LoginTime;
            item.LoginIp    = LoginIp;
            item.Status     = Status;
            item.IsAdmin    = IsAdmin;
            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.AuthRoleUser {
                    RoleId = mn, UserId = item.Id
                }).ToArray();
                await ctx.AddRangeAsync(mn_Roles);

                await ctx.SaveChangesAsync();
            }
            return(ApiResult <object> .Success.SetData(item));
        }