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); }