using System.Linq; using xAiModels.Models; using xCommons.Extensions; using xAiModels.Models.Dtos; using xAiModels.Models.Entities; namespace xAiModels.Extensions { /// /// Extensions Methods for XAiModels ... /// public static class XAiModelsExtensions { /// /// Validate a Project for Add Or Update ... /// /// /// 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; } /// /// Validate a Conversation for Add Or Update ... /// /// /// 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; } /// /// Validate a Message for Add Or Update ... /// /// /// 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; } /// /// Validate a Model Descriptor ... /// /// /// 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; } /// /// Validate Specified Param ... /// /// /// public static bool IsValid(this XAiPromptParam source) { // var result = !source.IsNullOrDefault() && !source.Name.IsNullOrEmpty() && !source.Param.IsNullOrEmpty(); // return result; } /// /// Validate Specified Prompt ... /// /// /// 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; } } }