Exemplo n.º 1
0
        private async Task <Vermittler> CreateVermittler()
        {
            var vermittler = new Vermittler
            {
                Id           = 1,
                VermittlerNo = "NP-000000",
                VermittlerRegistrierungsstatus = VermittlerRegistrierungsstatus.NeuerVermittler,
                BestandsProvisionssatz         = 60.0f,
                AbschlussProvisionssatz        = 60.0f,
                IhkRegistrierungsnummer        = "Registrierungsnummer",
                IstAktiv       = true,
                Bankverbindung = new Bankverbindung
                {
                    Id           = 1,
                    Kontoinhaber = "TestKontoinhaber",
                    IBAN         = "DE00000000000000000000",
                    BankName     = "Bankname",
                    BIC          = "DEUTDEDB123"
                },
                User = new User
                {
                    Id = 15,
                    KeycloakIdentifier = new Guid("106ee760-3e54-4fc9-a3b5-f6fc7284842f"),
                    EMail               = "Vermittler@localhost",
                    Vorname             = "Vermittler",
                    Nachname            = "Markler",
                    Anrede              = Anrede.Herr,
                    Geburtsdatum        = new DateTime(1900, 1, 1),
                    Geburtsort          = "TestOrt",
                    Staatsangehörigkeit = new Land()
                    {
                        Id   = 2,
                        Name = "Testland"
                    },
                    Adresse = new Adresse()
                    {
                        Straße     = "VermittlerStraße",
                        Hausnummer = "1",
                        Plz        = "123456",
                        Ort        = "Bremen",
                        Land       = new Land()
                        {
                            Name = "Deutschland"
                        }
                    }
                }
            };

            await AddAsync(vermittler);

            return(vermittler);
        }
        private async Task <EinladecodeVermittler> CreateEinladenderVermittlerAsync()
        {
            //Einladender Vermittler HAS to be 1 because of the einladecode
            var einladenderVermittler = new Vermittler()
            {
                Id           = 1,
                VermittlerNo = "NP-000000",
                VermittlerRegistrierungsstatus = VermittlerRegistrierungsstatus.RegistrierungGenehmigt,
                BestandsProvisionssatz         = 60.0f,
                AbschlussProvisionssatz        = 60.0f,
                IhkRegistrierungsnummer        = "Registrierungsnummer",
                IstAktiv       = true,
                Bankverbindung = new Bankverbindung
                {
                    IBAN     = "DE00000000000000000000",
                    BankName = "Bankname",
                    BIC      = "DEUTDEDB123"
                },
                User = new User
                {
                    Id = 1,
                    KeycloakIdentifier = new Guid("106ee760-3e54-4fc9-a3b5-f6fc7284842f"),
                    EMail    = "Vermittler@localhost",
                    Vorname  = "Vermittler",
                    Nachname = "Markler",
                    Anrede   = Anrede.Herr,
                    Adresse  = new Adresse()
                    {
                        Straße     = "VermittlerStraße",
                        Hausnummer = "1",
                        Plz        = "123456",
                        Ort        = "Bremen",
                        Land       = new Land()
                        {
                            Name = "Deutschland"
                        }
                    }
                }, EinladecodeVermittler = new EinladecodeVermittler()
                {
                    Id           = 5,
                    VermittlerId = 1,
                    Code         = "WgAA55grJGAGagrL2k0fsA=="
                }
            };

            await AddAsync(einladenderVermittler);

            return(einladenderVermittler.EinladecodeVermittler);
        }
