public List <MatchedCandidate> GetMatchedCandidate(int sourceId, int count)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var actionsTable           = dbContext.ExpressionLogs;
            var usersTable             = dbContext.JinderUsers;

            HttpResponseMessage message = new HttpResponseMessage();


            var targetjinderuser = from user in actionsTable
                                   where user.SourceUserId == sourceId && user.IsInterested == true
                                   select user.TargetUserId;
            var targetsResult = targetjinderuser.ToList();


            var matchedCandidate = (from user in actionsTable
                                    where targetsResult.Contains(user.SourceUserId) &&
                                    user.TargetUserId == sourceId && user.IsInterested == true
                                    select user).Take <ExpressionLog>(count);

            List <MatchedCandidate> candidates = new List <MatchedCandidate>();

            foreach (ExpressionLog log in matchedCandidate)
            {
                MatchedCandidate c = new MatchedCandidate();
                c.TargetUserId = log.TargetUserId;
                candidates.Add(c);
            }
            return(candidates);
        }
        public List <JinderPoster> GetPosters(String Username, [FromUri] int count)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;

            JinderUser jinderuser = (from user in usersTable
                                     where user.username == Username
                                     select user).FirstOrDefault <JinderUser>();

            if (jinderuser.UserType != "seeker")
            {
                throw new Exception(" JinderUser with username: "******" is not a seeker");
            }

            var viewedJobPost = from log in dbContext.ExpressionLogs
                                where log.SourceUserId == jinderuser.JinderUserId
                                select log.TargetUserId;

            var notViewedJobs = (from jobpost in dbContext.JobPosts
                                 where !viewedJobPost.Contains(jobpost.JobPostId)
                                 select jobpost).Take <JobPost>(count);

            List <JinderPoster> jobPosts = new List <JinderPoster>();

            foreach (JobPost post in notViewedJobs)
            {
                JinderPoster jp = new JinderPoster();
                jp.JobDescription = post.JobDescription;
                jobPosts.Add(jp);
            }
            return(jobPosts);
        }
        public List <JinderSeeker> GetSeekers(String Username, [FromUri] int count)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;

            JinderUser jinderuser = (from user in usersTable
                                     where user.username == Username
                                     select user).FirstOrDefault <JinderUser>();

            if (jinderuser.UserType != "poster")
            {
                throw new Exception(" JinderUser with username: "******" is not a poster");
            }

            var viewedSeekers = from log in dbContext.ExpressionLogs
                                where log.SourceUserId == jinderuser.JinderUserId
                                select log.TargetUserId;

            //var viewedIds = viewedSeekers.ToList();

            var notViewedSeekers = (from seeker in usersTable
                                    where seeker.UserType == "seeker" && !viewedSeekers.Contains(seeker.JinderUserId)
                                    select seeker).Take <JinderUser>(count);

            List <JinderSeeker> jinderSeekers = new List <JinderSeeker>();

            foreach (JinderUser seeker in notViewedSeekers)
            {
                JinderSeeker js = new JinderSeeker();
                js.username = seeker.username;
                jinderSeekers.Add(js);
            }
            return(jinderSeekers);
        }
        public HttpResponseMessage PostNewPosterUser(PosterUserModel jinderPosterUser)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;
            var PosterTable            = dbContext.JobPosts;

            HttpResponseMessage message = new HttpResponseMessage();


            JinderUser jinderuser = (from user in usersTable
                                     where user.username == jinderPosterUser.username
                                     select user).FirstOrDefault <JinderUser>();

            if (jinderuser != null)
            {
                message.StatusCode = HttpStatusCode.Conflict;
                return(message);
            }
            else
            {
                JinderUser user = new JinderUser();

                user.FullName    = jinderPosterUser.FullName;
                user.DateOfBirth = jinderPosterUser.DateOfBirth;
                user.Gender      = jinderPosterUser.Gender;
                user.Address     = jinderPosterUser.Address;
                user.UserType    = jinderPosterUser.UserType;
                user.username    = jinderPosterUser.username;
                user.password    = jinderPosterUser.password;


                usersTable.Add(user);
                dbContext.SaveChanges();

                JobPost posterUser = new JobPost();

                posterUser.PosterId       = user.JinderUserId;
                posterUser.Location       = jinderPosterUser.Location;
                posterUser.JobDescription = jinderPosterUser.JobDescription;
                posterUser.RequiredSkills = jinderPosterUser.RequiredSkills;
                posterUser.SalaryRange    = jinderPosterUser.SalaryRange;
                posterUser.OperationHours = jinderPosterUser.OperationHours;

                PosterTable.Add(posterUser);
                dbContext.SaveChanges();

                message.StatusCode = HttpStatusCode.OK;

                return(message);
            }
        }
        public HttpResponseMessage PostNewSeekerUser(SeekerUserModel jinderSeekerUser)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;
            var SeekersTable           = dbContext.SeekerProfiles;

            HttpResponseMessage message = new HttpResponseMessage();

            JinderUser jinderuser = (from user in usersTable
                                     where user.username == jinderSeekerUser.username
                                     select user).FirstOrDefault <JinderUser>();

            if (jinderuser != null)
            {
                message.StatusCode = HttpStatusCode.Conflict;
                return(message);
            }
            else
            {
                JinderUser user = new JinderUser();

                user.FullName    = jinderSeekerUser.FullName;
                user.DateOfBirth = jinderSeekerUser.DateOfBirth;
                user.Gender      = jinderSeekerUser.Gender;
                user.Address     = jinderSeekerUser.Address;
                user.UserType    = jinderSeekerUser.UserType;
                user.username    = jinderSeekerUser.username;
                user.password    = jinderSeekerUser.password;


                usersTable.Add(user);
                dbContext.SaveChanges();

                SeekerProfile seekerUser = new SeekerProfile();

                seekerUser.JinderUserId  = user.JinderUserId;
                seekerUser.Certification = jinderSeekerUser.Certification;
                seekerUser.Education     = jinderSeekerUser.Education;
                seekerUser.Experience    = jinderSeekerUser.Experience;
                seekerUser.Skills        = jinderSeekerUser.Skills;

                SeekersTable.Add(seekerUser);
                dbContext.SaveChanges();


                message.StatusCode = HttpStatusCode.OK;

                return(message);
            }
        }
