Example #1
0
 // Если тэга с таким именем не было - просто создается, если был, но был удален без очистки линков
 // - восстанавливается
 // Если имя тэга уникально, при попытке добавления такого-же будет ошибка
 public void create(String name, Long pkId) {
   if (adminService.tarifIsNotExpired(pkId)) {
     boolean unique = true;
     boolean deleted = false;
     Tag existingTag = getTagByNameAndPkId(name, pkId);
     Tag deletedTag = getDeletedTagByNameAndPkId(name, pkId);
     if (existingTag != null) {
       unique = false;
       if (deletedTag != null) {
         deleted = true;
       }
     }
     if (unique) {
       Tag tag = new Tag();
       tag.setCabinet(pkDao.find(pkId));
       tag.setName(name);
       if (validate(tag)) {
         tagDao.save(tag);
       }
     } else {
       if (deleted) {
         deletedTag.setDeleteDate(null);
         if (validate(deletedTag)) {
           tagDao.update(deletedTag);
         }
       } else {
         addError("Такой тэг уже есть");
       }
     }
   } else {
     addError("Не удалось добваить тэг в связи с ограничениями тарифа");
   }
 }
Example #2
0
 public void delete(Long tagId, boolean deleteLinks) {
   if (tagId != null) {
     Tag tag = tagDao.find(tagId);
     if (tag != null) {
       if (deleteLinks) {
         for (Client client : tag.getClients()) {
           Set<Tag> cltags = client.getTags();
           cltags.remove(tag);
           client.setTags(cltags);
           if (validate(client)) {
             clientDao.update(client);
             addError(client.getNameCompany());
           }
         }
         tagDao.delete(tag);
       } else {
         tag.setDeleteDate(new Date());
       }
     } else {
       addError("Не удалось найти тэг");
     }
   } else {
     addError("Ид тэга не передан");
   }
 }