Пример #1
0
        public async Task <int> BuyPoint(ConsumerUser user, string transactionJson, string transactionId, string productId, PointType pointType)
        {
            var point = await _userRepository.GetPointAsync(productId, pointType);

            if (point == null)
            {
                throw new BusinessException("PointNotFound", "Puan bulunamadı.");
            }

            var newTransaction = new BuyPointTransaction()
            {
                Point           = point,
                PointValue      = point.PointValue,
                ProductId       = productId,
                SubmitDateUtc   = DateTime.UtcNow,
                TransactionId   = transactionId,
                TransactionJson = transactionJson,
                User            = user
            };

            await _userRepository.SaveBuyPointTransaction(newTransaction);

            user.Point = user.Point + point.PointValue;

            _userRepository.UpdateUser(user);

            await _unitOfWork.CompleteAsync();

            return(user.Point);
        }
        private void FalCommentedMailToConsumer(ConsumerUser user)
        {
            try
            {
                var userConfirmationMailTemplatePath = _environment.ContentRootPath + "\\Assets\\Templates\\FalCommented.html";
                var template = System.IO.File.ReadAllText(userConfirmationMailTemplatePath);
                template = template
                           .Replace("[fullName]", user.FullName);

                _emailHelper.Send(
                    new EmailModel
                {
                    To         = user.Email,
                    Subject    = "Falcım - Falına bakıldı",
                    IsBodyHtml = true,
                    Message    = template
                }
                    );
            }
            catch (Exception e)
            {
                try
                {
                    _logger.LogError("FalCommentedMailSendError:  " + user?.Email + ", Errors: " + e.Message + " - " + e.InnerException?.Message);
                }
                catch
                {
                }
            }
        }
Пример #3
0
 public ConsumerUserInfoDto(ConsumerUser consumerUser)
 {
     PhoneNumber        = consumerUser.PhoneNumber;
     Name               = consumerUser.Name;
     EmailAddress       = consumerUser.EmailAddress;
     IsActive           = consumerUser.IsActive;
     IsRoamingActivated = consumerUser.IsRoamingActivated;
     IsIDDActivated     = consumerUser.IsIDDActivated;
 }
        public async Task InsertAsync(ConsumerUser consumerUser)
        {
            var query = @"INSERT INTO ConsumerUser(PhoneNumber, `Password`, `Name`, IsActive, IsRoamingActivated, IsIDDActivated, EmailAddress, TotalRewardPoints)
                          VALUES (@PhoneNumber, @Password, @Name, @IsActive, @IsRoamingActivated, @IsIDDActivated, @EmailAddress, @TotalRewardPoints)";

            using (var connection = DbConnection)
            {
                await connection.ExecuteAsync(query, consumerUser);
            }
        }
Пример #5
0
        public async Task SeedConsumerUserDataAsync()
        {
            if (await _consumerUserRepository.GetConsumerUserByPhoneNumberAsync("018009999") is null)
            {
                var user = new ConsumerUser
                {
                    PhoneNumber        = "018009999",
                    Password           = Crypto.HashPassword("imredone"),
                    Name               = "Test User",
                    EmailAddress       = "*****@*****.**",
                    IsActive           = true,
                    IsIDDActivated     = false,
                    IsRoamingActivated = false,
                    TotalRewardPoints  = 2000
                };

                await _consumerUserRepository.InsertAsync(user);
            }
        }
Пример #6
0
        public async Task <ActionResult> RegisterNewUser(RegisterNewUserRequest request)
        {
            request.UserName = request.UserName != null?request.UserName.Trim() : request.UserName;

            request.Email = request.Email != null?request.Email.Trim() : request.Email;

            request.Password  = request.Password.Trim();
            request.Password2 = request.Password2.Trim();

            if (string.IsNullOrWhiteSpace(request.UserName))
            {
                throw new BusinessException("EmptyUserName", "Kullanıcı adı boş olamaz.");
            }

            if (string.IsNullOrWhiteSpace(request.Email))
            {
                throw new BusinessException("EmptyEmail", "Email boş olamaz.");
            }

            if (!Validations.IsValidEmail(request.Email))
            {
                throw new BusinessException("NotValidEmail", "Geçerli bir E-Mail adresi girin.");
            }

            if (string.IsNullOrWhiteSpace(request.FullName))
            {
                throw new BusinessException("EmptyFullname", "İsim boş olamaz.");
            }

            if (string.IsNullOrWhiteSpace(request.Password))
            {
                throw new BusinessException("EmptyPassword", "Şifre boş olamaz.");
            }

            if (request.Password != request.Password2)
            {
                throw new BusinessException("PasswordsMustBeSame", "Şifreler eşit olmalı.");
            }

            if (request.Password.Length < 6)
            {
                throw new BusinessException("PasswordLengthError", "Şifre 6 karakterden az olamaz.");
            }

            var existingUser = await _userManager.FindByNameAsync(request.UserName);

            if (existingUser != null)
            {
                throw new BusinessException("UserAlreadyExists", "Kullanıcı zaten mevcut.");
            }

            var userByMail = await _userManager.FindByEmailAsync(request.Email);

            if (userByMail != null)
            {
                throw new BusinessException("EmailAlreadyExists", "Email zaten mevcut.");
            }

            var user = new ConsumerUser
            {
                UserName           = request.UserName,
                Email              = request.Email,
                FullName           = request.FullName,
                CreateDate         = DateTime.UtcNow,
                Gender             = request.Gender,
                RelationshipStatus = request.RelationshipStatus,
                Job         = request.Job,
                PicturePath = "defaultProfilePicture.png"
            };

            if (request.BirthDate.HasValue)
            {
                user.BirthDate = new DateTime(request.BirthDate.Value.Year, request.BirthDate.Value.Month, request.BirthDate.Value.Day);
            }

            if (request.BirthTime.HasValue)
            {
                user.BirthTime = new DateTime(1, 1, 1, request.BirthTime.Value.Hour, request.BirthTime.Value.Minute, 0);
            }

            await _userManager.CreateAsync(user, request.Password);

            await _userManager.AddToRoleAsync(user, "Consumer");

            var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);

            var entryUrl = _configuration.GetValue <string>("EntryUrl");
            var emailConfirmationLink = entryUrl + "/#/newUserConfirmation?email=" + request.Email + "&token=" + WebUtility.UrlEncode(token);

            var userConfirmationMailTemplatePath = _environment.ContentRootPath + "\\Assets\\Templates\\UserConfirmationMail.html";
            var template = System.IO.File.ReadAllText(userConfirmationMailTemplatePath);

            template = template
                       .Replace("[userName]", request.FullName)
                       .Replace("[confirmationLink]", emailConfirmationLink);

            _emailHelper.Send(
                new EmailModel
            {
                To         = request.Email,
                Subject    = "Falcım - Kullanıcı Onayı",
                IsBodyHtml = true,
                Message    = template
            }
                );

            return(Ok());
        }