Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }