public ActionResult <CompetitionDto> GetCompetitionById(string id) { UserModel user = UserHandler.GetUserDataByToken(Request.Headers["authorization"]); user = _repositoryUsers.GetUserByLogin(user.UserLogin); var competition = _repositoryCompetition.GetCompetitionById(id); if (competition != null) { if (user.UserType == UserType.person.ToString()) { return(Ok(_mapper.Map <CompetitionDto>(competition))); } if (competition.ownerId != user.Id && user.UserType == UserType.company.ToString()) { return(NotFound()); } return(Ok(_mapper.Map <CompetitionDto>(competition))); } return(NotFound()); }
public ActionResult AddCompetition(CompetitionModel competition) { UserModel owner = UserHandler.GetUserDataByToken(Request.Headers["authorization"]); owner = UserHandler.GetUserDataFromDbByLogin(owner.UserLogin); #region dbAccess string sqlProc = "exec dbo.AddCompetition"; Dictionary <string, object> queryParams = new Dictionary <string, object> { { "@description", competition.description }, { "@startTime", competition.startTime.ToString("yyyy-MM-dd HH:mm:ss.fff") }, { "@endTime", competition.endTime.ToString("yyyy-MM-dd HH:mm:ss.fff") }, { "@placeOf", competition.placeOf }, { "@ownerId", competition.ownerId } }; DbHandler dbHandler = new DbHandler(); dbHandler.GenerateProcedure(sqlProc, queryParams); dbHandler.GenerateQuerryValues(sqlProc, queryParams); sqlProc = dbHandler.AddParamsToQuery(sqlProc, queryParams); try { UserModel userModel = new UserModel(); DataSet dataSet = dbHandler.GetSetFromDb(sqlProc, queryParams); foreach (DataRow row in dataSet.Tables["tab"].Rows) { userModel.UserMail = row["UserMail"].ToString(); userModel.UserLogin = row["UserLogin"].ToString(); } return(Ok()); } catch (Exception e) { return(Conflict(e.Message)); } #endregion return(Ok()); }
public ActionResult <IEnumerable <RunDto> > GetRunByCompetitionId(string Id) { UserModel user = UserHandler.GetUserDataByToken(Request.Headers["authorization"], true); string sqlProc = "SELECT * FROM run (NOLOCK) WHERE competitionId = @competitionId"; Dictionary <string, object> queryParams = new Dictionary <string, object> { { "@competitionId", Id } }; DbHandler dbHandler = new DbHandler(); DataSet dataSet = dbHandler.GetSetFromDb(sqlProc, queryParams); int numberOfRuns = dataSet.Tables["tab"].Rows.Count; RunModel[] runModels = new RunModel[numberOfRuns]; int runIterator = 0; foreach (DataRow row in dataSet.Tables["tab"].Rows) { RunModel runModel = new RunModel(); runModel.competitionId = row["competitionId"].ToString(); runModel.Id = row["Id"].ToString(); runModel.ownerId = row["ownerId"].ToString(); runModel.description = row["description"].ToString(); runModel.target = row["target"].ToString(); runModel.noOfShots = int.Parse(row["noOfShots"].ToString()); runModels[runIterator] = runModel; runIterator++; } //RunModel[] runModels = GetRunsByCompIdAndUserID(Id, user.Id); return(Ok(runModels)); //user = _repositoryUsers.GetUserByLogin(user.UserLogin); //var run = _repositoryRun.GetRunByCompetitionId(id); //return Ok(_mapper.Map<IEnumerable<RunDto>>(run)); }