コード例 #1
0
        /// <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;
            }
        }
コード例 #3
0
        /// <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);
        }