176 lines
5.1 KiB
C#
176 lines
5.1 KiB
C#
using System.Linq;
|
|
using xAiModels.Models;
|
|
using xCommons.Extensions;
|
|
using xAiModels.Models.Dtos;
|
|
using xAiModels.Models.Entities;
|
|
|
|
namespace xAiModels.Extensions
|
|
{
|
|
/// <summary>
|
|
/// Extensions Methods for XAiModels ...
|
|
/// </summary>
|
|
public static class XAiModelsExtensions
|
|
{
|
|
/// <summary>
|
|
/// Validate a Project for Add Or Update ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValidForAddOrUpdate(this XAiProject source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.OwnerId.IsNullOrEmpty() &&
|
|
!source.Title.IsNullOrEmpty() &&
|
|
!source.Prompt.IsNullOrEmpty();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
public static bool IsValidForAddOrUpdate(this XAiProjectDto source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.OwnerId.IsNullOrEmpty() &&
|
|
!source.Title.IsNullOrEmpty() &&
|
|
!source.Prompt.IsNullOrEmpty();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Validate a Conversation for Add Or Update ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValidForAddOrUpdate(this XAiConversation source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.OwnerId.IsNullOrEmpty() &&
|
|
!source.Title.IsNullOrEmpty() &&
|
|
!source.ProjectId.IsNull() &&
|
|
!source.ProjectId.IsDefaultGuid();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
public static bool IsValidForAddOrUpdate(this XAiConversationDto source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.OwnerId.IsNullOrEmpty() &&
|
|
!source.Title.IsNullOrEmpty() &&
|
|
!source.ProjectId.IsNull() &&
|
|
!source.ProjectId.IsDefaultGuid();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Validate a Message for Add Or Update ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValidForAddOrUpdate(this XAiMessage source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.OwnerId.IsNullOrEmpty() &&
|
|
source.Role.IsValid() &&
|
|
!source.ConversationId.IsNull() &&
|
|
!source.ConversationId.IsDefaultGuid() &&
|
|
!source.Content.IsNullOrEmpty();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
public static bool IsValidForAddOrUpdate(this XAiMessageDto source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.OwnerId.IsNullOrEmpty() &&
|
|
source.Role.IsValid() &&
|
|
!source.ConversationId.IsNull() &&
|
|
!source.ConversationId.IsDefaultGuid() &&
|
|
!source.Content.IsNullOrEmpty();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Validate a Model Descriptor ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValid(this XAiModelDescriptor source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.Name.IsNullOrEmpty() &&
|
|
!source.Url.IsNullOrEmpty() &&
|
|
source.Url.IsValidUrl() &&
|
|
!source.LLM.IsNullOrEmpty() &&
|
|
source.Provider != Constants.XAiModelProviderType.None;
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Validate Specified Param ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValid(this XAiPromptParam source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.Name.IsNullOrEmpty() &&
|
|
!source.Param.IsNullOrEmpty();
|
|
|
|
//
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Validate Specified Prompt ...
|
|
/// </summary>
|
|
/// <param name="source"></param>
|
|
/// <returns></returns>
|
|
public static bool IsValid(this XAiPromptDescriptor source)
|
|
{
|
|
//
|
|
var result =
|
|
!source.IsNullOrDefault() &&
|
|
!source.Name.IsNullOrEmpty() &&
|
|
!source.Template.IsNullOrEmpty();
|
|
if (!result)
|
|
{
|
|
return result;
|
|
}
|
|
|
|
//
|
|
if (source.Params.HasChild())
|
|
{
|
|
result =
|
|
result &&
|
|
source.Params.All(x => x.IsValid());
|
|
}
|
|
|
|
//
|
|
return result;
|
|
}
|
|
}
|
|
} |