public async Task CreateFavoriteDistributionMemberListData([FromBody] FavoriteDistributionListMemberData favoriteDistributionListMemberData) { try { string userPrincipalName = this.HttpContext.User.FindFirst(ClaimTypes.Upn)?.Value.ToLower(); if (string.IsNullOrEmpty(userPrincipalName)) { this.telemetryClient.TrackTrace($"There's no user principal name claim.", SeverityLevel.Error); this.HttpContext.Response.ContentType = "text/plain"; this.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized; await this.HttpContext.Response.WriteAsync("There's no user principal name claim."); } favoriteDistributionListMemberData.UserPrincipalName = userPrincipalName; await this.favoriteDistributionListMemberDataRepository.CreateOrUpdateFavoriteDistributionListMemberDataAsync(favoriteDistributionListMemberData); this.telemetryClient.TrackEvent($"Updated PIN status : {JsonConvert.SerializeObject(favoriteDistributionListMemberData)}"); this.HttpContext.Response.ContentType = "text/plain"; this.HttpContext.Response.StatusCode = (int)HttpStatusCode.OK; await this.HttpContext.Response.WriteAsync("Pinned user successfully."); } catch (Exception ex) { this.telemetryClient.TrackTrace($"An error occurred in CreateFavoriteDistributionMemberListData: {ex.Message}, Parameters: {JsonConvert.SerializeObject(favoriteDistributionListMemberData)}", SeverityLevel.Error); this.telemetryClient.TrackException(ex); this.HttpContext.Response.ContentType = "text/plain"; this.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; await this.HttpContext.Response.WriteAsync("An error occurred while calling the downstream API\n" + ex.Message); } }
/// <summary> /// Create/Update favorite distribution list member data to table storage. /// </summary> /// <param name="favoriteDistributionListMemberData">Favorite distribution list member data to be stored in database.</param> /// <returns>A <see cref="Task"/> representing the result of the asynchronous operation.</returns> public async Task CreateOrUpdateFavoriteDistributionListMemberDataAsync( FavoriteDistributionListMemberData favoriteDistributionListMemberData) { var favoriteDistributionListMemberDataEntity = new FavoriteDistributionListMemberTableEntity() { UserPrincipalName = favoriteDistributionListMemberData.UserPrincipalName.ToLower(), DistributionListMemberId = (favoriteDistributionListMemberData.PinnedUserId + favoriteDistributionListMemberData.DistributionListID).ToLower(), DistributionListID = favoriteDistributionListMemberData.DistributionListID, }; await this.CreateOrUpdateAsync(favoriteDistributionListMemberDataEntity); }
/// <summary> /// Adds distribution list member data. /// </summary> /// <param name="favoriteDistributionListMemberData">Favorite distribution list member data to be stored in database.</param> /// <returns>A <see cref="Task"/> representing the result of the asynchronous operation.</returns> public async Task AddFavoriteDistributionListMemberAsync( FavoriteDistributionListMemberData favoriteDistributionListMemberData) { FavoriteDistributionListMemberTableEntity favoriteDistributionListMemberDataEntity = new FavoriteDistributionListMemberTableEntity() { DistributionListMemberId = (favoriteDistributionListMemberData.PinnedUserId + favoriteDistributionListMemberData.DistributionListId).ToLower(), DistributionListId = favoriteDistributionListMemberData.DistributionListId, UserObjectId = favoriteDistributionListMemberData.UserObjectId, }; await this.AddFavoriteMemberToStorageAsync(favoriteDistributionListMemberDataEntity); }
public async Task DeleteFavoriteDistributionListMemberDataAsync([FromBody] FavoriteDistributionListMemberData favoriteDistributionListMemberData) { try { string userPrincipalName = this.HttpContext.User.FindFirst(ClaimTypes.Upn)?.Value.ToLower(); if (string.IsNullOrEmpty(userPrincipalName)) { this.telemetryClient.TrackTrace($"There's no user principal name claim.", SeverityLevel.Error); this.HttpContext.Response.ContentType = "text/plain"; this.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized; await this.HttpContext.Response.WriteAsync("There's no user principal name claim."); } favoriteDistributionListMemberData.UserPrincipalName = userPrincipalName; FavoriteDistributionListMemberTableEntity favoriteDistributionListMemberDataEntity = await this.favoriteDistributionListMemberDataRepository.GetAsync( favoriteDistributionListMemberData.UserPrincipalName.ToLower(), favoriteDistributionListMemberData.PinnedUserId + favoriteDistributionListMemberData.DistributionListID); if (favoriteDistributionListMemberDataEntity != null) { await this.favoriteDistributionListMemberDataRepository.DeleteAsync(favoriteDistributionListMemberDataEntity); this.telemetryClient.TrackEvent($"Deleted favorite user : {JsonConvert.SerializeObject(favoriteDistributionListMemberData)}"); } else { this.telemetryClient.TrackEvent($"Did not find favorite user to delete : {JsonConvert.SerializeObject(favoriteDistributionListMemberData)}"); } this.HttpContext.Response.ContentType = "text/plain"; this.HttpContext.Response.StatusCode = (int)HttpStatusCode.OK; await this.HttpContext.Response.WriteAsync("Unpinned user successfully."); } catch (Exception ex) { this.telemetryClient.TrackTrace($"An error occurred in DeleteFavoriteDistributionListMemberDataAsync: {ex.Message}, Parameters:{JsonConvert.SerializeObject(favoriteDistributionListMemberData)}", SeverityLevel.Error); this.telemetryClient.TrackException(ex); this.HttpContext.Response.ContentType = "text/plain"; this.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; await this.HttpContext.Response.WriteAsync("An error occurred while calling the downstream API\n" + ex.Message); } }
public async Task <IActionResult> CreateFavoriteDistributionMemberListDataAsync([FromBody] FavoriteDistributionListMemberData favoriteDistributionListMemberData) { try { favoriteDistributionListMemberData.UserObjectId = this.UserObjectId; await this.favoriteDistributionListMemberDataRepository.AddFavoriteDistributionListMemberAsync(favoriteDistributionListMemberData); return(this.Ok()); } catch (Exception ex) { this.logger.LogError(ex, $"An error occurred in CreateFavoriteDistributionMemberListDataAsync: {ex.Message}"); throw; } }
public async Task <IActionResult> DeleteFavoriteDistributionListMemberDataAsync([FromBody] FavoriteDistributionListMemberData favoriteDistributionListMemberData) { try { favoriteDistributionListMemberData.UserObjectId = this.UserObjectId; FavoriteDistributionListMemberTableEntity favoriteDistributionListMemberDataEntity = await this.favoriteDistributionListMemberDataRepository .GetFavoriteMemberFromStorageAsync(favoriteDistributionListMemberData.PinnedUserId + favoriteDistributionListMemberData.DistributionListId, favoriteDistributionListMemberData.UserObjectId); if (favoriteDistributionListMemberDataEntity != null) { await this.favoriteDistributionListMemberDataRepository.DeleteFavoriteMemberFromStorageAsync(favoriteDistributionListMemberDataEntity); } return(this.Ok()); } catch (Exception ex) { this.logger.LogError(ex, $"An error occurred in DeleteFavoriteDistributionListMemberDataAsync: {ex.Message}"); throw; } }