public async Task <IActionResult> RegisterUser([FromBody] RegisterUserPlatformDAO registerUser)
        {
            var GenerateUser = _userToolkitRepository.GenerateUser(registerUser.RoleName);
            var password     = _userToolkitRepository.GenerateUserPaasword();

            if (GenerateUser == null)
            {
                return(StatusCode(500, new Response {
                    Status = "Error", Message = "No se pudo generar el usuario, volver a intentar mas tarde"
                }));
            }
            var response = await _registerRepository.RegisterUserPlatform(registerUser, GenerateUser[0], password, GenerateUser[1]);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                var html = await _viewRenderService.RenderToStringAsync("Register/EmailTemplateUserPlatform", response.Value);

                await _emailService.SendEmailAsync(response.Value.Email, html, "Email Verification");

                return(Ok(new Response {
                    Status = "OK", Message = "Se ha enviado un correo electrónico favor de verificar para poder contitnuar con el registro "
                }));
            }
            else
            {
                return(StatusCode((int)response.StatusCode, new Response {
                    Status = "Error", Message = response.Message
                }));
            }
        }
Example #2
0
        public async Task <StatusResponse <AppUser> > RegisterUserPlatform(RegisterUserPlatformDAO registerUser, string userName, string password, string type)
        {
            var response = new StatusResponse <AppUser>();

            try
            {
                AppUser user = new AppUser()
                {
                    Email              = registerUser.Email,
                    Type               = type,
                    UserName           = userName,
                    Name               = registerUser.Name,
                    MiddleName         = registerUser.LastName,
                    LastName           = registerUser.SecondLastName,
                    AuthValidationCode = password,
                    IsActive           = true,
                    Area               = registerUser.Employment
                };
                IdentityResult result = await _userManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    result = null;
                    result = await _userManager.AddToRoleAsync(user, registerUser.RoleName);

                    if (result.Succeeded)
                    {
                        response.StatusCode = HttpStatusCode.OK;
                        response.Message    = "Usuario agregado satisfactoriamente";
                        response.Value      = user;
                    }
                    else
                    {
                        response.StatusCode = HttpStatusCode.BadRequest;
                        response.Message    = string.Join(",", UtilitiesAIO.AddErrors(result));
                        response.Value      = null;
                    }
                }
                else
                {
                    response.StatusCode = HttpStatusCode.BadRequest;
                    response.Message    = string.Join(",", UtilitiesAIO.AddErrors(result));
                    response.Value      = null;
                }
            }
            catch (Exception e)
            {
                SystemLog systemLog = new SystemLog();
                systemLog.Description = e.ToMessageAndCompleteStacktrace();
                systemLog.DateLog     = DateTime.UtcNow.ToLocalTime();
                systemLog.Controller  = GetType().Name;
                systemLog.Action      = UtilitiesAIO.GetCallerMemberName();
                systemLog.Parameter   = JsonConvert.SerializeObject(new { Register = registerUser, User = userName, Password = password });
                _customSystemLog.AddLog(systemLog);
                response.StatusCode = HttpStatusCode.InternalServerError;
                response.Message    = "Error al intentar hacer el registro";
            }
            return(response);
        }