public async Task <ActionResult <MapSummaryResponse> > PutUpdateMapAsync( [FromServices] NaheulbookExecutionContext executionContext, [FromRoute] int mapId, [FromBody] CreateMapRequest request ) { var map = await _mapService.UpdateMapAsync(executionContext, mapId, request); return(_mapper.Map <MapSummaryResponse>(map)); }
public IActionResult Post([FromBody] CreateMapRequest newMap) { Player player = (Player)this.HttpContext.Items["Player"]; Map map = new Map(newMap.MapLayout, newMap.Name, player); bool addedToRepo = mapRepo.Add(map); if (addedToRepo) { MapResource mapResource = new MapResource { Id = map.Id }; return(new ObjectResult(mapResource)); } return(new BadRequestResult()); }
public async Task <ActionResult <MapResponse> > PostCreateMapAsync( [FromServices] NaheulbookExecutionContext executionContext, [ModelBinder(BinderType = typeof(JsonModelBinder), Name = "request")] CreateMapRequest request, [FromForm(Name = "image")] IFormFile image ) { if (!image.ContentType.StartsWith("image/")) { return(BadRequest()); } var imageStream = image.OpenReadStream(); var map = await _mapService.CreateMapAsync(executionContext, request, imageStream); return(_mapper.Map <MapResponse>(map)); }
public async Task <Map> CreateMapAsync(NaheulbookExecutionContext executionContext, CreateMapRequest request, Stream imageStream) { await _authorizationUtil.EnsureAdminAccessAsync(executionContext); using (var uow = _unitOfWorkFactory.CreateUnitOfWork()) { var mapData = new MapData { IsGm = request.Data.IsGm, PixelPerUnit = request.Data.PixelPerUnit, UnitName = request.Data.UnitName, Attribution = request.Data.Attribution .Select(x => new MapData.MapAttribution { Name = x.Name, Url = x.Url }) .ToList() }; var map = new Map { Name = request.Name, Data = _jsonUtil.SerializeNonNull(mapData), ImageData = "{}" }; uow.Maps.Add(map); await uow.SaveChangesAsync(); map.Data = _jsonUtil.SerializeNonNull(mapData); try { var mapImageData = _mapImageUtil.SplitMapImage(imageStream, map.Id); map.ImageData = _jsonUtil.SerializeNonNull(mapImageData); } catch (Exception) { uow.Maps.Remove(map); } await uow.SaveChangesAsync(); return(map); } }
public async Task <Map> UpdateMapAsync(NaheulbookExecutionContext executionContext, int mapId, CreateMapRequest request) { await _authorizationUtil.EnsureAdminAccessAsync(executionContext); using var uow = _unitOfWorkFactory.CreateUnitOfWork(); var map = await uow.Maps.GetAsync(mapId); if (map == null) { throw new MapNotFoundException(mapId); } map.Name = request.Name; map.Data = _jsonUtil.SerializeNonNull(request.Data); await uow.SaveChangesAsync(); return(map); }
public async Task <ActionResult> CreateMap([FromBody] CreateMapRequest requestBody) { var result = await mapsService.CreateGalleryMap(requestBody.Map); return(CreatedAtAction(nameof(GetMapByShortName), new { shortName = requestBody.Map.ShortName }, $"Created map {requestBody.Map.ShortName}")); }