예제 #1
0
        public UserModel RegisterMembership(UserModel userModel, Guid userId)
        {
            try
            {
                MailAddress mailAddress = new MailAddress(userModel.Email);

                var membership = new User()
                {
                    CreatedById = userId,
                    FirstName   = userModel.FirstName,
                    LastName    = userModel.LastName,
                    NationalIdentificationNumber = userModel.NationalIdentificationNumber,
                    TaxNumber    = userModel.TaxNumber,
                    UserType     = Common.Enum.Enum.UserType.Membership,
                    EntityType   = userModel.EntityType,
                    Email        = userModel.Email,
                    PasswordHash = SecurityUtilities.HashPassword(userModel.Password),
                    UserName     = mailAddress.User
                };

                var membershipRoleId = _identityRepository.GetAllRoles().Where(m => m.Name.Contains("Membership")).Select(m => m.Id).FirstOrDefault();

                /* adding membership role */
                membership.Roles.Add(new UserRole
                {
                    RoleId      = membershipRoleId,
                    CreatedById = userId
                });

                /* adding deposit record */
                membership.AccrualLoans.Add(new AccrualLoan
                {
                    Type              = Common.Enum.Enum.AccrualLoanType.Deposit,
                    Amount            = 100m,
                    ExpiryDate        = DateTime.UtcNow,
                    CreatedById       = userId,
                    CreatedAt         = DateTime.UtcNow,
                    CollectionRecords = new List <CollectionRecord>()
                    {
                        new CollectionRecord()
                        {
                            Amount      = 100m,
                            CreatedById = userId,
                            CreatedAt   = DateTime.UtcNow,
                        }
                    }
                });

                membership = _identityRepository.AddUser(membership);

                var mappedMembership = ObjectMapper.Mapper.Map <UserModel>(membership);

                return(mappedMembership);
            }
            catch (Exception)
            {
                throw;
            }
        }