Thursday, February 13, 2020

how to add project to GitHub repository

Open GitHub and create a repository
Next, execute a command in Gitbash
next, take update using GitHub repository URL
paste ur project and commit

Example : URL: https://github.com/C-Naresh/aspdotnet.git

Execute this command in GitBash

echo "# aspdotnet" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/C-Naresh/aspdotnet.git
git push -u origin master

Now take update using this url https://github.com/C-Naresh/aspdotnet.git

Add your existing project inside folder and commit that's it... 

send confirmation email after registration and forgot password in Asp.Net MVC

find out EmailService : IIdentityMessageService

and add these two methods---

public async Task SendAsync(IdentityMessage message)
   {
      await configSendGridasync(message);
   }

   // Use NuGet to install SendGrid (Basic C# client lib)
   private async Task configSendGridasync(IdentityMessage message)
   {
      var myMessage = new SendGridMessage();
      myMessage.AddTo(message.Destination);
      myMessage.From = new System.Net.Mail.MailAddress(
                          "Joe@contoso.com", "Joe S.");
      myMessage.Subject = message.Subject;
      myMessage.Text = message.Body;
      myMessage.Html = message.Body;

      var credentials = new NetworkCredential(
                 ConfigurationManager.AppSettings["mailAccount"],
                 ConfigurationManager.AppSettings["mailPassword"]
                 );

      // Create a Web transport for sending email.
      var transportWeb = new Web(credentials);

      // Send the email.
      if (transportWeb != null)
      {
         await transportWeb.DeliverAsync(myMessage);
      }
      else
      {
         Trace.TraceError("Failed to create Web transport.");
         await Task.FromResult(0);
      }
   }
------------------------------
add keys in web.config

<add key="mailAccount" value="xyz" />
      <add key="mailPassword" value="password" />
-----------------------
find out public async Task<ActionResult> Register(RegisterViewModel model)
Add
await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
After
string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
            var callbackUrl = Url.Action("ConfirmEmail", "Account",
               new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
            await UserManager.SendEmailAsync(user.Id,
               "Confirm your account", "Please confirm your account by clicking <a href=\""
               + callbackUrl + "\">here</a>");
-------------------------
find out public async Task<ActionResult> Register(RegisterViewModel model)
comment await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);

and comment return RedirectToAction("Index", "Home");
add
ViewBag.Message = "Check your email and confirm your account, you must be confirmed "
                         + "before you can log in.";

         return View("Info");
         //return RedirectToAction("Index", "Home");
=================
create info page shared folder inside
----------
Add attribute in contact page
[Authorize]
public ActionResult Contact()

--------------
findout public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
add
if (!ModelState.IsValid)
    {
        return View(model);
    }
after
// Require the user to have a confirmed email before they can log on.
    var user = await UserManager.FindByNameAsync(model.Email);
    if (user != null)
    {
       if (!await UserManager.IsEmailConfirmedAsync(user.Id))
       {
          ViewBag.errorMessage = "You must have a confirmed email to log on.";
          return View("Error");
       }
    }
---------------
Add error.cshtml inside

@{
   if (String.IsNullOrEmpty(ViewBag.errorMessage))
   {
      <h2 class="text-danger">An error occurred while processing your request.</h2>
   }
   else
   {
      <h2 class="text-danger">@ViewBag.errorMessage</h2>
   }
}
------------
find out public async Task<ActionResult> ForgotPassword(ForgotPasswordViewModel model)
Add
if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id)))
        {
            // Don't reveal that the user does not exist or is not confirmed
            return View("ForgotPasswordConfirmation");
        }
after
string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
        var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
        await UserManager.SendEmailAsync(user.Id, "Reset Password", "Please reset your password by clicking <a href=\"" + callbackUrl + "\">here</a>");
        return RedirectToAction("ForgotPasswordConfirmation", "Account");

-------------------
uncomment Login.cshtml
inside
forget password link
-------
Add method
private async Task<string> SendEmailConfirmationTokenAsync(string userID, string subject)
{
   string code = await UserManager.GenerateEmailConfirmationTokenAsync(userID);
   var callbackUrl = Url.Action("ConfirmEmail", "Account",
      new { userId = userID, code = code }, protocol: Request.Url.Scheme);
   await UserManager.SendEmailAsync(userID, subject,
      "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

   return callbackUrl;
}

How to check which version of .NET Framework I have installed in Command prompt

Goto To run and enter this path and "%windir%\Microsoft.NET\FrameWork" and enter 

next, find out latest version like "v4.0.30319" and open this folder

copy location and run cmd in administrator mode

Cd C:\WINDOWS\Microsoft.NET\FrameWork\v4.0.30319 press enter 

next, execute this command ".\MSBuild.exe -version" and enter that's it njoy... 

The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Authentication Required.

https://www.google.com/settings/security/lesssecureapps

Allow less secure apps: OFF to On 

'Y' already has a dependency defined for 'Z' in Nuget


This has been solved by installing the latest NuGet package manager

https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca

Don't forget to re-launch or (close and open) Visual Studio.