@startuml
skinparam monochrome true
skinparam packageStyle rectangle
skinparam shadowing false

autonumber

'hide footbox
title  "Import information from a legacy system"

actor "Administrator" as admin
participant ":ImportFileUI" as ui
participant ":ImportFileController" as ctrl
participant ":Repository" as repository
participant ":PropertyRepository\n:PropertyRepository:" as propertyRepository
participant "Property" as property

activate admin

    admin -> ui : asks to submit file to import data from
    activate ui

        ui -> ctrl : create
        ui --> admin : requests file
        admin -> ui : selects file
        ui -> ctrl : checkFileValidity()
        activate ctrl

            ctrl --> ui : file is valid
        ui -> ctrl : import data
            ctrl -> repository : getInstance()
            activate repository

                repository --> ctrl : repositories
                deactivate repository

            ctrl -> propertyRepository : addProperties()
            activate propertyRepository

                propertyRepository -> property : addProperty()
                activate property

                    property --> propertyRepository : properties
                    deactivate property

                propertyRepository --> ctrl : properties
                deactivate propertyRepository

            ctrl --> ui : properties
            deactivate ctrl

        ui --> admin : opperation success
        deactivate admin
@enduml