Example #6
0
        public HttpResponseMessage PostNewPosterUser(PosterUserModel jinderPosterUser)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;
            var PostersTable           = dbContext.JobPosts;

            HttpResponseMessage message = new HttpResponseMessage();

            //if(usersTable.Find(infoUser.JinderUserId) != null)
            //{
            //    message.StatusCode = HttpStatusCode.Conflict;
            //    message.Content = new StringContent("Username: "******" is already registered");
            //    return message;
            //}

            JinderUser user = new JinderUser();

            user.FullName    = jinderPosterUser.FullName;
            user.DateOfBirth = jinderPosterUser.DateOfBirth;
            user.Gender      = jinderPosterUser.Gender;
            user.Address     = jinderPosterUser.Address;
            user.UserType    = jinderPosterUser.UserType;
            user.username    = jinderPosterUser.username;
            user.password    = jinderPosterUser.password;



            usersTable.Add(user);
            dbContext.SaveChanges();

            JobPost posterUser = new JobPost();

            posterUser.JobPostId      = user.JinderUserId;
            posterUser.JobDescription = jinderPosterUser.JobDescription;
            posterUser.RequiredSkills = jinderPosterUser.RequiredSkills;
            posterUser.SalaryRange    = jinderPosterUser.SalaryRange;
            posterUser.OperationHours = jinderPosterUser.OperationHours;
            posterUser.Location       = jinderPosterUser.Location;

            PostersTable.Add(posterUser);
            dbContext.SaveChanges();

            //message.Content = new StringContent("name " + name);
            //message.Content = new StringContent("user saved");


            return(message);
        }
