public async Task <IActionResult> UpdateProfileActivities([FromBody] UpdateProfileActivitiesCommand model)
        {
            FirebaseUser user = HttpContext.GetFirebaseUser();

            model.firebaseId = user.UserId;
            ResultWrapper <UpdateProfileActivitiesOutput> result = new ResultWrapper <UpdateProfileActivitiesOutput>();

            result = await _mediator.Send(model);

            return(Ok(result));
        }
        public async Task <ResultWrapper <UpdateProfileActivitiesOutput> > Handle(UpdateProfileActivitiesCommand request, CancellationToken cancellationToken)
        {
            ResultWrapper <UpdateProfileActivitiesOutput> updateProfileResult = new ResultWrapper <UpdateProfileActivitiesOutput>();


            TUser tUser = _dbContext.TUser.FirstOrDefault(x => x.FireBaseId == request.firebaseId);

            if (tUser == null)
            {
                updateProfileResult.Status  = false;
                updateProfileResult.Message = "User doesn't exists";
                return(updateProfileResult);
            }

            List <TUserSport> userSports = _dbContext.TUserSport.Where(x => x.TUser.FireBaseId == request.firebaseId).ToList();

            _dbContext.TUserSport.RemoveRange(userSports.Where(x => !request.Activities.Contains(x.TSportId)));

            int selectedSportsCount = _dbContext.TSport.Where(x => request.Activities.Contains(x.Id)).Count();

            if (selectedSportsCount != request.Activities.Count)
            {
                updateProfileResult.Status  = false;
                updateProfileResult.Message = "Selected activities are invalid!";
                return(updateProfileResult);
            }
            foreach (int sportId in request.Activities.Where(x => !userSports.Any(z => z.TSportId == x)))
            {
                _dbContext.TUserSport.Add(new TUserSport()
                {
                    TUserId  = tUser.Id,
                    TSportId = sportId
                });
            }
            int r = await _dbContext.SaveChangesAsync();

            if (r < 0)
            {
                updateProfileResult.Status  = false;
                updateProfileResult.Message = "Unhandled error!";
                return(updateProfileResult);
            }

            updateProfileResult.Status = true;
            updateProfileResult.Result = new UpdateProfileActivitiesOutput()
            {
            };

            return(updateProfileResult);
        }