public HttpResponseMessage AddPlayer(PlayerModelDto request) { try { _dataAccess.AddPlayer(request, ((UserModel)ActionContext.Request.Properties["user"]).Id); return(Request.CreateResponse(HttpStatusCode.OK, "Player successfully added")); } catch (ClassNotFoundException classNotFoundException) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ErrorResponse(ClassNotFoundException.ERROR_CODE, classNotFoundException.Message))); } catch (FactionNotFoundException factionNotFoundException) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ErrorResponse(FactionNotFoundException.ERROR_CODE, factionNotFoundException.Message))); } catch (RaceNotFoundException raceNotFoundException) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ErrorResponse(RaceNotFoundException.ERROR_CODE, raceNotFoundException.Message))); } catch (PlayerAlreadyExistsException playerAlreadyExistsException) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ErrorResponse(PlayerAlreadyExistsException.ERROR_CODE, playerAlreadyExistsException.Message))); } catch (Exception e) { SmartApartmentLogger.LogAsync(ELogType.Error, e.Message); return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ErrorResponse(500, "Internal server error. Please try again later"))); } }
public void AddPlayer(PlayerModelDto dto, int userId) { if (_entities.classes.FirstOrDefault(x => x.pk_id == dto.ClassId) == null) { throw ClassNotFoundException.FromId(dto.ClassId); } if (_entities.factions.FirstOrDefault(x => x.pk_id == dto.FactionId) == null) { throw FactionNotFoundException.FromId(dto.FactionId); } if (_entities.races.FirstOrDefault(x => x.pk_id == dto.RaceId) == null) { throw RaceNotFoundException.FromId(dto.RaceId); } if (_entities.players.FirstOrDefault(x => x.name.Equals(dto.Name)) != null) { throw new PlayerAlreadyExistsException(); } _entities.players.Add(dto.ToDbObject(userId)); _entities.SaveChanges(); }