示例#1
0
 public ActionResult Contacts(UserContactVm userContact)
 {
     UrlsContact();
     userContact          = userContact ?? new UserContactVm();
     userContact.Contacts = userContact.Contacts ?? new List <Contact>();
     return(PartialView("_Contacts", userContact.Contacts));
 }
        public ActionResult Edit(UserContactVm model)
        {
            try
            {
                ModelState.Remove("Cpf");
                ModelState.Remove("RolesIds");
                if (!ModelState.IsValid)
                {
                    ViewBag.Erros = ErrorController.Get(ModelState);
                    return(View(model).Error(ModelState));
                }

                var oldUser = _db.Users
                              .Include(i => i.Contacts)
                              .Include(i => i.Roles)
                              .FirstOrDefault(f => f.UserId == Account.Current.UserId);

                oldUser.Update(model.FirstName, model.LastName);

                throw new Exception("Não implementado");
            }
            catch (Exception e)
            {
                return(View(model).Error(e.Message));
            }
        }
示例#3
0
        public ActionResult Create(UserContactVm userContact)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(View(userContact).Error(ModelState));
                }

                var user = userContact.GetUser();

                if (userContact.Contacts != null && userContact.Contacts.Any(a => a.ContactType == ContactType.Email))
                {
                    var contatos = user.Contacts.Where(f => f.ContactType == ContactType.Email);
                    foreach (var contato in contatos)
                    {
                        var emailIsInUse = _db.Contacts.Any(x => x.Description.Equals(contato.Description));
                        if (emailIsInUse)
                        {
                            throw new Exception($"Este Email '{contato.Description}' já está em uso");
                        }
                    }
                }

                var cpfIsInUse = _db.Users.Any(x => x.Cpf.Equals(user.Cpf));
                if (cpfIsInUse)
                {
                    throw new Exception($"Este CPF '{user.Cpf}' já está em uso");
                }

                user.EncryptPassword("111111");

                user.Roles = new List <Role>();

                var roles = _db.Roles.Where(x => userContact.RolesIds.Any(r => r == x.RoleId));
                foreach (var role in roles)
                {
                    if (userContact.RolesIds != null && userContact.RolesIds.Any(x => x.Equals(role.RoleId)))
                    {
                        user.Roles.Add(role);
                    }
                }

                user.UserId = Guid.NewGuid();
                _db.Users.Add(user);
                _db.SaveChanges();

                return(RedirectToAction("Index").Success(Success.Saved));
            }
            catch (Exception e)
            {
                GetDrops(userContact.RolesIds?.FirstOrDefault());
                return(View(userContact).Error(e.Message));
            }
        }
示例#4
0
 public ActionResult AddContact(UserContactVm userContact)
 {
     userContact.Contacts = userContact.Contacts ?? new List <Contact>();
     userContact.Contacts.Add(new Contact {
         Description = userContact.Description, ContactType = userContact.ContactType
     });
     userContact.Description = string.Empty;
     userContact.ContactType = 0;
     UrlsContact();
     return(PartialView("_Contacts", userContact.Contacts));
 }
示例#5
0
        private void SetViewBags(UserContactVm model = null)
        {
            var roles = _db.Roles
                        .OrderBy(x => x.Name)
                        .AsNoTracking();

            model = model ?? new UserContactVm();
            foreach (var role in roles)
            {
                var item = new SelectListItemVm(
                    role.RoleId,
                    role.Name?.Replace("_", " "),
                    model.RolesIds?.Any(x => x == role.RoleId) ?? false);
                model.SelectListRole.Add(item);
            }

            model.RolesIds = model.Roles?.Select(s => s.RoleId).ToArray();
            ViewBag.Roles  = model.SelectListRole;
        }
示例#6
0
        public ActionResult Edit(UserContactVm model, string rolesIds)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(rolesIds))
                {
                    throw new Exception("Campo Permissões é obrigatório.");
                }
                model.RolesIds = rolesIds.Split(',').Select(id => Convert.ToInt32(id)).ToArray();
                ModelState.Remove(nameof(model.RolesIds));

                if (!ModelState.IsValid || !model.IsValid())
                {
                    SetViewBags(model);
                    return(View(model).Error(ModelState));
                }

                var oldUser = _db.Users
                              .Include(c => c.Roles)
                              .Include(c => c.Contacts)
                              .FirstOrDefault(x => x.UserId == model.UserId);

                if (oldUser == null)
                {
                    return(RedirectToAction("Index").Success(Success.Saved));
                }

                var newUser = model.GetUser(_db);
                newUser.SetInfo(oldUser);
                BalanceRoles(oldUser, newUser, model.RolesIds);
                BalanceContacts(oldUser, newUser);

                _db.Entry(oldUser).CurrentValues.SetValues(newUser);
                _db.SaveChanges();
                return(RedirectToAction("Index").Success(Success.Saved));
            }
            catch (Exception ex)
            {
                SetViewBags(model);
                return(View(model).Error(ex.Message));
            }
        }
