public UpdateObjectCommand(IUserValidationService userValidationService,
                            IMapObjectsRepository mapObjectsRepository,
                            MapObjectUpdateData updateData,
                            string id)
 {
     this.userValidationService = userValidationService;
     this.mapObjectsRepository  = mapObjectsRepository;
     this.updateData            = updateData;
     this.id = id;
 }
        public async Task <IActionResult> UpdateObject(string id, [FromBody] MapObjectUpdateData updateData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var command = commandFactory.GetUpdateMapObjectCommand(id, updateData);

            try
            {
                await command.ExecuteAsync();
            }
            catch (NoPermissionException)
            {
                return(Forbid());
            }
            catch (InvalidOperationException e) when(e.Message == "Sequence contains no elements")
            {
                return(NotFound());
            }

            return(Ok());
        }
Ejemplo n.º 3
0
 public ICommand GetUpdateMapObjectCommand(string id, MapObjectUpdateData data)
 {
     return(new UpdateObjectCommand(userValidationService, mapObjectsRepository, data, id));
 }