public AlbumFullModel Get(int id, string sessionKey) { var responseMsg = this.PerformOperationAndHandleExceptions<AlbumFullModel>(() => { using (var context = new PictureTogetherContext()) { UsersController.ValidateSessionKey(sessionKey); var album = context.Albums.Find(id); var albumFullModel = new AlbumFullModel { Id = album.Id, Name = album.Name, Latitude = album.Latitude, Longitude = album.Longitude, Pictures = album.Pictures.Select(p => new PictureModel { Id = p.Id, Url = p.Url }).ToList() }; return albumFullModel; } }); return responseMsg; }
public HttpResponseMessage PostAlbum(string sessionKey, AlbumFullModel albumFullModel) { var responseMsg = this.PerformOperationAndHandleExceptions<HttpResponseMessage>(() => { using (var context = new PictureTogetherContext()) { UsersController.ValidateSessionKey(sessionKey); var currentUser = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); if (currentUser == null) { throw new ArgumentException("Expired or invalid sessionKey. Please try to relog with your account."); } var newAlbum = new Album { Name = albumFullModel.Name, Latitude = albumFullModel.Latitude, Longitude = albumFullModel.Longitude, Users = { currentUser } }; currentUser.Albums.Add(newAlbum); context.Albums.Add(newAlbum); context.SaveChanges(); var albumModel = new AlbumModel { Id = newAlbum.Id, Name = newAlbum.Name }; var response = this.Request.CreateResponse(HttpStatusCode.Created, albumModel); return response; } }); return responseMsg; }