Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,42 @@
using xChanger.Api.Models.Foundations.ExternalPersons;
using xChanger.Api.Services.Foundations.ExternalPersons;
using xChanger.Api.Services.Orchestrations.PersonPets;
using xChanger.Api.Services.Processings.ExternalPersons;

namespace xChanger.Api.Services.Orchestrations.ExternalPersons
{
public class ExternalPersonOrchestrationService : IExternalPersonOrchestrationService
{
private readonly IExternalPersonService externalPersonService;
private readonly IPersonPetOrchestrationService personPetOrchestrationService;
private readonly IExternalPersonProcessingService externalPersonProcessingService;


public ExternalPersonOrchestrationService(
IExternalPersonService externalPersonService,
IPersonPetOrchestrationService personPetOrchestrationService)
IPersonPetOrchestrationService personPetOrchestrationService,
IExternalPersonProcessingService externalPersonProcessingService)
{
this.externalPersonService = externalPersonService;
this.personPetOrchestrationService = personPetOrchestrationService;
this.externalPersonProcessingService = externalPersonProcessingService;
}

public async ValueTask ProcessAllExternalPersonsAsync()
{
List<ExternalPerson> externalPersons =
await this.externalPersonService.RetrieveAllExternalPersonsAsync();

foreach (ExternalPerson externalPerson in externalPersons)
List<ExternalPerson> cleanedExternalPersons = externalPersons
.Select(ep => this.externalPersonProcessingService.ProcessExternalPerson(ep))
.ToList();

foreach (ExternalPerson externalPerson in cleanedExternalPersons)
{
await this.personPetOrchestrationService.ProcessExternalPersonAsync(externalPerson);
}
}

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,49 @@
using xChanger.Api.Models.Foundations.Pets;
using xChanger.Api.Services.Foundations.Persons;
using xChanger.Api.Services.Foundations.Pets;
using xChanger.Api.Services.Processings.ExternalPersons;
using xChanger.Api.Services.Processings.Persons;
using xChanger.Api.Services.Processings.Pets;

namespace xChanger.Api.Services.Orchestrations.PersonPets
{
public class PersonPetOrchestrationService : IPersonPetOrchestrationService
{
private readonly IPersonService personService;
private readonly IPetService petService;
private readonly IExternalPersonProcessingService externalPersonProcessingService;
private readonly IPersonProcessingService personProcessingService;
private readonly IPetProcessingService petProcessingService;

public PersonPetOrchestrationService(
IPersonService personService,
IPetService petService)
IPetService petService,
IExternalPersonProcessingService externalPersonProcessingService,
IPersonProcessingService personProcessingService,
IPetProcessingService petProcessingService)
{
this.personService = personService;
this.petService = petService;
this.externalPersonProcessingService = externalPersonProcessingService;
this.personProcessingService = personProcessingService;
this.petProcessingService = petProcessingService;
}


public async ValueTask ProcessExternalPersonAsync(ExternalPerson externalPerson)
{
Person person = MapToPerson(externalPerson);
Person addedPerson = await this.personService.AddPersonAsync(person);
ExternalPerson cleanedExternalPerson =
this.externalPersonProcessingService.ProcessExternalPerson(externalPerson);

IEnumerable<Pet> pets = MapToPets(externalPerson, addedPerson.Id);
Person person = MapToPerson(cleanedExternalPerson);
person = this.personProcessingService.ProcessPerson(person);
Person addedPerson = await this.personService.AddPersonAsync(person);
IEnumerable<Pet> pets = MapToPets(cleanedExternalPerson, addedPerson.Id);

foreach (Pet pet in pets)
{
await this.petService.AddPetAsync(pet);
Pet cleanedPet = this.petProcessingService.ProcessPet(pet);
await this.petService.AddPetAsync(cleanedPet);
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//- - - - - - - - - - - - - - - - - - - - - - - - - -
// Copyright (c) Coalition of Good-Hearted Engineers
// Free to Use for Precise File Conversion
//- - - - - - - - - - - - - - - - - - - - - - - - - -

using xChanger.Api.Models.Foundations.ExternalPersons;

namespace xChanger.Api.Services.Processings.ExternalPersons
{
public class ExternalPersonProcessingService : IExternalPersonProcessingService
{
public ExternalPerson ProcessExternalPerson(ExternalPerson externalPerson)
{
return new ExternalPerson
{
PersonName = externalPerson.PersonName,
Age = externalPerson.Age,
PetOne = externalPerson.PetOne?.Trim().Replace("-", string.Empty),

Check warning on line 18 in xChanger.Api/Services/Processings/ExternalPersons/ExternalPersonProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
PetOneType = externalPerson.PetOneType?.Trim().Replace("-", string.Empty),

Check warning on line 19 in xChanger.Api/Services/Processings/ExternalPersons/ExternalPersonProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
PetTwo = externalPerson.PetTwo?.Trim().Replace("-", string.Empty),

Check warning on line 20 in xChanger.Api/Services/Processings/ExternalPersons/ExternalPersonProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
PetTwoType = externalPerson.PetTwoType?.Trim().Replace("-", string.Empty),

Check warning on line 21 in xChanger.Api/Services/Processings/ExternalPersons/ExternalPersonProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
PetThree = externalPerson.PetThree?.Trim().Replace("-", string.Empty),

Check warning on line 22 in xChanger.Api/Services/Processings/ExternalPersons/ExternalPersonProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
PetThreeType = externalPerson.PetThreeType?.Trim().Replace("-", string.Empty)

Check warning on line 23 in xChanger.Api/Services/Processings/ExternalPersons/ExternalPersonProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
};
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//- - - - - - - - - - - - - - - - - - - - - - - - - -
// Copyright (c) Coalition of Good-Hearted Engineers
// Free to Use for Precise File Conversion
//- - - - - - - - - - - - - - - - - - - - - - - - - -

using xChanger.Api.Models.Foundations.ExternalPersons;

namespace xChanger.Api.Services.Processings.ExternalPersons
{
public interface IExternalPersonProcessingService
{
ExternalPerson ProcessExternalPerson(ExternalPerson externalPerson);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//- - - - - - - - - - - - - - - - - - - - - - - - - -
// Copyright (c) Coalition of Good-Hearted Engineers
// Free to Use for Precise File Conversion
//- - - - - - - - - - - - - - - - - - - - - - - - - -

using xChanger.Api.Models.Foundations.Persons;

namespace xChanger.Api.Services.Processings.Persons
{
public interface IPersonProcessingService
{
Person ProcessPerson(Person person);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//- - - - - - - - - - - - - - - - - - - - - - - - - -
// Copyright (c) Coalition of Good-Hearted Engineers
// Free to Use for Precise File Conversion
//- - - - - - - - - - - - - - - - - - - - - - - - - -

using xChanger.Api.Models.Foundations.Persons;

namespace xChanger.Api.Services.Processings.Persons
{
public class PersonProcessingService : IPersonProcessingService
{
public Person ProcessPerson(Person person)
{
return new Person
{
Id = person.Id,
Name = person.Name?.Trim(),

Check warning on line 17 in xChanger.Api/Services/Processings/Persons/PersonProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
Age = person.Age
};
}
}
}
14 changes: 14 additions & 0 deletions xChanger.Api/Services/Processings/Pets/IPetProcessingService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//- - - - - - - - - - - - - - - - - - - - - - - - - -
// Copyright (c) Coalition of Good-Hearted Engineers
// Free to Use for Precise File Conversion
//- - - - - - - - - - - - - - - - - - - - - - - - - -

using xChanger.Api.Models.Foundations.Pets;

namespace xChanger.Api.Services.Processings.Pets
{
public interface IPetProcessingService
{
Pet ProcessPet(Pet pet);
}
}
22 changes: 22 additions & 0 deletions xChanger.Api/Services/Processings/Pets/PetProcessingService.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//- - - - - - - - - - - - - - - - - - - - - - - - - -
// Copyright (c) Coalition of Good-Hearted Engineers
// Free to Use for Precise File Conversion
//- - - - - - - - - - - - - - - - - - - - - - - - - -

using xChanger.Api.Models.Foundations.Pets;

namespace xChanger.Api.Services.Processings.Pets
{
public class PetProcessingService : IPetProcessingService
{
public Pet ProcessPet(Pet pet)
{
return new Pet
{
Id = pet.Id,
Name = pet.Name?.Trim(),

Check warning on line 17 in xChanger.Api/Services/Processings/Pets/PetProcessingService.cs

View workflow job for this annotation

GitHub Actions / Build

Possible null reference assignment.
Type = pet.Type
};
}
}
}
Loading