示例#1
0
文件: TagDAO.cs 项目: zplata/RoomMe
 public Tag GetTagByID(int tagID)
 {
     using (var db = new RoomMeWebserviceContext())
     {
         return db.Tags.Find(tagID);
     }
 }
示例#2
0
 public Preferences GetPreferencesByID(int prefID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         return db.Preferences.Find(prefID);
     }
 }
示例#3
0
文件: UserDAO.cs 项目: zplata/RoomMe
 public User GetUserbyID(int userID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         return db.Users.Find(userID);
     }
 }
示例#4
0
        // POST: api/Account
        public async Task<HttpResponseMessage> Register([FromUri] string email, [FromUri] string name, [FromUri] int age, [FromUri] int gender, [FromUri] string phone, [FromUri] string authToken)
        {
            User newUser = new User()
            {
                Email = email,
                Name = name,
                Age = age,
                Bio = "",
                Gender = (Gender) gender,
                PhoneNumber = phone,
                Status = Status.NeedsHousingAndRoommate,
                AuthToken = authToken
            };

            var context = new RoomMeWebserviceContext();

            try
            {
                context.Users.Add(newUser);
                await context.SaveChangesAsync();
                return Request.CreateResponse(HttpStatusCode.OK, newUser.UserID);
            }
            catch(Exception e)
            {
                return Request.CreateResponse(HttpStatusCode.InternalServerError, false);
            }

        }
示例#5
0
文件: Program.cs 项目: zplata/RoomMe
        static void SeedData()
        {
            var db = new RoomMeWebserviceContext();
            UserDAO uDAO = new UserDAO(db);

            var result =  uDAO.GetUserbyID(1);

        }
示例#6
0
 public Location GetLocationByID(int locationID)
 {
     using (var db = new RoomMeWebserviceContext())
     {
         var location = db.Locations.Find(locationID);
         return location;
     }
 }
示例#7
0
 public Housing GetHousingByID(int housingID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var housing = db.Housings.Find(housingID);
         return housing;
     }
 }
示例#8
0
        public async Task<HttpResponseMessage> Compatible([FromUri] int userID)
        {
            var context = new RoomMeWebserviceContext();

            User user = await context.Users.FindAsync(userID);

            if(user == null)
            {
                return Request.CreateResponse(HttpStatusCode.Forbidden, false);
            }

            Status correspondingStatus = Status.NeedsRoommateOnly;

            switch(user.Status)
            {
                case Status.NeedsRoommateOnly:
                    correspondingStatus = Status.NeedsRoommateOnly;
                    break;
                case Status.HasVacancy:
                    correspondingStatus = Status.NeedsHousingAndRoommate;
                    break;
                case Status.NeedsHousingAndRoommate:
                    correspondingStatus = Status.HasVacancy;
                    break;
                case Status.Inactive:
                    correspondingStatus = Status.Inactive;
                    break;
            }

            List<User> logicalUsers = new List<User>();

            if(correspondingStatus != Status.Inactive)
            {
                logicalUsers = context.Users.Where(x => x.Status == correspondingStatus).ToList();
            }
            else
            {
                logicalUsers = context.Users.Where(x => x.Status != Status.Inactive).ToList();
            }

            logicalUsers.Remove(user);

            MatchService ms = new MatchService();
            List<int> matchScores = new List<int>();
            List<APIUser> logicalMinUsers = new List<APIUser>();

            foreach(var u in logicalUsers)
            {
                logicalMinUsers.Add(u.ToAPIModel());
                matchScores.Add(ms.GenerateMatchScoreByStatus(user, u));
            }

            var response = new List<object> { logicalMinUsers, matchScores};

            return Request.CreateResponse(HttpStatusCode.OK, response);
        }
示例#9
0
 public List<Location> GetLocationsByPreferenceID(int preferenceID)
 {
     using (var db = new RoomMeWebserviceContext())
     {
         var pref = db.Preferences.Find(preferenceID);
         if(pref != null)
         {
             return pref.Locations;
         }
         return null;
     }
 }
示例#10
0
 public List<Housing> GetHousingsByPreferenceID(int preferenceID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var pref = db.Preferences.Find(preferenceID);
         if(pref != null)
         {
             return pref.Housings.ToList();
         }
         return null;
     }
 }
示例#11
0
        // GET: api/Match/5
        public async Task<HttpResponseMessage> Match([FromUri] int idA, [FromUri] int idB)
        {
            var context = new RoomMeWebserviceContext();

            MatchService ms = new MatchService();

            User a = context.Users.Find(idA);
            User b = context.Users.Find(idB);

            int score = ms.GenerateMatchScoreOfPreferences(a, b);
            return Request.CreateResponse(HttpStatusCode.OK, score);
        }
示例#12
0
文件: UserDAO.cs 项目: zplata/RoomMe
 public List<User> GetUsersByTagID(int tagID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var tag = db.Tags.Find(tagID);
         if(tag != null)
         {
             return tag.Users;
         }
         return null;
     }
 }
示例#13
0
文件: UserDAO.cs 项目: zplata/RoomMe
 public List<User> GetUsersByHousingID(int housingID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var housing = db.Housings.Find(housingID);
         if(housing != null)
         {
             return housing.Residents;
         }
         return null;
     }
 }
示例#14
0
 public Preferences GetPreferencesByUserID(int userID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var user = db.Users.Find(userID);
         if(user != null)
         {
             return user.Preferences;
         }
         return null;
     }
 }
示例#15
0
 public Location GetLocationByHousingID(int housingID)
 {
     using (var db = new RoomMeWebserviceContext())
     {
         var housing = db.Housings.Find(housingID);
         if(housing != null)
         {
             return housing.Location;
         }
         return null;
     }
 }
