|
@@ -1,5 +1,51 @@
|
|
package microfolie.service;
|
|
package microfolie.service;
|
|
|
|
|
|
|
|
+import java.util.Random;
|
|
|
|
+
|
|
|
|
+import microfolie.persistance.entity.Usager;
|
|
|
|
+import microfolie.persistance.table.UsagerTable;
|
|
|
|
+import microfolie.service.dto.UsagerDTO;
|
|
|
|
+import microfolie.service.transformer.UsagerTransformer;
|
|
|
|
+
|
|
public class UsagerService {
|
|
public class UsagerService {
|
|
|
|
+
|
|
|
|
+ private static final String ALPHA_NUMERIC_STRING = "abcdefghijqlmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
|
|
+ private static final Random RANDOM = new Random();
|
|
|
|
+ private static UsagerService instance;
|
|
|
|
+
|
|
|
|
+ private UsagerTable table = UsagerTable.getInstance();
|
|
|
|
+
|
|
|
|
+ private UsagerService() {
|
|
|
|
+ // Constructeur privé pour singleton
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void add(UsagerDTO usagerDTO) {
|
|
|
|
+ // Transforme le DTO en Usager
|
|
|
|
+ Usager usager = UsagerTransformer.dtoToEntity(usagerDTO);
|
|
|
|
+ // Generation du code
|
|
|
|
+ usager.code = generateUniqueCode();
|
|
|
|
+ // Sauvegarde en base
|
|
|
|
+ table.save(usager);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public String generateUniqueCode() {
|
|
|
|
+ String code;
|
|
|
|
+ do {
|
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
|
+ for(int i = 0; i < 4; i++) {
|
|
|
|
+ int pos = RANDOM.nextInt(ALPHA_NUMERIC_STRING.length());
|
|
|
|
+ builder.append(ALPHA_NUMERIC_STRING.charAt(pos));
|
|
|
|
+ }
|
|
|
|
+ code = builder.toString();
|
|
|
|
+ }while(table.codeIsUnique(code));
|
|
|
|
+ return code;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public static UsagerService getInstance() {
|
|
|
|
+ if (instance == null) {
|
|
|
|
+ instance = new UsagerService();
|
|
|
|
+ }
|
|
|
|
+ return instance;
|
|
|
|
+ }
|
|
|
|
|
|
}
|
|
}
|