public async Task <Result> Handle(UpdateBusinessLegalCommand request, CancellationToken token)
        {
            var legalAddress = new LegalAddress(request.Address.Line1,
                                                request.Address.Line2,
                                                request.Address.Zipcode,
                                                request.Address.City,
                                                request.Address.Country);

            var ownerAddress = new OwnerAddress(request.Owner.Address.Line1,
                                                request.Owner.Address.Line2,
                                                request.Owner.Address.Zipcode,
                                                request.Owner.Address.City,
                                                request.Owner.Address.Country
                                                );

            var legal = await _context.Set <BusinessLegal>().SingleAsync(e => e.Id == request.LegalId, token);

            legal.SetKind(request.Kind);
            legal.SetValidation(request.Validation);
            legal.SetName(request.Name);
            legal.SetEmail(request.Email);
            legal.SetAddress(legalAddress);
            legal.SetSiret(request.Siret);
            legal.SetVatIdentifier(request.VatIdentifier);

            legal.Owner.SetFirstname(request.Owner.FirstName);
            legal.Owner.SetLastname(request.Owner.LastName);
            legal.Owner.SetEmail(request.Owner.Email);
            legal.Owner.SetBirthDate(request.Owner.BirthDate);
            legal.Owner.SetNationality(request.Owner.Nationality);
            legal.Owner.SetCountryOfResidence(request.Owner.CountryOfResidence);
            legal.Owner.SetAddress(ownerAddress);

            await _context.SaveChangesAsync(token);

            if (string.IsNullOrWhiteSpace(legal.User.Identifier))
            {
                var userResult = await _mediatr.Process(
                    new CheckBusinessLegalConfigurationCommand(request.RequestUser) { UserId = legal.UserId }, token);

                if (!userResult.Succeeded)
                {
                    return(Failure(userResult));
                }
            }
            else
            {
                var result = await _pspService.UpdateBusinessAsync(legal, token);

                if (!result.Succeeded)
                {
                    return(Failure(result));
                }
            }

            return(Success());
        }
Beispiel #2
0
        private async Task <LegalAddress> BuildLegalAddress(LegalAddress model, string userId)
        {
            LegalAddress legalAddress = await _db.LegalAddresses.FirstOrDefaultAsync(l => l.UserId == userId);

            legalAddress.Index   = model.Index;
            legalAddress.Country = model.Country;
            legalAddress.Region  = model.Region;
            legalAddress.City    = model.City;
            legalAddress.Address = model.Address;
            return(legalAddress);
        }
        public async Task <IActionResult> UpdateInfo(string cityphone, string postalCity, string postalRegion, string legalCity, string legalRegion, string apiKey)
        {
            string       userId       = _userManager.GetUserId(User);
            LegalAddress legalAddress = await _db.LegalAddresses.FirstOrDefaultAsync(l => l.UserId == userId);

            PostalAddress postalAddress = await _db.PostalAddresses.FirstOrDefaultAsync(p => p.UserId == userId);

            if (!(legalCity is null))
            {
                legalAddress.City = legalCity;
            }
            if (!(legalRegion is null))
            {
                legalAddress.Region = legalRegion;
            }
            if (!(postalCity is null))
            {
                postalAddress.City = postalRegion;
            }
            if (!(postalCity is null))
            {
                postalAddress.Region = postalCity;
            }
            if (!(cityphone is null))
            {
                User user = await _db.Users.FirstOrDefaultAsync(u => u.Id == userId);

                user.CityPhone = cityphone;
                _db.Users.Update(user);
            }
            if (!(apiKey is null))
            {
                User user = await _db.Users.FirstOrDefaultAsync(u => u.Id == userId);

                user.GoogleMapsApi = apiKey;
                _db.Users.Update(user);
            }
            _db.LegalAddresses.Update(legalAddress);
            _db.PostalAddresses.Update(postalAddress);
            await _db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Beispiel #4
0
        public async Task <IActionResult> EditRegistrantInfo(SuperAdminIndexViewModel model)
        {
            // if (ModelState.IsValid)
            // {
            // _db.Users.Update(model.User);
            User user = await BuildUser(model.User);

            LegalAddress legalAddress = await BuildLegalAddress(model.User.LegalAddress, model.User.Id);

            PostalAddress postalAddress = await BuildPostalAddress(model.User.PostalAddress, model.User.Id);

            _db.LegalAddresses.Update(legalAddress);
            _db.PostalAddresses.Update(postalAddress);
            _db.Users.Update(user);
            await _db.SaveChangesAsync();

            return(RedirectToAction("Index"));
            // }
            // return NotFound();
        }
Beispiel #5
0
        public async Task <Result <Guid> > Handle(CreateBusinessLegalCommand request, CancellationToken token)
        {
            var business = await _context.Businesses.SingleAsync(e => e.Id == request.UserId, token);

            var owner = new Owner(
                request.Owner.FirstName,
                request.Owner.LastName,
                request.Owner.Email
                );

            owner.SetNationality(request.Owner.Nationality);
            owner.SetBirthDate(request.Owner.BirthDate);
            owner.SetCountryOfResidence(request.Owner.CountryOfResidence);

            var ownerAddress = request.Owner.Address != null
                ? new OwnerAddress(request.Owner.Address.Line1, request.Owner.Address.Line2,
                                   request.Owner.Address.Zipcode, request.Owner.Address.City, request.Owner.Address.Country)
                : null;

            if (ownerAddress != null)
            {
                owner.SetAddress(ownerAddress);
            }

            var billingAddress = request.Billing != null
                ? new BillingAddress(request.Billing.Line1, request.Billing.Line2,
                                     request.Billing.Zipcode, request.Billing.City, request.Billing.Country, request.Billing.Name)
                : null;

            var legalAddress = new LegalAddress(request.Address.Line1, request.Address.Line2, request.Address.Zipcode,
                                                request.Address.City, request.Address.Country);

            var legals = business.SetLegals(
                request.Kind,
                request.Name,
                request.Email,
                request.Siret,
                request.VatIdentifier,
                legalAddress,
                billingAddress,
                owner,
                request.RegistrationCity,
                request.RegistrationCode,
                request.RegistrationKind);

            await _context.SaveChangesAsync(token);

            if (business.Kind != ProfileKind.Store)
            {
                if (string.IsNullOrWhiteSpace(business.Identifier))
                {
                    var userResult = await _mediatr.Process(
                        new CheckBusinessLegalConfigurationCommand(request.RequestUser)
                        { UserId = business.Id }, token);

                    if (!userResult.Succeeded)
                    {
                        return(Failure <Guid>(userResult));
                    }
                }
                else
                {
                    var result = await _pspService.UpdateBusinessAsync(legals, token);

                    if (!result.Succeeded)
                    {
                        return(Failure <Guid>(result));
                    }
                }
            }

            return(Success(legals.Id));
        }