public ActionResult Create(UsuarioViewModel model)
        {
            if (ModelState.IsValid) {
            if (UsuarioService.getUsuario(model.Login) != null) {
              this.addMensagemErro("Usuário ja existe");
              return View(model);
            }

            Usuarios usuario = new Usuarios();
            fillUsuarios(usuario, model);

            UsuarioService.saveUsuario(usuario);
            this.addMensagemSucesso("Usuário criado com sucesso!");
              } else {
            fillListaFlags(model);
            return View(model);
              }
              return RedirectToAction("Index", "Usuario");
        }
 public ActionResult Create()
 {
     UsuarioViewModel model = new UsuarioViewModel();
       fillListaFlags(model);
       return View(model);
 }
 private void fillUsuarios(Usuarios usuario, UsuarioViewModel model)
 {
     usuario.Nome = model.Nome;
       usuario.Login = model.Login;
       if(usuario.IDUsuario == 0)
     usuario.Senha = model.Senha;
       usuario.Email = model.Email;
       usuario.Flags = model.listFlagsSelecionadas.Count() > 0 ? model.listFlagsSelecionadas.Sum(c => c) : 0;
 }
        private UsuarioViewModel getViewModel(Usuarios usuario)
        {
            UsuarioViewModel model = new UsuarioViewModel() {
            Nome = usuario.Nome,
            Login = usuario.Login,
            Email = usuario.Email,
            DataCadastro = usuario.DataCriacao,
            IDUsuario = usuario.IDUsuario,
            Flags = usuario.Flags,
            Senha = usuario.Senha,
            ConfirmeSenha = usuario.Senha
              };

              fillListaFlags(model);
              return model;
        }
        private void fillListaFlags(UsuarioViewModel model)
        {
            Dictionary<int, String> dictValores = EnumHelper.getDictionaryValueDescription(FlagsFuncionalidades.ManutencaoCliente);
              model.Flags = model.listFlagsSelecionadas.Count() > 0 ? model.listFlagsSelecionadas.Sum(c => c) : model.Flags;
              foreach (KeyValuePair<int, String> item in dictValores) {

            SelectListItem listItem = new SelectListItem(){
              Value = item.Key.ToString(),
              Text = item.Value
            };

            if ((model.Flags & item.Key) != 0)
              model.listFlagsSelecionadasSource.Add(listItem);
            else
              model.listFlagsDisponiveis.Add(listItem);
              }
        }