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."); } } }
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."); } } }