public HttpResponseMessage SubmitRating([FromBody] SubmitRatingFormModel ratingData) { try { if (ratingData == null || !ratingData.Level_Id.HasValue || !ratingData.Rating.HasValue) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(ratingData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } RatingDataDTO ratingResult = this.levelsDAL.SaveRating(ratingData.Level_Id.Value, ratingData.Rating.Value, mySession.AccounData.UserId, this.Request.GetRemoteIPAddress()); return(HttpResponseFactory.Response200Plain(StatusKeys.MESSAGE, ratingResult.ToString())); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage SendMessage([FromBody] SendMessageFormModel sendMessageData) { try { if (sendMessageData == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(sendMessageData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } this.dataAccess.SendMessage( mySession.AccounData.UserId, sendMessageData.To_Name, sendMessageData.Message, this.Request.GetRemoteIPAddress()); return(HttpResponseFactory.Response200Plain(StatusKeys.MESSAGE, StatusMessages.MESSAGE_SENT)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage ChangePassword([FromBody] ChangePassFormModel changePassData) { try { if (changePassData == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(changePassData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } this.dataAccess.ChangePassword(mySession.AccounData.UserId, changePassData.Old_Pass, changePassData.New_Pass); return(HttpResponseFactory.Response200Plain(StatusKeys.MESSAGE, StatusMessages.PASSWORD_CHANGED)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage DeleteMessage([FromBody] DeleteOrReportMessageFormModel reportMessageData) { try { if (reportMessageData == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(reportMessageData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } this.dataAccess.DeleteMessage(mySession.AccounData.UserId, reportMessageData.Message_Id); return(HttpResponseFactory.Response200Plain(StatusKeys.SUCCESS, StatusMessages.TRUE)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage GetCampaign(Int32 campaignId = 1, String token = "", String rand = "") { try { if (String.IsNullOrEmpty(ConfigurationManager.Instance.SearchUrl)) { campaignId = 8; } String campaignMaps; if (!WebConstants.FILE_CAMPAIGN.TryGetValue(campaignId, out campaignMaps)) { return(HttpResponseFactory.Response200Json(new ErrorJson { Error = ErrorMessages.ERR_NO_SUCH_LEVELS })); } return(HttpResponseFactory.Response200Plain(campaignMaps)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage PasswordCheck(Int64?courseID, String hash = "", String token = "", String rand = "") { try { if (!courseID.HasValue) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_LEVEL_ID)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } Boolean unlocked = this.levelsDAL.CheckLevelPassword(courseID.Value, hash); String serializedResult = JsonConvert.SerializeObject(new LevelPassCheckResultJson { Access = unlocked ? StatusMessages.ONE : StatusMessages.ZERO, LevelId = courseID.Value.ToString(), UserId = mySession.AccounData.UserId.ToString() }); String encodedResult = serializedResult.ToBase64(); return(HttpResponseFactory.Response200Plain(StatusKeys.RESULT, encodedResult)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage UploadLevel([FromBody] UploadLevelFormModel levelData) { try { if (levelData == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(levelData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } this.levelsDAL.SaveLevel(mySession.AccounData.UserId, mySession.AccounData.Username, levelData.ToDTO(), this.Request.GetRemoteIPAddress()); return(HttpResponseFactory.Response200Plain(StatusKeys.MESSAGE, StatusMessages.SAVE_SUCCESSFUL)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage DeleteLevel([FromBody] DeleteLevelFormModel levelData) { try { if (levelData == null || !levelData.Level_Id.HasValue) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(levelData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } this.levelsDAL.SoftDeleteLevel(mySession.AccounData.UserId, levelData.Level_Id.Value); return(HttpResponseFactory.Response200Plain(StatusKeys.SUCCESS, StatusMessages.TRUE)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage RemoveLevel([FromBody] DeleteLevelFormModel levelData) { try { if (levelData == null || !levelData.Level_Id.HasValue) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_LEVEL_ID)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(levelData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } if (mySession.AccounData.Group < UserGroup.MODERATOR) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_RIGHTS)); } this.levelsDAL.UnpublishLevel(levelData.Level_Id.Value); return(HttpResponseFactory.Response200Plain(StatusKeys.SUCCESS, StatusMessages.TRUE)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage DownloadLevel(Int64?id, Int32?version = -1) { try { LevelDataDTO level = this.levelsDAL.GetLevel(id ?? -1, version ?? -1); return(HttpResponseFactory.Response200Plain(level.ToString())); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage GetLevels(Byte?page, String token = "", String rand = "") { try { List <LevelRowDTO> levels = this.levelsDAL.GetNewestLevels(page); this.mainDAL.FillLevelListMetadata(levels); return(HttpResponseFactory.Response200Plain(levels.GetLevelListString())); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage Ban([FromBody] BanFormModel banData) { try { if (banData == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } else if (!banData.Duration.HasValue || banData.Duration < 1) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_INVALID_DURATION)); } SessionInstance issuerSession = SessionManager.Instance.GetSessionByToken(banData.Token); if (issuerSession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } Account bannedUser = this.dataAccess.Ban( issuerSession.AccounData.UserId, banData.Banned_Name, banData.Duration.Value, banData.Reason, banData.Record, banData.IsIPBan); // User has been banned, notify all registered game servers about this event. HubCtxProvider.Instance.ForceLogout(bannedUser.Id, (banData.IsIPBan) ? bannedUser.LoginIP : String.Empty); return(HttpResponseFactory.Response200Plain(StatusKeys.SUCCESS, StatusMessages.TRUE)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage ReportMessage([FromBody] DeleteOrReportMessageFormModel reportMessageData) { try { if (reportMessageData == null || !reportMessageData.Message_Id.HasValue) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_FORM_DATA)); } SessionInstance mySession = SessionManager.Instance.GetSessionByToken(reportMessageData.Token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_IMPLEMENTED)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage DeleteAllMessages(String token = "", String rand = "") { try { SessionInstance mySession = SessionManager.Instance.GetSessionByToken(token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } this.dataAccess.DeleteAllMessages(mySession.AccounData.UserId); return(HttpResponseFactory.Response200Plain(StatusKeys.SUCCESS, StatusMessages.TRUE)); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
public HttpResponseMessage GetLevels(String token = "", String rand = "") { try { SessionInstance mySession = SessionManager.Instance.GetSessionByToken(token); if (mySession == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NOT_LOGGED_IN)); } List <LevelRowDTO> levels = this.levelsDAL.GetUserLevels(mySession.AccounData.UserId); this.mainDAL.FillLevelListMetadata(levels); return(HttpResponseFactory.Response200Plain(levels.GetLevelListString())); } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } catch (Exception ex) { return(HttpResponseFactory.Response500Plain(ex.Message)); } }
/// <summary> /// Performs search according to specified search query. /// </summary> /// <param name="searchData">Search query.</param> /// <returns>List of found maps.</returns> private HttpResponseMessage GetSearchResults(SearchLevelsFormModel searchData) { try { if (searchData == null) { return(HttpResponseFactory.Response200Json(new ErrorJson { Error = ErrorMessages.ERR_NO_FORM_DATA })); } if (String.IsNullOrEmpty(ConfigurationManager.Instance.SearchUrl)) { // External level search web API is not specified, handle the request internally. List <LevelRowDTO> levels = null; if (searchData.Mode == SearchMode.User) { Account acc = this.mainDAL.GetAccountByUsername(searchData.Search_Str); if (acc == null) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ErrorMessages.ERR_NO_USER_WITH_SUCH_NAME)); } levels = this.levelsDAL.SearchLevelsByUserId(acc.Id, searchData.Order, searchData.Dir, searchData.Page); } else { levels = this.levelsDAL.SearchLevelsByTerm(searchData.Search_Str, searchData.Order, searchData.Dir, searchData.Page); } this.mainDAL.FillLevelListMetadata(levels); return(HttpResponseFactory.Response200Plain(levels.GetLevelListString())); } else { // Let the external API handle the level search. using (WebClient webClient = new WebClient()) { webClient.QueryString.Add("search_str", searchData.Search_Str); webClient.QueryString.Add("order", searchData.Order.ToString().ToLower()); webClient.QueryString.Add("mode", searchData.Mode.ToString().ToLower()); webClient.QueryString.Add("dir", searchData.Dir.ToString().ToLower()); webClient.QueryString.Add("page", (searchData.Page ?? 1).ToString()); webClient.QueryString.Add("rand", searchData.Rand); String result = webClient.DownloadString(ConfigurationManager.Instance.SearchUrl); return(HttpResponseFactory.Response200Plain(result)); } } } catch (PR2Exception ex) { return(HttpResponseFactory.Response200Plain(StatusKeys.ERROR, ex.Message)); } }
public HttpResponseMessage GetWelcomeMessage() { // TODO - Nicer welcome page. :-) return(HttpResponseFactory.Response200Plain("PR2PS.Web works!")); }
public HttpResponseMessage Logout(String token = "", String rand = "") { // TODO - Figure out how real PR2 identifies your session since token is always empty. // Probably using cookies or idk. For now we will rely on actual game server (TCP). return(HttpResponseFactory.Response200Plain(StatusKeys.SUCCESS, StatusMessages.TRUE)); }
public HttpResponseMessage CheckLogin(String token = "", String rand = "") { SessionInstance session = SessionManager.Instance.GetSessionByToken(token); return(HttpResponseFactory.Response200Plain(StatusKeys.USERNAME, session?.AccounData.Username)); }