/// <summary> /// Update an existing workspace. /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <Workspace> Update(RestrictedChangedWorkspace model) { var entity = await _store.Retrieve(model.Id); Mapper.Map <RestrictedChangedWorkspace, Data.Workspace>( model, entity ); await _store.Update(entity); return(Mapper.Map <Workspace>(entity)); }
private async Task _validate(RestrictedChangedWorkspace model) { if (model.Name.IsEmpty()) { throw new ArgumentException("ChangedWorkspace.Name"); } if ((await Exists(model.Id)).Equals(false)) { throw new ResourceNotFound(); } await Task.CompletedTask; }
public async Task <ActionResult> UpdateWorkspace([FromBody] RestrictedChangedWorkspace model) { await Validate(model); AuthorizeAny( () => Actor.IsAdmin, () => _svc.CanEdit(model.Id, Actor.Id).Result ); Workspace workspace = await _svc.Update(model); await Hub.Clients .Group(workspace.Id) .TopoEvent(new BroadcastEvent <Workspace>(User, "TOPO.UPDATED", workspace)) ; return(Ok()); }