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; } }