private async Task <LeaveRoomEmail> ConsiderLeavingRoom(Claim claim)
        {
            LeaveRoomEmail email = null;

            if (claim.AccommodationRequest != null)
            {
                if (claim.AccommodationRequest.Accommodation != null)
                {
                    email = new LeaveRoomEmail()
                    {
                        Changed     = new[] { claim },
                        Initiator   = await GetCurrentUser(),
                        ProjectName = claim.Project.ProjectName,
                        Recipients  = claim.AccommodationRequest.Accommodation.GetSubscriptions().ToList(),
                        Room        = claim.AccommodationRequest.Accommodation,
                        Text        = new MarkdownString(),
                    };
                }

                claim.AccommodationRequest.Subjects.Remove(claim);
                if (!claim.AccommodationRequest.Subjects.Any())
                {
                    UnitOfWork.GetDbSet <AccommodationRequest>().Remove(claim.AccommodationRequest);
                }
            }

            return(email);
        }
        public async Task Email(LeaveRoomEmail email)
        {
            var body = $"{email.Claim?.Player?.GetDisplayName()} покинул комнату, так как его заявка была отозвана или отклонена.";

            if (email.Room.GetAllInhabitants().Any())
            {
                body += $"\n\nОстались в комнате:{email.Room.GetAllInhabitants().GetPlayerList()}";
            }
            await SendRoomEmail(email, body);
        }