diff --git a/Extensions/XAiModelsExtensions.cs b/Extensions/XAiModelsExtensions.cs
index 70d87f3..2d19367 100644
--- a/Extensions/XAiModelsExtensions.cs
+++ b/Extensions/XAiModelsExtensions.cs
@@ -1,8 +1,12 @@
+using System;
using System.Linq;
using xAiModels.Models;
using xCommons.Extensions;
+using xAiModels.Constants;
using xAiModels.Models.Dtos;
+using xExceptions.Constants;
using xAiModels.Models.Entities;
+using System.Collections.Generic;
namespace xAiModels.Extensions
{
@@ -172,5 +176,164 @@ namespace xAiModels.Extensions
//
return result;
}
+
+ ///
+ /// Check a Collection Contains Default Project for Specified Owner or not ...
+ ///
+ ///
+ ///
+ ///
+ public static bool HasDefaultProject(
+ this IEnumerable source,
+ string ownerId
+ )
+ {
+ //
+ // Validate Args ...
+ if (source.HasChild() ||
+ ownerId.IsNullOrEmpty())
+ {
+ XException.InvalidArgs.Throw();
+ }
+
+ //
+ var item = source
+ .FirstOrDefault(x =>
+ x.Title
+ .ToNormalString()
+ .Contains(ownerId.ToNormalString()) &&
+ x.Title
+ .ToNormalString()
+ .Contains(XAiModelsConstants.DefaultXAiProjectDescriptionResourceID)
+ );
+
+ //
+ var result = !item.IsNullOrDefault();
+
+ //
+ return result;
+ }
+
+ ///
+ /// Check a Collection Contains Default Conversation for Specified Project or not ...
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static bool HasDefaultConversation(
+ this IEnumerable source,
+ string ownerId,
+ Guid projectId
+ )
+ {
+ //
+ // Validate Args ...
+ if (source.HasChild() ||
+ projectId.IsDefaultGuid())
+ {
+ XException.InvalidArgs.Throw();
+ }
+
+ //
+ var item = source
+ .FirstOrDefault(x =>
+ x.Title
+ .ToNormalString()
+ .Contains(ownerId.ToNormalString()) &&
+ x.Title
+ .ToNormalString()
+ .Contains(projectId.ToString().ToNormalString()) &&
+ x.Title
+ .ToNormalString()
+ .Contains(XAiModelsConstants.DefaultXAiConversationTitleResourceID)
+ );
+
+ //
+ var result = !item.IsNullOrDefault();
+
+ //
+ return result;
+ }
+
+ ///
+ /// Retrieve Default Project Id from a Collection ...
+ ///
+ ///
+ ///
+ ///
+ public static Guid GetDafualtProject(
+ this IEnumerable source,
+ string ownerId
+ )
+ {
+ //
+ // Validate Args ...
+ if (source.HasChild() ||
+ ownerId.IsNullOrEmpty())
+ {
+ XException.InvalidArgs.Throw();
+ }
+
+ //
+ var item = source
+ .FirstOrDefault(x =>
+ x.Title
+ .ToNormalString()
+ .Contains(ownerId.ToNormalString()) &&
+ x.Title
+ .ToNormalString()
+ .Contains(XAiModelsConstants.DefaultXAiProjectDescriptionResourceID)
+ );
+ if (item.IsNullOrDefault())
+ {
+ XException.NotFound.Throw();
+ }
+
+ //
+ return item.Id;
+ }
+
+ ///
+ /// Get Default Conversation Id from a Collection Contains ...
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static Guid GetDefaultConversation(
+ this IEnumerable source,
+ string ownerId,
+ Guid projectId
+ )
+ {
+ //
+ // Validate Args ...
+ if (source.HasChild() ||
+ projectId.IsDefaultGuid())
+ {
+ XException.InvalidArgs.Throw();
+ }
+
+ //
+ var item = source
+ .FirstOrDefault(x =>
+ x.Title
+ .ToNormalString()
+ .Contains(ownerId.ToNormalString()) &&
+ x.Title
+ .ToNormalString()
+ .Contains(projectId.ToString().ToNormalString()) &&
+ x.Title
+ .ToNormalString()
+ .Contains(XAiModelsConstants.DefaultXAiConversationTitleResourceID)
+ );
+
+ //
+ var result = item.Id;
+
+ //
+ return result;
+ }
}
}
\ No newline at end of file
diff --git a/Providers/XAiDataProvider.cs b/Providers/XAiDataProvider.cs
index b7acca7..637208a 100644
--- a/Providers/XAiDataProvider.cs
+++ b/Providers/XAiDataProvider.cs
@@ -104,11 +104,9 @@ namespace xAiModels.Providers
var result = await projectRepositoryService.FindManyAsync(
includeBuilder: null,
ignoreSoftDeleteds: true,
- // fillConversations: fillConversations,
predicate: x => x.OwnerId == ownerId,
cancellationToken: cancellationToken,
orderBuilder: x => x.OrderBy(y => y.CreatedOn)
- // fillConversationMessages: fillConversationMessages
);
//
@@ -142,7 +140,6 @@ namespace xAiModels.Providers
var result = await conversationRepositoryService.FindManyAsync(
includeBuilder: null,
ignoreSoftDeleteds: false,
- // fillMessages: fillMessages,
cancellationToken: cancellationToken,
predicate: x => x.ProjectId == projectId,
orderBuilder: x => x.OrderBy(y => y.CreatedOn)
@@ -727,8 +724,6 @@ namespace xAiModels.Providers
id: project.Id,
includeBuilder: null,
ignoreSoftDeleteds: true,
- // fillConversations: false,
- // fillConversationMessages: false,
cancellationToken: cancellationToken
);
}
@@ -744,7 +739,7 @@ namespace xAiModels.Providers
predicate: x =>
x.ResourceTitle
.ToNormalString()
- .Contains(ownerId.ToNormalString()) &&
+ .Contains(projectId.ToString().ToNormalString()) &&
x.ResourceTitle
.ToNormalString()
.Contains(XAiModelsConstants.XAiConversationTitleIdentifier
@@ -819,8 +814,6 @@ namespace xAiModels.Providers
id: project.Id,
includeBuilder: null,
ignoreSoftDeleteds: true,
- // fillConversations: false,
- // fillConversationMessages: false,
cancellationToken: cancellationToken
);
}