public async Task <IActionResult> PutTeamEvent(int id, TeamEventUpdateRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var teamEvent = await _context.TeamEvents.FirstOrDefaultAsync(te => te.Id == id);

            if (teamEvent == default)
            {
                return(NotFound());
            }

            var startDate = Convert.ToDateTime(request.StartDate).Date
                            .AddHours(request.StartTime.GetProperty("hour").GetUInt32())
                            .AddMinutes(request.StartTime.GetProperty("minute").GetUInt32());

            teamEvent.Name             = request.Name;
            teamEvent.Location         = request.Location;
            teamEvent.StartDate        = startDate;
            teamEvent.MinAttendees     = request.MinAttendees;
            teamEvent.MaxAttendees     = request.MaxAttendees;
            teamEvent.LocationImageUrl = request.LocationImageUrl;
            teamEvent.LogoImageUrl     = request.LogoImageUrl;
            teamEvent.Attendees        = request.Attendees;
            teamEvent.LastModifiedDate = DateTime.UtcNow;
            teamEvent.Photos           = request.Photos;
            teamEvent.Reviews          = request.Reviews;
            teamEvent.Categories       = request.Categories;
            teamEvent.Comments         = request.Comments;
            teamEvent.LocationMapUrl   = request.LocationMapUrl;
            teamEvent.Description      = request.Description;
            teamEvent.TicketPrice      = request.TicketPrice;
            teamEvent.Status           = request.Status;

            await _textAnalyticsService.BuildTextWithLinksAsync(teamEvent);

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TeamEventExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }