public async Task <IActionResult> Add([FromRoute] Guid userId, [FromBody] UserTechnologyRequest req) { if (HttpContext.GetUserId() != userId.ToString()) { return(Forbid()); } var TechnologyID = req.technologyId; var Technology = new UserTechnology { Id = Guid.NewGuid().ToString(), UserID = userId.ToString(), TechnologyID = TechnologyID.ToString() }; var created = await _technologyScoreService.AddTechnologyAsync(Technology); if (!created) { return(BadRequest(new { error = "Unable to add technology" })); } var locationUri = HttpContext.GetLocationURI(Routes.User.Technology.Get) .Replace("{userId}", userId.ToString()) .Replace("{technologyId}", TechnologyID.ToString()); var res = _mapper.Map <UserTechnologyScoreResponse>(await _technologyScoreService.GetTechnologyByIdAsync(userId, TechnologyID)); return(Created(locationUri, res)); }
public async Task AddUserTechnologyLinks(string[] knownTechnologies, User user, CancellationToken cancellationToken) { foreach (string knownTechnology in knownTechnologies) { var technology = await _context.Technologies.Where(t => t.Name == knownTechnology).ToListAsync(cancellationToken); var userTechnologyLink = new UserTechnology(); userTechnologyLink.User = user; userTechnologyLink.Technology = technology[0]; _context.UserTechnologies.Add(userTechnologyLink); } await _context.SaveChangesAsync(cancellationToken); }
public async Task <bool> AddTechnologyAsync(UserTechnology technology) { try { _dataContext.UserTechnology.Add(technology); var added = await _dataContext.SaveChangesAsync(); return(added > 0); } catch { return(false); } }
public ActionResult Index(User user, HttpPostedFileBase AvatarFile, List <int> myTechnologies) { try { User old = db.Users.Find(user.ID); bool changedImage = false; if (AvatarFile != null) { old.Avatar = SaveFile(AvatarFile); changedImage = true; } old.Name = user.Name; old.Surname = user.Surname; old.City = user.City; old.BirthDate = user.BirthDate; if (myTechnologies != null) { db.UserTechnologies.RemoveRange(old.UserTechnologies); old.UserTechnologies.Clear(); for (int i = 0; i < myTechnologies.Count; i++) { UserTechnology userTechnology = new UserTechnology(); userTechnology.ID_User = old.ID; userTechnology.ID_Technology = myTechnologies[i]; db.UserTechnologies.Add(userTechnology); } } db.Entry(old).State = EntityState.Modified; db.SaveChanges(); if (changedImage) { Session["avatar"] = old.Avatar; } } catch (Exception ex) { Console.WriteLine(ex.Message); ViewBag.Error = "Něco se nepovedlo. Opakujte prosím akci."; } return(RedirectToAction("Index")); }
public async Task RemoveUserTechnologyLinks(string[] removedTechnologiesNames, User user, CancellationToken cancellationToken) { if (removedTechnologiesNames.Length != 0) { List <UserTechnology> userTechnologyLinks = _context.UserTechnologies.ToList(); foreach (string removedTechnologyName in removedTechnologiesNames) { Technology removedTechnology = await GetTechnologyByName(removedTechnologyName, cancellationToken); UserTechnology userTechnologyLink = userTechnologyLinks.Find(link => link.TechnologyId == removedTechnology.Id && link.UserId == user.Id); _context.UserTechnologies.Remove(userTechnologyLink); } _context.SaveChanges(); } }