public bool TryAddToFavorite(string id) { var currentJob = this._context.JobAdds.Find(id); var currentUser = this._accessor.HttpContext.User.Identity.Name; var currentUserObject = this._context.Users.Include(x => x.FavoriteJobs).FirstOrDefault(x => x.UserName == currentUser); var isAppliedYet = currentUserObject.FavoriteJobs.FirstOrDefault(x => x.JobAddId == currentJob.Id); if (isAppliedYet != null) { return(false); } var usersJobAdd = new FavoriteUserJobAds() { JobAdd = currentJob, JobAddId = currentJob.Id, User = currentUserObject, UserId = currentUserObject.Id }; currentUserObject.FavoriteJobs.Add(usersJobAdd); currentJob.FavoriteUserJob.Add(usersJobAdd); this._context.SaveChanges(); return(true); }
public void TestDeleteFromFavorite_ShouldDeleteJobAdFromUserFavorite() { var userId = Guid.NewGuid().ToString(); var jobId = Guid.NewGuid().ToString(); var user = new User() { Id = userId, UserName = "******", Email = "*****@*****.**", }; var job = new JobAdd() { Id = jobId, JobTitle = "js", Description = "js", JobType = JobType.FullTime }; var userJobAd = new FavoriteUserJobAds() { UserId = userId, User = user, JobAdd = job, JobAddId = jobId }; this._context.Users.Add(user); this._context.SaveChanges(); this._context.JobAdds.Add(job); this._context.SaveChanges(); user.FavoriteJobs.Add(userJobAd); job.FavoriteUserJob.Add(userJobAd); this._context.SaveChanges(); var actual = this._context.FavoriteUserJobAds.FirstOrDefault(); Assert.Equal(actual.JobAddId, userJobAd.JobAddId); Assert.Equal(actual.UserId, userJobAd.UserId); this._userService.DeleteFromFavorite(jobId); var expectedNull = this._context.FavoriteUserJobAds.FirstOrDefault(); Assert.Null(expectedNull); }