using LCU.Library.Internal.ApiResponse.Models; using LCU.Library.Internal.FileOperationsModels.Models.NameSettings; using LCU.Library.Internal.FileOperationsModels.Shared; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace LCU.Library.Internal.FileOperationsModels.Models { public class RenameDirectoryRequest : ReturnResponse { [Required(ErrorMessage = "Source directory path is required.")] public string SourceDirectoryPath { get; set; } [Required(ErrorMessage = "Source directory name is required.")] public string SourceDirectoryName { get; set; } [Required(ErrorMessage = "Directory name is required.")] public string NewDirectoryName { get; set; } public DynamicNameSetting SourceDirectoryNameSetting { get; set; } public DynamicNameSetting NewDirectoryNameSetting { get; set; } [NotMapped] public string FinalSourceDirectoryName { get { return DynamicNameBuilder.BuildDynamicName(SourceDirectoryName, SourceDirectoryNameSetting); } } [NotMapped] public string FinalSourceDirectoryPath { get { var finalDestinationPath = SourceDirectoryPath.EndsWith("\\") ? SourceDirectoryPath : $"{SourceDirectoryPath}\\"; return $"{finalDestinationPath}{FinalSourceDirectoryName}"; } } [NotMapped] public string FinalNewDirectoryName { get { return DynamicNameBuilder.BuildDynamicName(NewDirectoryName, NewDirectoryNameSetting); } } [NotMapped] public string NewDirectoryDestination { get { var finalDestinationPath = SourceDirectoryPath.EndsWith("\\") ? SourceDirectoryPath : $"{SourceDirectoryPath}\\"; return $"{finalDestinationPath}{FinalNewDirectoryName}"; } } } }