示例#1
0
        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);
        }
示例#2
0
        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);
        }