Exemplo n.º 3
0
        private async Task EingeladenVonZuweisen(string eingeladenVonCode, Vermittler vermittlerToAdd)
        {
            //If the Vermittler was invited by another Vermittler
            //we search for the code in the DB
            var eingeladenVonEinladecode = await _insuranceDbContext.EinladecodesVermittler
                                           .FirstOrDefaultAsync(ev => ev.Code == eingeladenVonCode);

            //If the EingeladenVonCode exists in the DB
            //and it is Valid then we add the Code Id to the Newly created Vermittler
            if (eingeladenVonEinladecode != null)
            {
                if (_einladecodeVermittlerValidation.Validate(eingeladenVonCode))
                {
                    vermittlerToAdd.EingeladenVonVermittlerEinladecodeId = eingeladenVonEinladecode.Id;
                }
            }
        }
        private async Task <Vermittler> CreateVermittlerMitDokument()
        {
            var dokument = new Dokument()
            {
                Id            = 1,
                Name          = "Persönliche Daten",
                DokumentenArt = new DokumentArt
                {
                    Id   = 1,
                    Name = "PersönlicheDaten"
                },
                Bearbeitungsstatus = Bearbeitungsstatus.ZuPrüfen,
                FileExtension      = FileExtension.pdf,
                Data = Convert.FromBase64String("SGVsbG8gV29ybGQ=")
            };

            var dokumentListe = new List <Dokument>()
            {
                dokument
            };

            var vermittlerToAdd = new Vermittler
            {
                Id                             = 1,
                VermittlerNo                   = "NP-000000",
                BestandsProvisionssatz         = 60,
                AbschlussProvisionssatz        = 60,
                IhkRegistrierungsnummer        = "Registrierungsnummer",
                VermittlerRegistrierungsstatus = VermittlerRegistrierungsstatus.RegistrierungGenehmigt,
                User                           = new User
                {
                    Id = 1,
                    KeycloakIdentifier = new Guid("106ee760-3e54-4fc9-a3b5-f6fc7284842f"),
                    EMail    = "Vermittler@localhost",
                    Vorname  = "Vermittler",
                    Nachname = "Markler",
                    Anrede   = Anrede.Herr
                },
                RegistrierungsDokumente = dokumentListe
            };

            await AddAsync(vermittlerToAdd);

            return(vermittlerToAdd);
        }
Exemplo n.º 5
0
        private async Task AddVermittlerToGesellschaften(Vermittler vermittlerToAdd)
        {
            var gesellschaftenListe = await _insuranceDbContext.GesellschaftSet.ToListAsync();

            List <VermittlerGesellschafft> vermittlerGesellschaften = new List <VermittlerGesellschafft>();

            foreach (var gesellschaft in gesellschaftenListe)
            {
                vermittlerGesellschaften.Add(new VermittlerGesellschafft
                {
                    VermittlerId         = vermittlerToAdd.Id,
                    GesellschaftId       = gesellschaft.Id,
                    VermittlerNo         = vermittlerToAdd.VermittlerNo,
                    Abschlussvergütung   = 0.08,
                    Bestandsvergütung    = 0.08,
                    MaxLaufzeitVergütung = 40
                });
            }

            await _insuranceDbContext.VermittlerGesellschafften.AddRangeAsync(vermittlerGesellschaften);
        }
Exemplo n.º 6
0
        public static CurrentUser RunAsPassedInVermittler(Vermittler vermittler)
        {
            var currentUserServiceDescriptor = _services.FirstOrDefault(d =>
                                                                        d.ServiceType == typeof(ICurrentUserService));

            _services.Remove(currentUserServiceDescriptor);

            // Define what this service returns
            var userServiceMock = new Mock <ICurrentUserService>();

            userServiceMock.SetupGet(s => s.KeycloakUserId)
            .Returns(vermittler.User.KeycloakIdentifier.ToString());
            userServiceMock.SetupGet(s => s.IstVermittler).Returns(true);
            userServiceMock.SetupGet(s => s.ApiUserId).Returns(vermittler.User.Id);

            _currentUser.KeycloakUserGuid = userServiceMock.Object.KeycloakUserId;
            _currentUser.IstVermittler    = userServiceMock.Object.IstVermittler;

            _services.AddTransient(provider => userServiceMock.Object);

            _scopeFactory = _services.BuildServiceProvider().GetService <IServiceScopeFactory>();

            return(_currentUser);
        }
