Changeset 686


Ignore:
Timestamp:
Jul 21, 2010, 4:02:20 PM (13 years ago)
Author:
tabma
Message:
  • improved validation in importerservice, now skips faulty entities (null) and final step now shows how many rows were succesfully saved
Location:
trunk/grails-app
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/controllers/dbnp/importer/ImporterController.groovy

    r670 r686  
    246246
    247247    def savePostview = {
    248         ImporterService.saveDatamatrix(session.importer_study, session.importer_importeddata)
    249         render(view:"step4")
     248        def validatedSuccesfully = ImporterService.saveDatamatrix(session.importer_study, session.importer_importeddata)
     249        render(view:"step4", model:[validatedSuccesfully:validatedSuccesfully, totalrows:session.importer_importeddata.size])
    250250    }
    251251
  • trunk/grails-app/services/dbnp/importer/ImporterService.groovy

    r684 r686  
    253253     */   
    254254    def saveDatamatrix(Study study, datamatrix) {
     255        def validatedSuccesfully = 0
    255256        study.refresh()
    256257       
    257258        datamatrix.each { record ->
    258259            record.each { entity ->
    259                 switch (entity.getClass()) {
    260                     case Study   :  print "Persisting Study `" + entity.title + "`: "
    261                                     persistEntity(entity)
    262                                     break
    263                     case Subject :  print "Persisting Subject `" + entity.name + "`: "
    264                                     persistEntity(entity)
    265                                     study.addToSubjects(entity)
    266                                     break
    267                     case Event   :  print "Persisting Event `" + entity.eventdescription + "`: "
    268                                     persistEntity(entity)
    269                                     break
    270                     case Sample  :  print "Persisting Sample `" + entity.name +"`: "
    271                                     persistEntity(entity)
    272                                     break
    273                     default      :  println "Skipping persisting of `" + entity.getclass() +"`"
    274                                     break
    275                 }
    276             }
    277         }
     260                if(entity.validate()) {
     261                    switch (entity.getClass()) {
     262                        case Study       :  print "Persisting Study `" + entity + "`: "
     263                                            persistEntity(entity)
     264                                            break
     265                        case Subject     :  print "Persisting Subject `" + entity + "`: "
     266                                            persistEntity(entity)
     267                                            study.addToSubjects(entity)
     268                                            break
     269                        case Event       :  print "Persisting Event `" + entity + "`: "
     270                                            persistEntity(entity)
     271                                            break
     272                        case Sample      :  print "Persisting Sample `" + entity +"`: "
     273                                            persistEntity(entity)
     274                                            break
     275                        default          :  println "Skipping persisting of `" + entity.getclass() +"`"
     276                                            break
     277                    } // end switch
     278                    validatedSuccesfully++
     279                } // end if
     280            } // end record
     281        } // end datamatrix
     282        return validatedSuccesfully
    278283    }
    279284
     
    286291     */
    287292    def persistEntity(entity) {
    288         if (entity.save(flush:true)) {  //.merge?           
    289         } else entity.errors.allErrors.each {
    290                 println it
    291         }
     293         if (!entity.save()) //.merge?
     294            entity.errors.allErrors.each {
     295            println it
     296         }
    292297    }
    293298
Note: See TracChangeset for help on using the changeset viewer.