public HttpResponseMessage Create(CPlaylistInfo playlistInfo) { HttpResponseMessage response; try { CPlaylist newPlaylist = new CPlaylist(playlistInfo); Int32 created = _playlistContext.Create(newPlaylist); if (created < 1) { response = Request.CreateResponse(HttpStatusCode.BadRequest, "Couldn't create playlist"); } else { response = Request.CreateResponse(HttpStatusCode.OK, $"Created playlist {playlistInfo.Name}!"); } return(response); } catch (ContextException e) { HttpContext.Current.Response.StatusCode = (Int32)HttpStatusCode.BadRequest; throw new ContextException(e.Message, e); } }
public HttpResponseMessage Register(CUserInfo userInfo) { HttpResponseMessage response; if (userInfo == null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, "User has no data to register!"); return(response); } try { // check if such user already exists in context CUser checkCUser = _userContext.GetByName(userInfo.Name); if (checkCUser.Name != null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, "Such user already exists!"); return(response); } // check if such email is already taken by someone else CUser checkEmail = _userContext.GetByName(userInfo.Email); if (checkEmail.Email != null) { response = Request.CreateResponse(HttpStatusCode.BadRequest, "Such email is already taken!"); return(response); } // in CUser CTOR new Guid and passwordHash is generated from given password CUser newUser = new CUser(Guid.NewGuid(), userInfo.Name, userInfo.Password, userInfo.Email); // Insert new user in DB Int32 rowsInserted = _userContext.Create(newUser); // Create 'default' playlist for user files CPlaylist defaultPlaylist = new CPlaylist(Guid.NewGuid(), "default", newUser.Guid, false); _playlistContext.Create(defaultPlaylist); // Create new folder for user files DirectoryInfo directoryInfo = new DirectoryInfo(System.Web.Hosting.HostingEnvironment.MapPath($@"~/App_Data")); if (!Directory.Exists(directoryInfo.ToString() + "\\UserFiles")) { Directory.CreateDirectory(directoryInfo.ToString() + "\\UserFiles"); } // create directory for user files string fullPath = System.Web.Hosting.HostingEnvironment.MapPath($@"~/App_Data/UserFiles/{newUser.Name}"); Directory.CreateDirectory(fullPath); // create directory for thumbnails of the videos string thumbnailsPath = System.Web.Hosting.HostingEnvironment.MapPath($@"~/App_Data/UserFiles/{newUser.Name}/Thumbnails"); Directory.CreateDirectory(thumbnailsPath); userInfo = newUser.ToCUserInfo(); response = Request.CreateResponse(HttpStatusCode.OK, userInfo); return(response); } catch (Exception e) { //todo: log HttpContext.Current.Response.StatusCode = (Int32)HttpStatusCode.BadRequest; throw new ContextException(e.Message, e); } }