This commit is contained in:
2026-09-27 22:00:56 +03:30
parent 9f27b7825e
commit a4dee3b5a4
2 changed files with 164 additions and 8 deletions
+163
View File
@@ -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;
}
/// <summary>
/// Check a Collection Contains Default Project for Specified Owner or not ...
/// </summary>
/// <param name="source"></param>
/// <param name="ownerId"></param>
/// <returns></returns>
public static bool HasDefaultProject(
this IEnumerable<XAiProjectDto> 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;
}
/// <summary>
/// Check a Collection Contains Default Conversation for Specified Project or not ...
/// </summary>
/// <param name="source"></param>
/// <param name="ownerId"></param>
/// <param name="projectId"></param>
/// <returns></returns>
public static bool HasDefaultConversation(
this IEnumerable<XAiConversationDto> 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;
}
/// <summary>
/// Retrieve Default Project Id from a Collection ...
/// </summary>
/// <param name="source"></param>
/// <param name="ownerId"></param>
/// <returns></returns>
public static Guid GetDafualtProject(
this IEnumerable<XAiProjectDto> 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;
}
/// <summary>
/// Get Default Conversation Id from a Collection Contains ...
/// </summary>
/// <param name="source"></param>
/// <param name="ownerId"></param>
/// <param name="projectId"></param>
/// <returns></returns>
public static Guid GetDefaultConversation(
this IEnumerable<XAiConversationDto> 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;
}
}
}
+1 -8
View File
@@ -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
);
}