public async Task<HttpResponseMessage> Post(int userId)
        {
            int returnId = 0;
            try
            {                
                using (ResourcesDataContext dc = new ResourcesDataContext())
                {
                    Stream streamIn = await Request.Content.ReadAsStreamAsync();
                    StreamReader streamReader = new StreamReader(streamIn);
                    string jsonstring = streamReader.ReadToEnd();
                    ResourceBundle newBundle = JsonConvert.DeserializeObject<ResourceBundle>(jsonstring);
                    bhdResourceBundle rb = new bhdResourceBundle();
                    rb.name = newBundle.name;
                    rb.description = newBundle.description;
                    rb.userId = userId;
                    rb.isActive = true;
                    dc.bhdResourceBundles.InsertOnSubmit(rb);
                    dc.SubmitChanges();
                    returnId = rb.bundleId;

                    bhdResourceBundleFile rbf = new bhdResourceBundleFile();
                    rbf.resourceFileId = newBundle.fileId;
                    rbf.bundleId = returnId;
                    dc.bhdResourceBundleFiles.InsertOnSubmit(rbf);
                    dc.SubmitChanges();
                }
            }
            catch (Exception ex) 
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest, "Something Broke. " + ex.Message + ". 400-3");
            }
            return Request.CreateResponse(HttpStatusCode.OK, returnId);
        }
        public async Task<HttpResponseMessage> Put(int id)
        {
            try
            {
                Stream streamIn = await Request.Content.ReadAsStreamAsync();
                StreamReader streamReader = new StreamReader(streamIn);
                string jsonstring = streamReader.ReadToEnd();
                List<ResourceBundle> newBundles = JsonConvert.DeserializeObject<List<ResourceBundle>>(jsonstring);

                using (ResourcesDataContext dc = new ResourcesDataContext())
                {
                    bhdResourceBundle currentBundle = dc.bhdResourceBundles.Single((x) => x.bundleId == id);
                    List<bhdResourceBundleFile> bundleFiles = dc.bhdResourceBundleFiles.Where((x) => x.bundleId == id).ToList();

                    if ((newBundles.Count() == 0 && id != 0) || (currentBundle.isActive != newBundles.First().isActive))
                    {
                        currentBundle.isActive = false;
                        dc.SubmitChanges();
                        return Request.CreateResponse(HttpStatusCode.OK, string.Format("Bundle {0} successfully removed.", currentBundle.name));
                    }
                    else if (newBundles.Count() > 0 && id != 0)
                    {
                        foreach (ResourceBundle rb in newBundles)
                        {
                            if (!bundleFiles.Any((x) => x.resourceFileId == rb.fileId))
                            {
                                bhdResourceBundleFile newFile = new bhdResourceBundleFile();
                                newFile.resourceFileId = rb.fileId;
                                newFile.bundleId = id;
                                newFile.isFavourite = rb.isFavourite;
                                dc.bhdResourceBundleFiles.InsertOnSubmit(newFile);
                                dc.SubmitChanges();
                            }
                            else
                            {
                                bhdResourceBundleFile currentfile = bundleFiles.Single((x) => x.resourceFileId == rb.fileId);
                                currentfile.resourceFileId = rb.fileId;
                                currentfile.bundleId = rb.bundleId;
                                currentfile.isFavourite = rb.isFavourite;
                                dc.SubmitChanges();
                            }
                        }

                        bundleFiles = dc.bhdResourceBundleFiles.Where((x) => x.bundleId == id).ToList();
                        foreach (bhdResourceBundleFile bf in bundleFiles)
                        {
                            if (!newBundles.Any((x) => x.fileId == bf.resourceFileId))
                            {
                                dc.bhdResourceBundleFiles.DeleteOnSubmit(bf);
                                dc.SubmitChanges();
                            }
                        }
                    }
                    return Request.CreateResponse(HttpStatusCode.OK, string.Format("Bundle files sucessfully for {0}", currentBundle.name));
                }
            }
            catch (Exception ex)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest, "Something Broke. " + ex.Message + ". 400-3");
            }
            
        }