public HttpResponseMessage DeleteRace(DeleteRaceRequest request)
        {
            try
            {
                if (request.Id.HasValue)
                {
                    _dataAccess.DeleteRaceByID(request.Id.Value);
                }
                else if (!request.Name.Equals(string.Empty))
                {
                    _dataAccess.DeleteFactionByName(request.Name);
                }

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (RaceNotFoundException raceNotFoundException)
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, new ErrorResponse(RaceNotFoundException.ERROR_CODE, raceNotFoundException.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 override async Task <Empty> deleteRace(DeleteRaceRequest request, ServerCallContext context)
        {
            var race = await dbContext.Races.FindAsync(request.RaceId);

            if (race != null)
            {
                dbContext.Remove(race);
                await dbContext.SaveChangesAsync();
            }

            return(new Empty());
        }