Exemplo n.º 7
0
        private async Task <Vermittler> CreateVermittler()
        {
            List <Dokument> dokumentenListe = new List <Dokument>()
            {
                new Dokument()
                {
                    Id            = 1,
                    Name          = "Name",
                    DokumentenArt = new DokumentArt
                    {
                        Id   = 1,
                        Name = "Ausweiskopie"
                    },
                    Bearbeitungsstatus = Bearbeitungsstatus.Aktzeptiert,
                    FileExtension      = FileExtension.jpg,
                    Data = BeispielDokumente.Schufa
                }
            };



            var vermittler = new Vermittler
            {
                Id           = 1,
                VermittlerNo = "NP-000000",
                VermittlerRegistrierungsstatus = VermittlerRegistrierungsstatus.NeuerVermittler,
                BestandsProvisionssatz         = 60.0f,
                AbschlussProvisionssatz        = 60.0f,
                IhkRegistrierungsnummer        = "Registrierungsnummer",
                IstAktiv       = true,
                Bankverbindung = new Bankverbindung
                {
                    Id           = 1,
                    Kontoinhaber = "TestKontoinhaber",
                    IBAN         = "DE00000000000000000000",
                    BankName     = "Bankname",
                    BIC          = "DEUTDEDB123"
                },
                User = new User
                {
                    Id = 1,
                    KeycloakIdentifier = new Guid("106ee760-3e54-4fc9-a3b5-f6fc7284842f"),
                    EMail               = "Vermittler@localhost",
                    Vorname             = "Vermittler",
                    Nachname            = "Markler",
                    Anrede              = Anrede.Herr,
                    Geburtsdatum        = new DateTime(1900, 1, 1),
                    Geburtsort          = "TestOrt",
                    Staatsangehörigkeit = new Land()
                    {
                        Id   = 2,
                        Name = "Testland"
                    },
                    Adresse = new Adresse()
                    {
                        Straße     = "VermittlerStraße",
                        Hausnummer = "1",
                        Plz        = "123456",
                        Ort        = "Bremen",
                        Land       = new Land()
                        {
                            Name = "Deutschland"
                        }
                    }
                },
                RegistrierungsDokumente = dokumentenListe,
                EinladecodeVermittler   = new EinladecodeVermittler()
                {
                    VermittlerId = 1,
                    Code         = "WgAA55grJGAGagrL2k0fsA=="
                }
            };

            await AddAsync(vermittler);

            return(vermittler);
        }
Exemplo n.º 8
0
        /// <summary>
        /// Set Land in Adresse to Deutschland
        /// Set Provisionssätze to 60%
        /// Set Registrierungsstatus to NeuerVermittler
        /// Validate and Set EingeladenVon
        /// Create Einladecode for Vermittler
        /// Create new VermittlerNo
        /// </summary>
        /// <param name="command"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        private async Task <int> RegisterNewVermittler(RegisterOrUpdateVermittlerCommand command,
                                                       CancellationToken cancellationToken)
        {
            var vermittlerToAdd = new Vermittler
            {
                BestandsProvisionssatz  = 60.0f,
                AbschlussProvisionssatz = 60.0f,
                IhkRegistrierungsnummer = command.IhkRegistrierungsnummer,
                IstAktiv = false,
                VermittlerRegistrierungsstatus = VermittlerRegistrierungsstatus.NeuerVermittler,

                User = new User
                {
                    KeycloakIdentifier = new Guid(_currentUserService.KeycloakUserId),
                    EMail                 = _currentUserService.Email,
                    Vorname               = command.Vorname,
                    Nachname              = command.Nachname,
                    Telefon               = command.Telefon,
                    Geburtsdatum          = command.Geburtsdatum,
                    Geburtsort            = command.Geburtsort,
                    StaatsangehörigkeitId = command.StaatsangehörigkeitId,
                    Anrede                = EnumExtensions.ParseEnumFromString <Anrede>(command.Anrede),
                    Adresse               = new Adresse
                    {
                        Straße     = command.Straße,
                        Hausnummer = command.Hausnummer,
                        Plz        = command.Plz,
                        Ort        = command.Ort,
                        Land       = await _insuranceDbContext.Länder.FirstAsync(l => l.Name == "Deutschland")
                    }
                },
                Bankverbindung = new Bankverbindung
                {
                    Kontoinhaber = command.Kontoinhaber,
                    IBAN         = command.Iban,
                    BankName     = command.Bankname,
                    BIC          = command.Bic
                }
            };

            //START - EINGELADEN VON LOGIK
            if (!string.IsNullOrEmpty(command.EingeladenVonEinladeCode))
            {
                await EingeladenVonZuweisen(command.EingeladenVonEinladeCode, vermittlerToAdd);
            }
            //END

            //START - Add VermittlerNo
            vermittlerToAdd.VermittlerNo = await _vermittlerNoGenerator.GenerateVermittlerNoAsync();

            //END

            await _insuranceDbContext.Vermittler.AddAsync(vermittlerToAdd, cancellationToken);

            await _insuranceDbContext.SaveChangesAsync(cancellationToken);

            //For the vermittlerToAdd we need to Automatically generate a Einladungscode
            vermittlerToAdd.EinladecodeVermittler = new EinladecodeVermittler
            {
                VermittlerId = vermittlerToAdd.Id,
                Code         = _iAesCryptographyService.EncryptString(vermittlerToAdd.Id.ToString())
            };

            //Add Vermittler to all Existing Gesellschaften
            await AddVermittlerToGesellschaften(vermittlerToAdd);

            await _insuranceDbContext.SaveChangesAsync(cancellationToken);

            return(vermittlerToAdd.Id);
        }