67 lines
2.7 KiB
C#
67 lines
2.7 KiB
C#
using System;
|
|
using System.IO;
|
|
using Newtonsoft.Json;
|
|
using LCU.Library.Internal.FileOperationsModels.Models;
|
|
using LCU.Library.Internal.LCUServiceFactory.Configurations;
|
|
using LCU.Api.Internal.FileOperations.Validations;
|
|
namespace LCU.Api.Internal.FileOperations.Services.FileActionServices;
|
|
|
|
public class RenameDirectoryService : FileActionService, IFileActionService, IActionService<RenameDirectoryRequest>
|
|
{
|
|
public RenameDirectoryService(ServicesFactoryConfiguration servicesFactoryConfiguration)
|
|
: base(servicesFactoryConfiguration)
|
|
{
|
|
}
|
|
|
|
public RequestResponse ExecuteAction(QueueRequest queueRequest)
|
|
{
|
|
var requestResponse = new RequestResponse();
|
|
try
|
|
{
|
|
var directoryRequest = JsonConvert.DeserializeObject<RenameDirectoryRequest>(queueRequest.Request);
|
|
requestResponse = PerformRequest(directoryRequest);
|
|
requestResponse.ReturnResponse = directoryRequest;
|
|
return requestResponse;
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
return RequestResponseHelper.ExceptionUpdateRequestResponse(requestResponse,
|
|
queueRequest.FileOperationType,
|
|
exception.Message);
|
|
}
|
|
}
|
|
|
|
public RequestResponse PerformRequest(RenameDirectoryRequest request)
|
|
{
|
|
return OperationService.PerformOperation(request, IsRequestValid, RenameDirectory);
|
|
}
|
|
|
|
private void RenameDirectory(RenameDirectoryRequest request)
|
|
{
|
|
try
|
|
{
|
|
Directory.Move(request.FinalSourceDirectoryPath, request.NewDirectoryDestination);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw new Exception($"Exception thrown while trying to ExecuteRequestAction. " +
|
|
$"Request: {JsonConvert.SerializeObject(request)}" +
|
|
$"ExceptionMessage: {exception.Message}");
|
|
}
|
|
}
|
|
|
|
public RequestResponse PreQueueValidation(RenameDirectoryRequest originalRequest)
|
|
{
|
|
var requestResponse = new RequestResponse();
|
|
requestResponse = IsRequestValid(originalRequest, requestResponse);
|
|
return requestResponse;
|
|
}
|
|
|
|
public RequestResponse IsRequestValid(RenameDirectoryRequest request, RequestResponse requestResponse)
|
|
{
|
|
requestResponse = FileValidation.ValidateDirectoryExists(request.SourceDirectoryPath, requestResponse);
|
|
requestResponse = FileValidation.ValidateDirectoryExists(request.FinalSourceDirectoryPath, requestResponse);
|
|
requestResponse = FileValidation.ValidateDirectoryNotExists(request.NewDirectoryDestination, requestResponse);
|
|
return requestResponse;
|
|
}
|
|
} |