public async Task <IActionResult> CreateUser([FromBody] RecipeUserView userView) { if (ModelState.IsValid) { RecipeUser user = await _recipeUser.FindByEmailAsync(userView.Email); if (user == null) { user = new RecipeUser { Email = userView.Email, UserName = userView.UserName, FirstName = userView.FirstName, LastName = userView.LastName }; var result = await _recipeUser.CreateAsync(user, userView.Password); if (result == IdentityResult.Success) { return(Ok()); } } } return(BadRequest()); }
//GET: Recipe/Details/5 public IActionResult Details(int?id) { if (id == null) { return(NotFound()); } RecipeUserView recipe = (RecipeUserView)(from r in _context.Recipes join u in _context.Users on r.UserId equals u.Id where r.Id == id select new RecipeUserView { RecipeId = r.Id, RecipeName = r.Name, RecipeImages = _context.RecipeImages.Where(f => f.Id == r.Id).ToList(), RecipeDescription = r.Description, RecipeTimeToComplete = r.TimeToComplete, Image = u.Image, Name = u.Name, Id = u.Id, Steps = _context.Steps.Where(f => f.RecipeId == r.Id).ToList(), Ingredients = _context.Ingredients.Where(f => f.RecipeId == r.Id).ToList() }).FirstOrDefault(); if (recipe == null) { return(NotFound()); } return(View(recipe)); }
public async Task <IActionResult> Login([FromBody] RecipeUserView recipe) { if (ModelState.IsValid) { var result = await _signInMgr.PasswordSignInAsync(recipe.UserName, recipe.Password, false, false); if (result.Succeeded) { return(Ok()); } } return(Unauthorized()); }
public async Task <IActionResult> Create(RecipeUserView recipeView) { string fileName = string.Empty; string path = string.Empty; Recipe recipe = new Recipe(); recipe.Description = recipeView.RecipeDescription; recipe.Name = recipeView.RecipeName; recipe.TimeToComplete = recipeView.RecipeTimeToComplete; recipe.UserId = Convert.ToInt32(User.FindFirst("Id").Value); //recipe.Image = fileName; if (ModelState.IsValid) { _context.Add(recipe); await _context.SaveChangesAsync(); var files = HttpContext.Request.Form.Files; if (files.Count > 0) { for (int i = 0; i < files.Count; i++) { var extension = Path.GetExtension(files[i].FileName); fileName = Guid.NewGuid().ToString() + extension; path = Path.Combine(_environment.WebRootPath, "RecipeImages") + "/" + fileName; using (FileStream fs = System.IO.File.Create(path)) { files[i].CopyTo(fs); fs.Flush(); } RecipeImages recipeImages = new RecipeImages(); recipeImages.Image = fileName; recipeImages.RecipeId = recipe.Id; _context.Add(recipeImages); await _context.SaveChangesAsync(); } } return(RedirectToAction("Recipe", "Index", new { Page = 1 })); } return(View(recipe)); }
public async Task <IActionResult> CreateToken([FromBody] RecipeUserView userView) { if (ModelState.IsValid) { var user = await _recipeUser.FindByNameAsync(userView.UserName); if (user != null) { var result = await _signIn.CheckPasswordSignInAsync(user, userView.Password, false); if (result.Succeeded) { var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, user.Email), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()), new Claim(JwtRegisteredClaimNames.UniqueName, user.UserName) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Tokens:Key"])); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( _config["Tokens:Issuer"], _config["Tokens:Audience"], claims, expires: DateTime.UtcNow.AddMinutes(60), signingCredentials: creds ); var results = new { token = new JwtSecurityTokenHandler().WriteToken(token), expiration = token.ValidTo }; return(Created("", results)); } } } return(BadRequest()); }