public async Task <ActionResult> PostSingleMapEntryAsync([FromBody] MapEntryRecord Record, [FromRoute] Guid Id) { if (Record == null) { return(BadRequest("Error parsing Record")); } if (Id == Guid.Empty) { return(BadRequest("Error parsing Id")); } Record.Id = Guid.NewGuid(); return(await PutSingleMapEntryAsync(Record, Id, Record.Id)); }
public async Task <ActionResult> PutSingleMapEntryAsync([FromBody] MapEntryRecord Record, [FromRoute] Guid Id, [FromRoute] Guid EntryId) { if (Record == null) { return(BadRequest("Error parsing Record")); } if (Id == Guid.Empty) { return(BadRequest("Error parsing Id")); } if (EntryId == Guid.Empty) { return(BadRequest("Error parsing EntryId")); } if (Record.Id != EntryId) { return(BadRequest("EntityId must match Record.Id")); } var map = await _mapService.FindOneAsync(Id); if (map == null) { return(BadRequest("No map with this id")); } foreach (var link in Record.Links) { var linkValidation = await _linkFragmentValidator.ValidateAsync(link); if (!linkValidation.IsValid) { return(BadRequest(linkValidation.ErrorMessage)); } } map.Entries.Remove(map.Entries.SingleOrDefault(a => a.Id == EntryId)); map.Entries.Add(Record); await _mapService.ReplaceOneAsync(map); return(Ok(Record.Id)); }