public RegisterStoreViewModel(IValidatableObjectFactory validatableObjectFactory, IUserDataStore userDataStore, IStoreDataStore storeDataStore,
                                      IStoreFactory storeFactory, IUserFactory userFactory,
                                      IRegisterCardViewModel cardViewModel, IStoreRegistrationEntry storeRegistrationEntry)
        {
            _validatableObjectFactory = validatableObjectFactory;
            _UserDataStore            = userDataStore;
            _StoreDataStore           = storeDataStore;
            _StoreFactory             = storeFactory;
            _UserFactory           = userFactory;
            CardViewModel          = cardViewModel;
            StoreRegistrationEntry = storeRegistrationEntry;

            StoreName      = _validatableObjectFactory.CreateSimpleValidatebleObject <string>("Store 1");
            CardNumber     = _validatableObjectFactory.CreateSimpleValidatebleObject <string>();
            Longitude      = _validatableObjectFactory.CreateSimpleValidatebleObject <string>("1");
            Latitude       = _validatableObjectFactory.CreateSimpleValidatebleObject <string>("2");
            StoreOwnerName = _validatableObjectFactory.CreateSimpleValidatebleObject <string>("Owner 1");
            Description    = _validatableObjectFactory.CreateSimpleValidatebleObject <string>("Description");
            Category       = _validatableObjectFactory.CreateSimpleValidatebleObject <string>("Category");

            StoreNameValidationCommand      = new Command(() => StoreName.Validate());
            LongitudeValidationCommand      = new Command(() => Longitude.Validate());
            LatitudeValidationCommand       = new Command(() => Latitude.Validate());
            StoreOwnerNameValidationCommand = new Command(() => StoreOwnerName.Validate());
            MoreInfoCommand      = new Command <CommandEventData>((commandData) => MoreInfoPopup(commandData));
            RegisterStoreCommand =
                new Command <CommandEventData>(async(data) => await NavigateToInventoryProductItem(data));
            DescriptionValidationCommand = new Command(() => Description.Validate());
            GetLogoPhotoCommand          = new Command(async() => ProductImageSource = await Utils.PickPhoto());
            TakeLogoPhotoCommand         = new Command(() => { });
            GetLocationCommand           = new Command(async() => await GetLocation());
            TypeOfCardChangedCommand     = new Command <CommandEventData>((data) => TypeOfCardSelectionChangedHandler(data));

            Init();
        }