Example #7
0
        public HttpResponseMessage PostNewSeekerUser(SeekerUserModel jinderSeekerUser)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;
            var SeekersTable           = dbContext.SeekerProfiles;

            HttpResponseMessage message = new HttpResponseMessage();

            //if(usersTable.Find(infoUser.JinderUserId) != null)
            //{
            //    message.StatusCode = HttpStatusCode.Conflict;
            //    message.Content = new StringContent("Username: "******" is already registered");
            //    return message;
            //}

            JinderUser user = new JinderUser();

            user.FullName    = jinderSeekerUser.FullName;
            user.DateOfBirth = jinderSeekerUser.DateOfBirth;
            user.Gender      = jinderSeekerUser.Gender;
            user.Address     = jinderSeekerUser.Address;
            user.UserType    = jinderSeekerUser.UserType;
            user.username    = jinderSeekerUser.username;
            user.password    = jinderSeekerUser.password;



            usersTable.Add(user);
            dbContext.SaveChanges();

            SeekerProfile seekerUser = new SeekerProfile();

            seekerUser.JinderUserId  = user.JinderUserId;
            seekerUser.Certification = jinderSeekerUser.Certification;
            seekerUser.Education     = jinderSeekerUser.Education;
            seekerUser.Experience    = jinderSeekerUser.Experience;
            seekerUser.Skills        = jinderSeekerUser.Skills;

            SeekersTable.Add(seekerUser);
            dbContext.SaveChanges();

            //message.Content = new StringContent("name " + name);
            //message.Content = new StringContent("user saved");


            return(message);
        }
        public HttpResponseMessage PostSwipeAction(SwipeActionDTO swipeAction)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var actionsTable           = dbContext.ExpressionLogs;
            var usersTable             = dbContext.JinderUsers;

            HttpResponseMessage message = new HttpResponseMessage();


            JinderUser sourcejinderuser = (from user in usersTable
                                           where user.JinderUserId == swipeAction.SourceUserId
                                           select user).FirstOrDefault <JinderUser>();

            JinderUser targetjinderuser = (from user in usersTable
                                           where user.JinderUserId == swipeAction.TargetUserId
                                           select user).FirstOrDefault <JinderUser>();

            if (swipeAction.SourceUserId == null || swipeAction.TargetUserId == null || swipeAction.IsInterested == null)
            {
                message.StatusCode = HttpStatusCode.BadRequest;
                return(message);
            }
            else
            if (sourcejinderuser == null || targetjinderuser == null)
            {
                message.StatusCode = HttpStatusCode.NotFound;
                return(message);
            }
            else
            {
                ExpressionLog action = new ExpressionLog();

                action.IsInterested = swipeAction.IsInterested;
                action.SourceUserId = swipeAction.SourceUserId;
                action.TargetUserId = swipeAction.TargetUserId;


                actionsTable.Add(action);
                dbContext.SaveChanges();

                message.StatusCode = HttpStatusCode.OK;

                return(message);
            }
        }
        public HttpResponseMessage Post([FromBody] SignupInfo info)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;

            JinderUser jinderUser = (from user in usersTable
                                     where user.Username == info.Username
                                     select user).FirstOrDefault <JinderUser>();

            HttpResponseMessage message = new HttpResponseMessage();

            if (jinderUser != null)
            {
                message.StatusCode = HttpStatusCode.Conflict;
                message.Content    = new StringContent("Username: "******" is already registered.");

                return(message);
            }

            JinderUser newUser = new JinderUser();

            newUser.Username    = info.Username;
            newUser.Password    = info.Password;
            newUser.FullName    = info.Fullname;
            newUser.DateOfBirth = info.DateOfBirth;
            newUser.Gender      = info.Gender;
            newUser.Address     = info.Address;
            newUser.UserType    = info.UserType;

            usersTable.Add(newUser);
            dbContext.SaveChanges();


            message.StatusCode = HttpStatusCode.Created;
            return(message);
        }
Example #10
0
        public HttpResponseMessage PostLoginInfo(UserLogin userLogin)
        {
            JinderDBEntities dbContext = new JinderDBEntities();
            var usersTable             = dbContext.JinderUsers;

            HttpResponseMessage message = new HttpResponseMessage();


            JinderUser jinderuser = (from user in usersTable
                                     where user.username == userLogin.username && user.password == userLogin.password
                                     select user).FirstOrDefault <JinderUser>();

            if (jinderuser == null)
            {
                message.StatusCode = HttpStatusCode.NotFound;
                return(message);
            }
            else
            {
                message.StatusCode = HttpStatusCode.OK;

                return(message);
            }
        }