示例#16
0
文件: UserDAO.cs 项目: zplata/RoomMe
 public List<User> GetUsersByCareerID(int careerID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var career = db.Careers.Find(careerID);
         if(career != null)
         {
             return career.Users;
         }
         return null;
     }
 }
示例#17
0
文件: TagDAO.cs 项目: zplata/RoomMe
 public List<Tag> GetTagsByUserID(int userID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var user = db.Users.Find(userID);
         if(user != null)
         {
             return user.Tags;
         }
         return null;
     }
 }
示例#18
0
 public Housing GetHousingByUserID(int userID)
 {
     using(var db = new RoomMeWebserviceContext())
     {
         var user = db.Users.Find(userID);
         if(user != null)
         {
             db.Users.Attach(user);
             var result = user.Housing;
         }
         return null;
     }
 }
示例#19
0
        public async Task<HttpResponseMessage> GetByCompany([FromUri] string company)
        {
            var context = new RoomMeWebserviceContext();

            var results = context.Careers.Where(x => x.Company == company).ToList();

            var apiresults = new List<APICareer>();

            foreach (var car in results)
            {
                apiresults.Add(car.ToAPIModel());
            }

            return Request.CreateResponse(HttpStatusCode.OK, apiresults);
        }
示例#20
0
        public async Task<HttpResponseMessage> GetByAddress([FromUri] string address)
        {
            var context = new RoomMeWebserviceContext();

            var results = context.Housings.Where(x => x.Address == address).ToList();

            var apiresults = new List<APIHousing>();

            foreach (var car in results)
            {
                apiresults.Add(car.ToAPIModel());
            }

            return Request.CreateResponse(HttpStatusCode.OK, apiresults);
        }
示例#21
0
        public async Task<HttpResponseMessage> GetByUser([FromUri] string userID)
        {
            var context = new RoomMeWebserviceContext();

            var user = context.Users.Find(userID);

            if (user == null)
            {
                return Request.CreateResponse(HttpStatusCode.InternalServerError, false);
            }

            var results = user.Preferences;

            return Request.CreateResponse(HttpStatusCode.OK, results.ToAPIModel());
        }
示例#22
0
        public async Task<HttpResponseMessage> GetByUser([FromUri] string userID)
        {
            var context = new RoomMeWebserviceContext();

            var user = context.Users.Find(userID);

            if (user == null)
            {
                return Request.CreateResponse(HttpStatusCode.InternalServerError, false);
            }

            var results = context.Housings.Where(x => x.Residents.Contains(user)).ToList();

            var apiresults = new List<APIHousing>();

            foreach (var car in results)
            {
                apiresults.Add(car.ToAPIModel());
            }

            return Request.CreateResponse(HttpStatusCode.OK, apiresults);
        }
示例#23
0
 public HousingDAO(RoomMeWebserviceContext context)
 {
     _context = context;
 }
示例#24
0
        public async Task<HttpResponseMessage> GetByPhone([FromUri] string phone)
        {
            var context = new RoomMeWebserviceContext();

            var results = context.Users.Where(x => x.PhoneNumber == phone).ToList();

            var apiresults = new List<APIUser>();

            foreach (var car in results)
            {
                apiresults.Add(car.ToAPIModel());
            }

            return Request.CreateResponse(HttpStatusCode.OK, apiresults);
        }
示例#25
0
        public async Task<HttpResponseMessage> AssociateHousing(int housingID, int preferencesID)
        {
            var context = new RoomMeWebserviceContext();
            var housing = context.Housings.Find(housingID);
            var preferences = context.Preferences.Find(preferencesID);

            if ((housing == null) || (preferences == null))
            {
                return Request.CreateResponse(HttpStatusCode.InternalServerError, "Could not find preference or tag");
            }
            else
            {
                context.Preferences.Attach(preferences);
                context.Housings.Attach(housing);

                preferences.Housings.Add(housing);

                context.Entry(preferences).State = EntityState.Modified;
                context.Entry(housing).State = EntityState.Modified;

                try
                {
                    await context.SaveChangesAsync();
                    return Request.CreateResponse(HttpStatusCode.OK, true);
                }
                catch (Exception e)
                {
                    return Request.CreateResponse(HttpStatusCode.InternalServerError, "Failed to save.");
                }
            }
        }
示例#26
0
文件: UserDAO.cs 项目: zplata/RoomMe
 public UserDAO(RoomMeWebserviceContext context)
 {
     _context = context;
 }
示例#27
0
        public async Task<HttpResponseMessage> AssociateTag([FromUri] int tagID, [FromUri] int userID)
        {
            var context = new RoomMeWebserviceContext();
            var tag = context.Tags.Find(tagID);
            var user = context.Users.Find(userID);

            if ((tag == null) || (user == null))
            {
                return Request.CreateResponse(HttpStatusCode.InternalServerError, "Could not find user or tag");
            }
            else
            {
                context.Users.Attach(user);
                context.Tags.Attach(tag);

                user.Tags.Add(tag);

                context.Entry(user).State = EntityState.Modified;
                context.Entry(tag).State = EntityState.Modified;

                try
                {
                    await context.SaveChangesAsync();
                    return Request.CreateResponse(HttpStatusCode.OK, true);
                }
                catch (Exception e)
                {
                    return Request.CreateResponse(HttpStatusCode.InternalServerError, "Failed to save.");
                }

            }
        }
示例#28
0
 public PreferencesDAO(RoomMeWebserviceContext context)
 {
     _context = context;
 }
示例#29
0
 public LocationDAO(RoomMeWebserviceContext context)
 {
     _context = context;
 }