예제 #1
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);
            }

        }
예제 #2
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.");
                }
            }
        }
예제 #3
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.");
                }

            }
        }