Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        public async Task <bool> AddTechnologyAsync(UserTechnology technology)
        {
            try
            {
                _dataContext.UserTechnology.Add(technology);

                var added = await _dataContext.SaveChangesAsync();

                return(added > 0);
            }
            catch
            {
                return(false);
            }
        }
Пример #4
0
        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"));
        }
Пример #5
0
        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();
            }
        }