public CommandResult Update(ProductUpdateCommand command) { var product = _repository.GetById(command.Id); if (product == null) { return(new CommandResult(false, "Produto não encontrado na base de dados. ", null)); } var exist = _repository.ExistsUpdate(command.Name, command.Id); if (exist) { return(new CommandResult(false, "Já existe outro Produto cadatrado com esse Nome. ", null)); } product.Update(command.Name, command.Price); AddNotifications(product); if (Invalid) { return(new CommandResult(false, GroupNotifications.Group(Notifications), null)); } _repository.Update(product); return(new CommandResult(true, "Produto atualizado com sucesso!. ", product)); }
public CommandResultToken Login(UserLoginCommand command) { var user = _repository.GetSalt(command.Username); if (user == null) { return(new CommandResultToken(false, "Login inválido. ", null)); } var salt_tabela = user.Salt; byte[] salt = Convert.FromBase64String(salt_tabela); var hashPassword = Hash.Create(command.Password, salt); // <-- monta hash para comparação / login user = _repository.Login(command.Username, hashPassword); if (user == null) { return(new CommandResultToken(false, "Login inválido. ", null)); } if (user.Active == false && user.Role == null) { AddNotification("Aguardando liberação de acesso.. Contacte o Gestor da aplicação se deseja agilizar a liberação. "); } else if (user.Active == false) { AddNotification("Usuário inativo. Contacte o Administrado. "); } if (Invalid) { return(new CommandResultToken(false, GroupNotifications.Group(Notifications), null)); } var log = new AccessLog( "Login", DateTime.Now, command.Username, null, null); _log.Register(log); user.HidePassword(); return(new CommandResultToken(true, "Login efetuado com sucesso! ", user)); }
public CommandResult UpdatePassword(UpdatePasswordUserCommand command, string userIdentity) { // verificação da validade do usuario e senha var user = _repository.GetSalt(command.Username); if (user == null) { return(new CommandResult(false, "Login inválido. ", command)); } var salt_tabela = user.Salt; byte[] salt = Convert.FromBase64String(salt_tabela); var hashPassword = Hash.Create(command.Password, salt); user = _repository.Login(command.Username, hashPassword); if (user == null) { return(new CommandResult(false, "Senha antiga não confere. ", command)); } // criacao de novo hash para a nova senha hashPassword = Hash.Create(command.NewPassword, salt); user.UpdatePassword(hashPassword); AddNotifications(user); if (Invalid) { return(new CommandResult(false, GroupNotifications.Group(Notifications), command)); } _repository.UpdatePassword(user.Id, hashPassword); var log = new AccessLog( "UpdatePassword", DateTime.Now, userIdentity, "UserAuth", $"Usuário alterado: {command.Username}"); _log.Register(log); user.HidePassword(); return(new CommandResultToken(true, "Senha alterada com sucesso! ", user)); }
public CommandResult RegisterAdmin(UserRegisterAdminCommand command, string userIdentity) { var exist = _repository.Exists(command.Username); if (exist) { AddNotification("Já existe um usuario cadastrado com esse nome. "); } var user = new UserAuth(command.Username, command.Password, command.Role, command.Active); AddNotifications(user); if (Invalid) { return(new CommandResult(false, GroupNotifications.Group(Notifications), command)); } // Add Hash e Salt var salt = Salt.Create(); var hash = Hash.Create(user.Password, salt); if (!Hash.Validate(user.Password, salt, hash)) { AddNotification("Erro na geração do Hash. "); } user.AddHash(hash, Convert.ToBase64String(salt)); _repository.Register(user); var log = new AccessLog( "Register", DateTime.Now, userIdentity, "UserAuth", $"Nome usuario registrado: {command.Username}"); _log.Register(log); user.HidePassword(); return(new CommandResult(true, "Cadastro realizado. ", user)); }
public CommandResult AddPromotion(ProductPromotionCommand command) { var product = _repository.GetById(command.Id); if (product == null) { return(new CommandResult(false, "Produto não encontrado na base de dados. ", null)); } product.AddPromotion(command.Price); AddNotifications(product); if (Invalid) { return(new CommandResult(false, GroupNotifications.Group(Notifications), null)); } _repository.Update(product); return(new CommandResult(true, "Preço do Produto atualizado com sucesso! ", product)); }
public CommandResult Create(ProductCreateCommand command) { var exist = _repository.Exists(command.Name); if (exist) { return(new CommandResult(false, "Já existe um Produto cadastrado com esse Nome. ", command)); } var product = new Product(command.Name, command.Price); AddNotifications(product); if (Invalid) { return(new CommandResult(false, GroupNotifications.Group(Notifications), command)); } _repository.Create(product); return(new CommandResult(true, "Produto cadastrado com sucesso! ", product)); }
/// <summary> /// calling by Item_SizeChanged /// </summary> /// <param name="obj"></param> private void OnItemClosed(object obj) { var item = obj.CastAs <NotificationItem>(); if (item != null) { item.SizeChanged -= Item_SizeChanged; Notifications.Remove(item.NotificationInfo); } else { var group = obj.CastAs <GroupNotificationItem>(); if (group == null) { return; } group.SizeChanged -= Item_SizeChanged; GroupNotifications.Remove(group.DataContext as GroupNotificationInfo); } }