public async Task <StageChangeResponse> InsertOrUpdateAsync(AppState.Stage stage, int userId) { async Task AddNewStage() { var stageDto = new StageDto() { UserId = userId, Title = stage.Title }; _appDbContext.Stages.Add(stageDto); await _appDbContext.SaveChangesAsync(); } if (stage.Id != 0) { var exist = await _appDbContext.Stages.SingleOrDefaultAsync(p => p.Id == stage.Id && p.UserId == userId); if (exist != null) { exist.Title = stage.Title; await _appDbContext.SaveChangesAsync(); } else { await AddNewStage(); } } else { await AddNewStage(); } return(new StageChangeResponse()); }
public async Task <StageChangeResponse> DeleteStageAsync(AppState.Stage stage) { var result = await _httpClient.DeleteAsyncEx <StageChangeResponse>($"api/stage/{stage.Id}", $"Delete column '{stage.Title}'"); OnStateChanged?.Invoke(this, result.AppState); return(result); }
public async Task <StageChangeResponse> EditStageAsync(AppState.Stage stage) { var result = await _httpClient.PostAsyncEx <StageChangeResponse, AppState.Stage>("api/stage", stage, $"Edit column '{stage.Title}'"); OnStateChanged?.Invoke(this, result.AppState); return(result); }
public async Task <StageChangeResponse> Post(AppState.Stage stage) { return(await _stageService.InsertOrUpdateAsync(stage, _authUser.Id)); }