Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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;
            }
        }