示例#7
0
        public ActionResult Edit()
        {
            var user = _db.Users
                       .Include(i => i.Contacts)
                       .FirstOrDefault(f => f.UserId == Account.Current.UserId);

            if (user == null)
            {
                return(RedirectToAction("Index", "Home").Error("Usuário não encontrado"));
            }
            var userContact = new UserContactVm
            {
                UserId    = user.UserId,
                Cpf       = user.Cpf,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                IsActive  = user.IsActive,
                Contacts  = user.Contacts.ToList()
            };

            return(View(userContact));
        }
示例#8
0
        private static UserContactVm GetCrudVm(User user)
        {
            var model = new UserContactVm
            {
                FirstName    = user.FirstName,
                LastName     = user.LastName,
                Contacts     = user.Contacts.ToList(),
                AccessFailed = user.AccessFailed,
                Cpf          = user.Cpf,
                IsActive     = user.IsActive,
                CreateOn     = user.CreateOn,
                UserId       = user.UserId,
                Roles        = user.Roles,
                RolesIds     = user.Roles.Select(s => s.RoleId).ToArray()
            };

            if (user.Contacts != null)
            {
                model.Contacts = new List <Contact>(user.Contacts);
            }

            return(model);
        }
示例#9
0
        public ActionResult Edit(UserContactVm model)
        {
            try
            {
                ModelState.Remove("Cpf");
                ModelState.Remove("RolesIds");
                if (!ModelState.IsValid)
                {
                    ViewBag.Erros = ErrorController.Get(ModelState);
                    return(View(model).Error(ModelState));
                }

                var oldUser = _db.Users
                              .Include(c => c.Roles)
                              .Include(c => c.Contacts)
                              .FirstOrDefault(x => x.UserId == model.UserId);
                if (oldUser == null)
                {
                    return(RedirectToAction("Details").Success("Conta atualizada com sucesso"));
                }
                oldUser.Update(model.FirstName, model.LastName);

                var newUser = model.GetUser(_db);
                newUser.SetPassword(oldUser.Password);
                newUser.SetInfo(oldUser);
                BalanceContacts(oldUser, newUser);
                BalanceRoles(oldUser, newUser, model.RolesIds);

                _db.Entry(oldUser).CurrentValues.SetValues(newUser);
                _db.SaveChanges();
                return(RedirectToAction("Details").Success("Conta atualizada com sucesso"));
            }
            catch (Exception e)
            {
                return(View(model).Error(e.Message));
            }
        }
示例#10
0
 public ActionResult RemoveContact(UserContactVm userContact, int index)
 {
     UrlsContact();
     userContact.Contacts?.RemoveAt(index);
     return(PartialView("_Contacts", userContact.Contacts));
 }
示例#11
0
        public ActionResult Create(UserContactVm model, string rolesIds)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(rolesIds))
                {
                    throw new Exception("Campo Permissões é obrigatório.");
                }
                model.RolesIds = rolesIds.Split(',').Select(id => Convert.ToInt32(id)).ToArray();
                ModelState.Remove(nameof(model.RolesIds));

                if (!ModelState.IsValid || !model.IsValid())
                {
                    SetViewBags(model);
                    return(View(model).Error(ModelState));
                }

                var user = model.GetUser(_db);

                if (model.Contacts != null && model.Contacts.Any(a => a.ContactType == ContactType.Email))
                {
                    var contatos = user.Contacts.Where(f => f.ContactType == ContactType.Email);
                    foreach (var contato in contatos)
                    {
                        var emailIsInUse = _db.Contacts.Any(x => x.Description.Equals(contato.Description));
                        if (emailIsInUse)
                        {
                            throw new Exception($"Este Email '{contato.Description}' já está em uso");
                        }
                    }
                }

                var cpfIsInUse = _db.Users.Any(x => x.Cpf.Equals(user.Cpf));
                if (cpfIsInUse)
                {
                    throw new Exception($"Este CPF '{user.Cpf}' já está em uso");
                }
                user.ResetPassword();

                user.Roles = new List <Role>();

                var roles = _db.Roles.Where(x => model.RolesIds.Any(r => r == x.RoleId));
                foreach (var role in roles)
                {
                    if (model.RolesIds != null && model.RolesIds.Any(x => x.Equals(role.RoleId)))
                    {
                        user.Roles.Add(role);
                    }
                }

                user.UserId = Guid.NewGuid();
                _db.Users.Add(user);
                _db.SaveChanges();

                return(RedirectToAction("Index").Success(Success.Saved));
            }
            catch (Exception e)
            {
                SetViewBags(model);
                return(View(model).Error(e.Message));
            }
        }