private bool saveData()
 {
     try
     {
         UserDetailModel model = assignModel();
         if (model != null)
         {
             if (this.currentUserId.HasValue)
             {
                 return(service.Update(model));
             }
             else
             {
                 return(service.Create(model));
             }
         }
         else
         {
             return(false);
         }
     }
     catch (Exception ex)
     {
         Utility.ErrorLog.Logging("User Details", ex.Message.ToString(), ex.StackTrace.ToString());
         return(false);
     }
 }
        public async Task <IActionResult> Create(CreateUserDetailModel model)
        {
            _logger.LogInformation("UserDetailController::Create");
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var userDetail = await _userDetailService.Create(model);

            return(Created(new Uri(Url.Action("Get", new { id = userDetail.Id }), UriKind.Relative), userDetail));
        }
Exemple #3
0
        public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (String.IsNullOrEmpty(returnUrl))
            {
                returnUrl = Url.Action("SuccessRegister", "Account");
            }
            if (ModelState.IsValid)
            {
                var result = await _authServices.Register(new RegisterModel {
                    Username        = model.Email, Email = model.Email, Password = model.Password,
                    ConfirmPassword = model.ConfirmPassword
                }, true, true);



                if (result.Result.Succeeded)
                {
                    AssignModelState();
                    var response = _userDetailService.Create(new UserDetailMediCoreModel
                    {
                        Id        = 0,
                        FirstName = model.FirstName,
                        LastName  = model.LastName,
                        UserId    = result.UserId
                    });

                    if (!String.IsNullOrWhiteSpace(result.GeneratedToken))
                    {
                        var    callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = result.UserId, code = result.GeneratedToken }, protocol: HttpContext.Request.Scheme);
                        var    sendgrid    = _sender.Create(SenderFactory.EMAIL);
                        string template    = TemplateGenerator.GenerateTemplate(new TemplateOption
                        {
                            TemplateType       = TemplateType.Activation,
                            TemplateFolderPath = String.Format("{0}/{1}/{2}", _hostingEnvironment.ContentRootPath, "Resources", "Template")
                        });

                        template = template.Replace("{CONFIRMATION_LINK}", callbackUrl);
                        template = template.Replace("{FIRST_NAME}", model.FirstName);

                        //send email confirmation to user
                        await sendgrid.SendAsync(model.Email, "Aktivasi", template);
                    }

                    return(RedirectToLocal(returnUrl));
                }

                AddErrors(result.Result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Exemple #4
0
        public async Task <JsonResult> Register([FromBody] RegisterApiRequest model)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                try
                {
                    if (model.RePassword != model.Password)
                    {
                        return(BadResponse(ResultModel.Error("Repassword must match password")));
                    }

                    AppUserDetail appUserDetail = new AppUserDetail
                    {
                        FirstName        = model.FirstName,
                        LastName         = model.LastName,
                        ProfilePhotoPath = "http://placehold.it/300x300",
                        CoverPhotoPath   = "http://placehold.it/1030x360"
                    };
                    ResultModel resultModel = _userDetailService.Create(appUserDetail);
                    if (!resultModel.Status)
                    {
                        return(BadResponse(resultModel));
                    }

                    AppUser userEntity = new AppUser
                    {
                        UserName    = model.UserName,
                        Email       = model.Email,
                        CreatedDate = DateTime.Now,
                        DetailId    = appUserDetail.Id
                    };

                    IdentityResult result = await _userManager.CreateAsync(userEntity, model.Password);

                    if (!result.Succeeded)
                    {
                        Result.Status  = false;
                        Result.Message = string.Join(",", result.Errors.Select(x => x.Description));
                        scope.Dispose();
                        return(BadResponse(Result));
                    }
                    scope.Complete();
                    return(OkResponse(Result));
                }
                catch (Exception ex)
                {
                    scope.Dispose();
                    Result.Status  = false;
                    Result.Message = ex.ToString();
                    return(BadResponse(Result));
                }
            }
        }
Exemple #5
0
        public Task <IActionResult> PostCreate([FromBody] Userdetail user)
        {
            var result = _usersService.Create(user: user).Result;

            return(Task.FromResult(result));
        }
Exemple #6
0
        public async Task <IActionResult> Register([FromBody] RegisterAccountModel model)
        {
            // check the phone is already registered or not
            var isPhoneNumberExist = _userService.IsUserPhoneNumberExist(model.PhoneNumber);

            if (isPhoneNumberExist)
            {
                return(Conflict("Phone number already exist"));
            }

            var result = await _authServices.Register(new RegisterModel
            {
                Username        = model.Email,
                Email           = model.Email,
                Password        = model.Password,
                CellPhone       = model.PhoneNumber,
                ConfirmPassword = model.Password
            }, true, true);


            if (result.Result.Succeeded)
            {
                AssignModelState();
                var response = _userDetailService.Create(new UserDetailMediCoreModel
                {
                    Id        = 0,
                    FirstName = model.FirstName,
                    LastName  = model.LastName,
                    UserId    = result.UserId
                });

                if (!String.IsNullOrWhiteSpace(result.GeneratedToken))
                {
                    var    callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = result.UserId, code = result.GeneratedToken }, protocol: HttpContext.Request.Scheme);
                    var    sendgrid    = _sender.Create(SenderFactory.EMAIL);
                    string template    = TemplateGenerator.GenerateTemplate(new TemplateOption
                    {
                        TemplateType       = TemplateType.Activation,
                        TemplateFolderPath = String.Format("{0}/{1}/{2}", _hostingEnvironment.ContentRootPath, "Resources", "Template")
                    });

                    template = template.Replace("{CONFIRMATION_LINK}", callbackUrl);
                    template = template.Replace("{FIRST_NAME}", model.FirstName);

                    //send email confirmation to user
                    await sendgrid.SendAsync(model.Email, "Aktivasi", template);
                }

                if (!String.IsNullOrWhiteSpace(result.GenerateSMSToken))
                {
                    var    smsSender = _sender.Create(SenderFactory.SMS);
                    string template  = TemplateGenerator.GenerateSMSTemplate(new TemplateOption
                    {
                        TemplateType       = TemplateType.Activation,
                        TemplateFolderPath = String.Format("{0}/{1}/{2}", _hostingEnvironment.ContentRootPath, "Resources", "Template")
                    });
                    template = template.Replace("{TOKEN}", result.GenerateSMSToken);
                    await smsSender.SendAsync(model.PhoneNumber, "Aktivasi", template);
                }

                if (response.Success)
                {
                    return(Ok(response.Item));
                }
                return(BadRequest(response.Message));
            }

            return(BadRequest(result.Result.Errors.FirstOrDefault()));
        }