public async Task <IActionResult> Forgot(string id, [FromForm] string NewPassword)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                    {
                        Status = "Error",
                        Messages = new Message[] {
                            new Message {
                                Lang_id = 1,
                                MessageLang = "Model state isn't valid!"
                            },
                            new Message {
                                Lang_id = 2,
                                MessageLang = "Состояние модели недействительно!"
                            },
                            new Message {
                                Lang_id = 3,
                                MessageLang = "Model vəziyyəti etibarsızdır!"
                            }
                        }
                    }));
                }
                AppUser user = _user.Users.Where(u => u.ActiveCode == id).FirstOrDefault();
                if (user == null)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                    {
                        Status = "Error",
                        Messages = new Message[] {
                            new Message {
                                Lang_id = 1,
                                MessageLang = "Model state isn't valid!"
                            },
                            new Message {
                                Lang_id = 2,
                                MessageLang = "Состояние модели недействительно!"
                            },
                            new Message {
                                Lang_id = 3,
                                MessageLang = "Model vəziyyəti etibarsızdır!"
                            }
                        }
                    }));
                }

                string token = await _userManager.GeneratePasswordResetTokenAsync(user);

                IdentityResult identityResult = await _userManager.ResetPasswordAsync(user, token, NewPassword);

                if (!identityResult.Succeeded)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                    {
                        Status = "Error",
                        Messages = new Message[] {
                            new Message {
                                Lang_id = 1,
                                MessageLang = "Model state isn't valid!"
                            },
                            new Message {
                                Lang_id = 2,
                                MessageLang = "Состояние модели недействительно!"
                            },
                            new Message {
                                Lang_id = 3,
                                MessageLang = "Model vəziyyəti etibarsızdır!"
                            }
                        }
                    }));
                }
                user.ActiveCode = null;
                await _user.SaveChangesAsync();

                return(Ok());
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                {
                    Status = "Error",
                    Messages = new Message[] {
                        new Message {
                            Lang_id = 1,
                            MessageLang = e.Message + e.InnerException
                        },
                        new Message {
                            Lang_id = 2,
                            MessageLang = e.Message + e.InnerException
                        },
                        new Message {
                            Lang_id = 3,
                            MessageLang = e.Message + e.InnerException
                        }
                    }
                }));
            }
        }
        public async Task <IActionResult> Forgot(string id)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                    {
                        Status = "Error",
                        Messages = new Message[] {
                            new Message {
                                Lang_id = 1,
                                MessageLang = "Model state isn't valid!"
                            },
                            new Message {
                                Lang_id = 2,
                                MessageLang = "Состояние модели недействительно!"
                            },
                            new Message {
                                Lang_id = 3,
                                MessageLang = "Model vəziyyəti etibarsızdır!"
                            }
                        }
                    }));
                }
                AppUser user = await _userManager.FindByEmailAsync(id);

                if (user == null)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                    {
                        Status = "Error",
                        Messages = new Message[] {
                            new Message {
                                Lang_id = 1,
                                MessageLang = "Model state isn't valid!"
                            },
                            new Message {
                                Lang_id = 2,
                                MessageLang = "Состояние модели недействительно!"
                            },
                            new Message {
                                Lang_id = 3,
                                MessageLang = "Model vəziyyəti etibarsızdır!"
                            }
                        }
                    }));
                }
                if (user.ActiveCode != null)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                    {
                        Status = "Error",
                        Messages = new Message[] {
                            new Message {
                                Lang_id = 1,
                                MessageLang = "We already sent email!"
                            },
                            new Message {
                                Lang_id = 2,
                                MessageLang = "Мы уже отправили письмо на вашу почту!"
                            },
                            new Message {
                                Lang_id = 3,
                                MessageLang = "Biz artıq email göndərmişik!"
                            }
                        }
                    }));
                }
                user.ActiveCode = Guid.NewGuid().ToString();
                await _user.SaveChangesAsync();

                string      url     = "http://*****:*****@gmail.com", "Camex Support");
                message.To.Add(new MailAddress(user.Email));

                message.Subject = "Reset Password";
                message.Body    = "We heard that you lost your password. Sorry about that!<br>" +
                                  "<br>But don’t worry! You can use the following link to <span class='il' >reset</span> your password:<br>" +
                                  "<br><a href = " + url + " rel='noreferrer' target='_blank'>" + url + "</a><br>" +
                                  "<br>If you don’t use this link within 3 hours, it will expire.<br>" +
                                  "Thanks,<br>" +
                                  "The Seynur Team";
                message.IsBodyHtml = true;
                SmtpClient smtp = new SmtpClient();
                smtp.Host      = "smtp.gmail.com";
                smtp.Port      = 587;
                smtp.EnableSsl = true;

                smtp.Credentials = new NetworkCredential("*****@*****.**", "seynur2462736");
                smtp.Send(message);

                return(Ok());
            }
            catch (Exception e)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, new Response
                {
                    Status = "Error",
                    Messages = new Message[] {
                        new Message {
                            Lang_id = 1,
                            MessageLang = e.Message + e.InnerException
                        },
                        new Message {
                            Lang_id = 2,
                            MessageLang = e.Message + e.InnerException
                        },
                        new Message {
                            Lang_id = 3,
                            MessageLang = e.Message + e.InnerException
                        }
                    }
                }));
            }
        }