示例#1
0
        // GET: Users/Edit/5
        public async Task <IActionResult> Edit(string?id)
        {
            User me = UserHelper.GetCurrentUser(User, db);

            if (!User.IsInRole("DM"))
            {
                id = me.UserId;
            }
            else if (id == null)
            {
                id = me.UserId;
            }

            if (id == null)
            {
                return(NotFound());
            }

            var edituser = await db.Users.FindAsync(id);

            List <UserPoco> ups = await GetAllUsers();

            if (edituser == null)
            {
                if (ups.Where(m => m.username == id).Any())
                {
                    UserPoco up = ups.Where(m => m.id == id).First();
                    User     u  = new User();

                    u.Name      = up.lastName;
                    u.FirstName = up.firstName;
                    u.Email     = up.email;
                    u.UserId    = up.id;

                    u.Status = db.Statuses.Where(m => m.Id == StatusEnum.unchanged).FirstOrDefault();


                    db.Users.Add(u);
                    db.SaveChanges();

                    edituser = u;
                }
            }

            EditUserViewModel euvm = new EditUserViewModel()
            {
                UserId = edituser.UserId, Email = edituser.Email, FirstName = edituser.FirstName, Name = edituser.Name, enabled = ups.Where(m => m.username == edituser.UserId).FirstOrDefault().enabled, roles = ups.Where(m => m.username == edituser.UserId).FirstOrDefault().roles
            };

            return(View(euvm));
        }