public async Task <IActionResult> PreRegister([FromBody] PreRegisterDAO pre) { try { var response = await _registerRepository.FirstRegister(pre); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var html = await _viewRenderService.RenderToStringAsync("Register/Emailtemplate", response.Value); await _emailService.SendEmailAsync(pre.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 })); } } catch (Exception e) { SystemLog systemLog = new SystemLog { Description = e.ToMessageAndCompleteStacktrace(), DateLog = DateTime.UtcNow.ToLocalTime(), Controller = GetType().Name, Action = UtilitiesAIO.GetCallerMemberName(), Parameter = JsonConvert.SerializeObject(pre) }; _customSystemLog.AddLog(systemLog); return(StatusCode(500, new Response { Status = "Error", Message = systemLog.Description })); } }
public async Task <StatusResponse <AppUser> > FirstRegister(PreRegisterDAO registerDAO) { var response = new StatusResponse <AppUser>(); try { using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) { AppUser user = new AppUser() { Email = registerDAO.Email, Type = "TU004", UserName = registerDAO.Email, PhoneNumber = registerDAO.PhoneNumber, Name = "PRE-REGISTER", MiddleName = "PRE-REGISTER", LastName = "PRE-REGISTER", AuthValidationCode = KeyGenerator.GetUniqueKey(10), IsActive = true }; IdentityResult result = await _userManager.CreateAsync(user, registerDAO.Password); if (result.Succeeded) { MobileDeviceRegistrationTemp registrationTemp = new MobileDeviceRegistrationTemp() { AppUserId = user.Id, CellComapny = registerDAO.CellCompany, DateRegister = DateTime.Now, DeviceId = registerDAO.DeviceId, MakeModel = registerDAO.MakeModel, NumberPhone = registerDAO.PhoneNumber, LatLangRegister = string.Format("{0},{1}", registerDAO.Latitude, registerDAO.Longitude), Platform = registerDAO.Platform, VersionOS = registerDAO.VersionOS }; _context.MobileDeviceRegistrationTemps.Add(registrationTemp); _context.SaveChanges(); 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; } scope.Complete(); } } 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(registerDAO); _customSystemLog.AddLog(systemLog); response.StatusCode = HttpStatusCode.InternalServerError; response.Message = "Error al intentar hacer el registro"; response.Value = null; } return(response); }