public ValidationResult Add(Buyer buyer)
        {
            BeginTransaction();

            var buyerModel = buyer.ToModel();

            ValidationResult = _buyerService.Add(buyerModel).ToViewModel();

            if (ValidationResult.IsValid)
            {
                Commit();
            }
            return(ValidationResult);
        }
        public async Task <IActionResult> KayitOl(RegisterModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = new ApplicationUser
            {
                UserName = model.UserName,
                Email    = model.Email
            };
            var result = await _userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                var callBackUrl = Url.Action("ConfirmEmail", "Hesap", new
                {
                    userId = user.Id,
                    token  = code
                });
                _cartService.InitializeCart(user.Id);
                await _emailSender.SendEmailAsync(model.Email, "Hesabınızı Onaylayınız.", $"Lütfen email hesabınızı onaylamak için linke <a href='http://localhost:44301{callBackUrl}'>tıklayınız.</a>");

                var buyer = new Buyer
                {
                    BuyerName        = user.UserName,
                    Email            = user.Email,
                    Adress           = model.Adress,
                    PhoneNumber      = model.PhoneNumber,
                    ProfileImageUrl  = model.ProfileImageUrl,
                    RegistrationDate = DateTime.Now.ToString("yyyy-mm-dd hh:mm:ss")
                };
                _buyerService.Add(buyer);
                var buyerId = buyer.BuyerId;
                _userAndBuyersService.Add(new UsersAndBuyers {
                    BuyerId = buyerId, UserId = user.Id
                });
                var addToRole = await _userManager.AddToRoleAsync(user, "Buyer");

                if (addToRole.Succeeded)
                {
                    return(RedirectToAction("GirisYap", "Hesap"));
                }
            }
            ModelState.AddModelError("", "Bilinmeyen hata oluştu lütfen tekrar deneyiniz.");
            return(View(model));
        }