public HttpResponseMessage GetByUserId(Guid userId)
        {
            HttpResponseMessage response;

            List <CPlaylistInfo> playlistsInfo = new List <CPlaylistInfo>();

            try
            {
                List <CPlaylist> playlists = _playlistContext.GetByUserId(userId).ToList();
                foreach (CPlaylist playlist in playlists)
                {
                    CPlaylistInfo playlistInfo = new CPlaylistInfo();
                    playlistInfo = playlist.ToCPlaylistInfo();
                    playlistsInfo.Add(playlistInfo);
                }

                response = Request.CreateResponse(HttpStatusCode.OK, playlistsInfo);
                return(response);
            }
            catch (Exception e)// in case program crashes?
            {
                HttpContext.Current.Response.StatusCode = (Int32)HttpStatusCode.BadRequest;
                throw new ContextException(e.Message, e);
            }
        }
示例#2
0
        // todo: all requests, beside Register should use userId or userName? End client should keep his Id?
        // userName, userEmail are considered to be UNIQUE
        public HttpResponseMessage Unregister(Guid userId)
        {
            try
            {
                //create full path for the uploaded file
                CUser         user       = _userContext.GetById(userId);
                string        userFolder = HttpContext.Current.Server.MapPath($@"~/App_Data/UserFiles/{user.Name}/");
                DirectoryInfo dInfo      = new DirectoryInfo(userFolder);

                //delete PHYSICAL folder & files on user delete
                if (dInfo != null)
                {
                    Directory.Delete(userFolder, true);
                }

                // todo: delete all files on user delete - for now they are CASCADE DELETE on USER DELETE

                // delete all user playlists
                List <CPlaylist> userPlaylists = _playlistContext.GetByUserId(userId).ToList();
                foreach (CPlaylist playlist in userPlaylists)
                {
                    if (_playlistContext.DeleteById(playlist.Guid) <= 0)
                    {
                        Request.CreateResponse(HttpStatusCode.BadRequest, $"Couldn't delete playlist:{playlist.Name} for user:{userId}");
                    }
                }

                // delete user from DB
                if (_userContext.Delete(userId) <= 0)
                {
                    Request.CreateResponse(HttpStatusCode.BadRequest, $"Couldn't delete user:{userId}");
                }


                return(Request.CreateResponse(HttpStatusCode.OK, $"User:{userId} successfully deleted from Media Server!"));
            }
            catch (ContextException e)
            {
                HttpContext.Current.Response.StatusCode = (Int32)HttpStatusCode.BadRequest;
                throw new ContextException(e.Message, e);
            }
        }