public async Task <bool> SendForgotPasswordEmail(Bombeiro user, string activationUrl)
        {
            if (user == null)
            {
                return(false);
            }

            if (string.IsNullOrEmpty(activationUrl))
            {
                return(false);
            }

            //var client = new SendGridClient(Configuration.GetSection("AppSettings")["SendGridApiKey"]);

            //var message = new SendGridMessage();
            //message.AddTo(new EmailAddress(user.Email, $"{user.FirstName + " " + user.LastName}"));
            //message.SetFrom(new EmailAddress(Configuration.GetSection("AppSettings")["SendGrid.From"], "Hannibalvakanties"));
            //message.SetTemplateId(Configuration.GetSection("AppSettings")["SendGrid.TemplateId.Reset.Password"]);

            //var templateData = new ForgotEmailTemplateData()
            //{
            //    Subject = "Wachtwoord herstellen - Hannibalportaal",
            //    FirstName = user.FirstName,
            //    PasswordResetLink = activationUrl,
            //    PasswordResetLinkUrl = activationUrl
            //};

            //message.SetTemplateData(templateData);

            //var response = await client.SendEmailAsync(message);

            //return (response.StatusCode == HttpStatusCode.Accepted || response.StatusCode == HttpStatusCode.OK);
            return(true);
        }
Esempio n. 2
0
        public Bombeiro Update(Bombeiro bombeiro)
        {
            if (bombeiro == null)
            {
                return(null);
            }

            using (var context = new MapaDaForcaDbContext(Options))
            {
                context.Bombeiros.Add(bombeiro);
                context.Entry(bombeiro).State = EntityState.Modified;

                return(context.SaveChanges() > 0 ? bombeiro : null);
            }
        }
        public Bombeiro Save(Bombeiro save)
        {
            Bombeiro saved = null;

            if (_repository.IsExisting(new Guid(save.Id)))
            {
                saved = _repository.Update(save);
            }
            else
            {
                saved = _repository.Create(save);
            }

            return(saved);
        }
Esempio n. 4
0
        public Bombeiro Create(Bombeiro bombeiro)
        {
            if (bombeiro == null)
            {
                return(null);
            }

            using (var context = new MapaDaForcaDbContext(Options))
            {
                bombeiro.Id = Guid.NewGuid().ToString();
                context.Bombeiros.Add(bombeiro);
                context.Entry(bombeiro).State = EntityState.Added;

                return(context.SaveChanges() > 0 ? bombeiro : null);
            }
        }
Esempio n. 5
0
        private async Task LoadSharedKeyAndQrCodeUriAsync(Bombeiro user)
        {
            // Load the authenticator key & QR code URI to display on the form
            var unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user);

            if (string.IsNullOrEmpty(unformattedKey))
            {
                await _userManager.ResetAuthenticatorKeyAsync(user);

                unformattedKey = await _userManager.GetAuthenticatorKeyAsync(user);
            }

            SharedKey = FormatKey(unformattedKey);

            var email = await _userManager.GetEmailAsync(user);

            AuthenticatorUri = GenerateQrCodeUri(email, unformattedKey);
        }
        public async Task <IActionResult> OnPostConfirmationAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            // Get the information about the user from the external login provider
            var info = await _signInManager.GetExternalLoginInfoAsync();

            if (info == null)
            {
                ErrorMessage = "Error loading external login information during confirmation.";
                return(RedirectToPage("./Login", new { ReturnUrl = returnUrl }));
            }

            if (ModelState.IsValid)
            {
                var user = new Bombeiro {
                    UserName = Input.Email, Email = Input.Email
                };
                var result = await _userManager.CreateAsync(user);

                if (result.Succeeded)
                {
                    result = await _userManager.AddLoginAsync(user, info);

                    if (result.Succeeded)
                    {
                        await _signInManager.SignInAsync(user, isPersistent : false);

                        _logger.LogInformation("User created an account using {Name} provider.", info.LoginProvider);
                        return(LocalRedirect(returnUrl));
                    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            LoginProvider = info.LoginProvider;
            ReturnUrl     = returnUrl;
            return(Page());
        }
Esempio n. 7
0
        //public JsonResult
        public async Task <IActionResult> Edit(Bombeiro bombeiro)
        {
            try
            {
                var userDetail = _userManager.GetUserAsync(User).Result;
                userDetail.Nome = bombeiro.Nome;
                userDetail.NumeroMecanografico = bombeiro.NumeroMecanografico;
                userDetail.PostoId             = bombeiro.PostoId;
                userDetail.QuartelId           = bombeiro.QuartelId;
                userDetail.DtInicio            = bombeiro.DtInicio;
                userDetail.Turno = bombeiro.Turno;

                await _userManager.UpdateAsync(userDetail);

                return(Json(new { success = true, message = "Bombeiro guardado com sucesso!" }));
            }
            catch (Exception)
            {
                return(Json(new { success = false, message = "Erro ao guardar este Bombeiro" }));
            }
        }
Esempio n. 8
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            if (ModelState.IsValid)
            {
                var user = new Bombeiro {
                    UserName            = Input.Email,
                    Email               = Input.Email,
                    Nome                = Input.Bombeiro.Nome,
                    NumeroMecanografico = Input.Bombeiro.NumeroMecanografico,
                    DtInicio            = Input.Bombeiro.DtInicio,
                    PostoId             = Input.Bombeiro.PostoId,
                    QuartelId           = Input.Bombeiro.QuartelId,
                    Turno               = (Turno.T1),
                    EmailConfirmed      = true
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var x = await _roleManager.RoleExistsAsync(PerfilAcesso.Bombeiro);

                    if (x)
                    {
                        await _userManager.AddToRoleAsync(user, PerfilAcesso.Bombeiro);
                    }

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { userId = user.Id, code = code },
                        protocol: Request.Scheme);

                    //await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //    $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    //await _signInManager.SignInAsync(user, isPersistent: false);
                    //return LocalRedirect(returnUrl);
                    return(new RedirectToActionResult("Detail", "Bombeiro", new { @id = user.Id, @message = true }));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }


            var postos = _postoStore.GetAll().Select(s => new SelectListItem
            {
                Value = s.Id.ToString(),
                Text  = s.Nome
            }).ToList();

            ViewData["Postos"] = postos;

            var quarteis = _quartelStore.GetAll().Select(s => new SelectListItem
            {
                Value = s.Id.ToString(),
                Text  = s.Nome
            }).ToList();

            ViewData["Quarteis"] = quarteis;

            return(Page());
        }