/// <summary> /// Stores or update team skills data in storage. /// </summary> /// <param name="teamSkillEntity">Represents team skill entity object.</param> /// <returns>A task that represents team skills entity data is saved or updated.</returns> private async Task <TableResult> StoreOrUpdateEntityAsync(TeamSkillEntity teamSkillEntity) { await this.EnsureInitializedAsync(); TableOperation addOrUpdateOperation = TableOperation.InsertOrReplace(teamSkillEntity); return(await this.CloudTable.ExecuteAsync(addOrUpdateOperation)); }
public async Task <IActionResult> PostAsync([FromBody] TeamSkillEntity teamSkillDetails) { try { if (teamSkillDetails == null) { this.logger.LogError($"Error while adding the team skills."); return(this.BadRequest($"Error while adding the team skills.")); } this.logger.LogInformation("Call to add team skill details."); var teamSkillData = await this.teamSkillStorageProvider.GetTeamSkillsDataAsync(teamSkillDetails.TeamId); bool result; if (teamSkillData == null) { // Insert or update the skills details for a team. var teamSkill = new TeamSkillEntity { TeamId = teamSkillDetails.TeamId, Skills = teamSkillDetails.Skills, CreatedByUserId = this.UserAadId, UpdatedByUserId = this.UserAadId, }; result = await this.teamSkillStorageProvider.UpsertTeamSkillsAsync(teamSkill); } else { teamSkillData.Skills = teamSkillDetails.Skills; teamSkillData.UpdatedByUserId = this.UserAadId; result = await this.teamSkillStorageProvider.UpsertTeamSkillsAsync(teamSkillData); } if (result) { this.logger.LogInformation($"User {this.UserAadId} has updated skills for team {teamSkillDetails.TeamId}."); this.RecordEvent($"Team skills - HTTP Post call succeeded."); return(this.Ok(result)); } return(this.Ok(false)); } catch (Exception ex) { this.RecordEvent("Error while making call to store team skills."); this.logger.LogError(ex, "Error while making call to store team skills."); throw; } }
/// <summary> /// Stores or update team skills data in storage. /// </summary> /// <param name="teamSkillEntity">Represents team skill entity object.</param> /// <returns>A boolean that represents team skills entity is successfully saved/updated or not.</returns> public async Task <bool> UpsertTeamSkillsAsync(TeamSkillEntity teamSkillEntity) { var result = await this.StoreOrUpdateEntityAsync(teamSkillEntity); return(result.HttpStatusCode == (int)HttpStatusCode.NoContent); }