public async Task <IActionResult> CompanyMemberSignup([FromForm] CompanyMemberSignup signup)
        {
            JsonResponse <User> objResult = new JsonResponse <User>();

            try
            {
                HttpContext context = HttpContext;
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                bool matched = await this.authService.MatchSecretKey(signup.SecretKey);

                if (!matched)
                {
                    objResult.Data    = null;
                    objResult.Status  = StaticResource.UnauthorizedStatusCode;
                    objResult.Message = StaticResource.UnauthorizedMessage;
                    return(new OkObjectResult(objResult));
                }
                var user = await this.authService.CompanyMemberSignup(signup, Convert.ToInt32(RolesEnum.Member), context);

                switch (user.Status)
                {
                case 1:
                    objResult.Data    = null;
                    objResult.Status  = StaticResource.SuccessStatusCode;
                    objResult.Message = StaticResource.SuccessMessage;
                    break;

                case 5:
                    objResult.Data    = null;
                    objResult.Status  = StaticResource.DuplicateStatusCode;
                    objResult.Message = StaticResource.EmailExist;
                    break;

                case 6:
                    objResult.Data    = null;
                    objResult.Status  = StaticResource.DuplicateStatusCode;
                    objResult.Message = StaticResource.UsernameExist;
                    break;
                }
            }
            catch (Exception ex)
            {
                HttpContext.RiseError(ex);
                objResult.Data    = null;
                objResult.Status  = StaticResource.FailStatusCode;
                objResult.Message = StaticResource.FailMessage;
            }

            return(new OkObjectResult(objResult));
        }
        public async Task <User> CompanyMemberSignup(CompanyMemberSignup request, int RoleId, HttpContext context)
        {
            int  userId       = 0;
            User createMember = null;
            var  now          = DateTime.UtcNow;
            var  guid         = System.Guid.NewGuid();

            try
            {
                var user = new Users
                {
                    UserId       = 0,
                    UserGuid     = guid,
                    IsActive     = true,
                    IsBlocked    = false,
                    LastLogin    = null,
                    CreatedDate  = now,
                    CreatedBy    = null,
                    ModifiedDate = null,
                    ModifiedBy   = null,
                    IsDeleted    = false,
                };

                UserProfile userProfile = new UserProfile
                {
                    ProfileId        = 0,
                    ProfileGuid      = System.Guid.NewGuid(),
                    UserId           = userId,
                    ProfilePhoto     = null,
                    Gender           = null,
                    City             = null,
                    State            = null,
                    Country          = null,
                    ZipCode          = null,
                    Qualification    = null,
                    Education        = null,
                    IsFeature        = null,
                    Ranked           = null,
                    BriefBio         = null,
                    InstagramProfile = null,
                    LinkedInProfile  = null,
                    FaceBookProfile  = null,
                    ContactNo1       = null,
                    ContactNo2       = null,
                    TimezoneId       = request.TimezoneId,
                    IsApproved       = null,
                    ApprovedDate     = null,
                    //
                    CreatedDate       = now,
                    ModifiedDate      = null,
                    CreatedBy         = userId,
                    ModifiedBy        = null,
                    IsActive          = true,
                    PractitionerSince = null,
                    Description       = request.Description,
                    Language          = null,
                    IsDeleted         = false,
                    PublicProfile     = true,
                    IsDeactivated     = false
                };
                UserInfo userInfo = new UserInfo()
                {
                    UserName  = request.CompanyUserNameCode + "_" + request.UserName,
                    Password  = request.UserPassword,
                    FirstName = request.FirstName,
                    LastName  = request.LastName,
                    Email     = request.Email,
                };
                bool IsCompany = true;
                createMember = await this.authRepo.CreateUserAsync(user, userProfile, null, userInfo, RoleId, "", IsCompany, request.InvitedGuid, request.CompanyId, request.CompanyAdminId);

                if (createMember.UserId > 0)
                {
                    await this.commonEmailsService.SendWelcomeEmailToMemberFromCompany(request.Email, request.FirstName, request.LastName, userInfo.UserName, request.UserPassword, request.CompanyName, context);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(createMember);
        }