Esempio n. 1
0
        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
                }));
            }
        }
Esempio n. 2
0
        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);
        }