public ActionResult CreateSection()
 {
     var userLogins = _userService.GetAllUserEntities()
         .Where(u => !u.IsBlocked)
         .Select(u => new SelectListItem() {Value = u.Login, Text = u.Login});
     var section = new SectionCreateViewModel() {UsersLogin = userLogins};
     return View(section);
 }
        public ActionResult EditSection(SectionCreateViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var existedSection = _sectionService.GetSectionEntity(viewModel.Id);
                if (existedSection.ModeratorLogin.CompareTo(viewModel.SettedModeratorLogin) != 0)
                {
                    var moderator = _userService.GetUserEntityByLogin(viewModel.SettedModeratorLogin);
                    if (!moderator.Roles.Any(r => r.RoleName == Role.Moderator.ToString()))
                    {
                        moderator.Roles.Add(new RoleEntity()
                        {
                            RoleName = Role.Moderator.ToString(),
                            Id = (int)Role.Moderator
                        });
                        _userService.UpdateUser(moderator);
                    }
                    existedSection.UserRefId = moderator.Id;

                    var oldModerator = _userService.GetUserEntityByLogin(existedSection.ModeratorLogin);
                    var oldRole = oldModerator.Roles.FirstOrDefault(t => t.Id == (int) Role.Moderator);
                    if (oldRole != null)
                    {
                        var result = oldModerator.Roles.Remove(oldRole);
                    }
                    _userService.UpdateUser(oldModerator);
                }
                existedSection.SectionName = viewModel.SectionName;
                existedSection.Discription = viewModel.Discription;
                _sectionService.UpdateSection(existedSection);
                return RedirectToAction("AllSections", "Admin");
            }
            viewModel.UsersLogin = _userService.GetAllUserEntities()
                .Where(u => !u.IsBlocked)
                .Select(u => new SelectListItem() { Value = u.Login, Text = u.Login });
            return View(viewModel);
        }
 public ActionResult CreateSection(SectionCreateViewModel viewModel)
 {
     if (ModelState.IsValid)
     {
         var moderator = _userService.GetUserEntityByLogin(viewModel.SettedModeratorLogin);
         if (moderator.Roles.All(r => r.RoleName != Role.Moderator.ToString()))
         {
             moderator.Roles.Add(new RoleEntity()
             {
                 RoleName = Role.Moderator.ToString(),
                 Id = (int)Role.Moderator
             });
         }
         _userService.UpdateUser(moderator);
         viewModel.UserRefId = moderator.Id;
         var bllSection = viewModel.ToBllSectionEntity();
         _sectionService.CreateSection(bllSection);
         return RedirectToAction("AllSections", "Admin");
     }
     viewModel.UsersLogin = _userService.GetAllUserEntities()
         .Where(u => !u.IsBlocked)
         .Select(u => new SelectListItem() { Value = u.Login, Text = u.Login });
     return View(viewModel);
 }