public ChatMessage( UserIdentifier user, UserIdentifier targetUser, ChatSide side, string message, ChatMessageReadState readState) { UserId = user.UserId; TenantId = user.TenantId; TargetUserId = targetUser.UserId; TargetTenantId = targetUser.TenantId; Message = message; Side = side; ReadState = readState; CreationTime = Clock.Now; }
private void CheckChatFeaturesInternal(int?sourceTenantId, int?targetTenantId, ChatSide side) { var localizationPosfix = side == ChatSide.Sender ? "ForSender" : "ForReceiver"; if (sourceTenantId.HasValue) { if (!_featureChecker.IsEnabled(sourceTenantId.Value, AppFeatures.ChatFeature)) { throw new UserFriendlyException(L("ChatFeatureIsNotEnabled" + localizationPosfix)); } if (targetTenantId.HasValue) { if (sourceTenantId == targetTenantId) { return; } if (!_featureChecker.IsEnabled(sourceTenantId.Value, AppFeatures.TenantToTenantChatFeature)) { throw new UserFriendlyException(L("TenantToTenantChatFeatureIsNotEnabled" + localizationPosfix)); } } else { if (!_featureChecker.IsEnabled(sourceTenantId.Value, AppFeatures.TenantToHostChatFeature)) { throw new UserFriendlyException(L("TenantToHostChatFeatureIsNotEnabled" + localizationPosfix)); } } } else { if (targetTenantId.HasValue) { if (!_featureChecker.IsEnabled(targetTenantId.Value, AppFeatures.TenantToHostChatFeature)) { throw new UserFriendlyException(L("TenantToHostChatFeatureIsNotEnabled" + (side == ChatSide.Sender ? "ForReceiver" : "ForSender"))); } } } }