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
13 changes: 10 additions & 3 deletions ResourceInformationV2.Data/DataHelpers/InstructionHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,43 @@ namespace ResourceInformationV2.Data.DataHelpers {
public class InstructionHelper(ResourceRepository resourceRepository) {
private readonly ResourceRepository _resourceRepository = resourceRepository;

public async Task<(List<Instruction>, bool)> GetInstructions(string code, CategoryType categoryType) {
public async Task<(List<Instruction>, bool, bool)> GetInstructions(string code, CategoryType categoryType) {
var instructions = (await _resourceRepository.ReadAsync(c => c.Instructions.Include(i => i.Source).Where(i => i.CategoryType == categoryType && i.Source.Code == code))).ToList();
var source = instructions == null || instructions.Count == 0 ? await _resourceRepository.ReadAsync(c => c.Sources.FirstOrDefault(s => s.Code == code)) : instructions[0].Source;
bool isUsed = false;
var isUsed = false;
var useFragment = false;
switch (categoryType) {
case CategoryType.Event:
isUsed = source?.UseEvents ?? false;
useFragment = source?.UseEventsFragment ?? false;
break;

case CategoryType.Faq:
isUsed = source?.UseFaqs ?? false;
useFragment = source?.UseFaqsFragment ?? false;
break;

case CategoryType.Note:
isUsed = source?.UseNotes ?? false;
useFragment = source?.UseNotesFragment ?? false;
break;

case CategoryType.Person:
isUsed = source?.UsePeople ?? false;
useFragment = source?.UsePeopleFragment ?? false;
break;

case CategoryType.Publication:
isUsed = source?.UsePublications ?? false;
useFragment = source?.UsePublicationsFragment ?? false;
break;

case CategoryType.Resource:
isUsed = source?.UseResources ?? false;
useFragment = source?.UseResourcesFragment ?? false;
break;
}
return (instructions ?? [], isUsed);
return (instructions ?? [], isUsed, useFragment);
}

public async Task<string> GetInstructionText(string sourceCode, CategoryType categoryType, FieldType fieldType) => await _resourceRepository
Expand Down
37 changes: 36 additions & 1 deletion ResourceInformationV2.Data/DataHelpers/SourceHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,35 @@
return false;
}

public async Task<bool> DoesSourceUseFragment(string sourceCode, CategoryType categoryType) {
var source = await _resourceRepository.ReadAsync(c => c.Sources.FirstOrDefault(s => s.Code == sourceCode));
if (source == null) {
return false;
}
switch (categoryType) {
case CategoryType.Event:
return source.UseEventsFragment;

case CategoryType.Faq:
return source.UseFaqsFragment;

case CategoryType.Note:
return source.UseNotesFragment;

case CategoryType.Resource:
return source.UseResourcesFragment;

case CategoryType.Person:
return source.UsePeopleFragment;

case CategoryType.Publication:
return source.UsePublicationsFragment;
case CategoryType.None:
break;
}
return false;
}

public async Task<(bool eventItem, bool faqItem, bool noteItem, bool resourceItem, bool personItem, bool publicationItem)> DoesSourceUseItemCheckAll(string sourceCode) {
var source = await _resourceRepository.ReadAsync(c => c.Sources.FirstOrDefault(s => s.Code == sourceCode));
return source == null ? (false, false, false, false, false, false) :
Expand Down Expand Up @@ -123,7 +152,7 @@
return "";
}

public async Task<Dictionary<string, string>> GetSources(string netId) => await _resourceRepository.ReadAsync(c => c.SecurityEntries.Include(se => se.Source).Where(se => se.IsActive && !se.IsRequested && se.Email == netId && se.Source != null).OrderBy(se => se.Source.Title).ToDictionary(se => se.Source?.Code ?? "", se2 => se2.Source?.Title ?? ""));

Check warning on line 155 in ResourceInformationV2.Data/DataHelpers/SourceHelper.cs

View workflow job for this annotation

GitHub Actions / build-and-deploy

Dereference of a possibly null reference.

Check warning on line 155 in ResourceInformationV2.Data/DataHelpers/SourceHelper.cs

View workflow job for this annotation

GitHub Actions / build-and-deploy

Dereference of a possibly null reference.

Check warning on line 155 in ResourceInformationV2.Data/DataHelpers/SourceHelper.cs

View workflow job for this annotation

GitHub Actions / build

Dereference of a possibly null reference.

public async Task<IEnumerable<Tuple<string, string>>> GetSourcesAndOwners() => await _resourceRepository.ReadAsync(c => c.Sources.Where(s => s.IsActive).OrderBy(s => s.Title).Select(s => new Tuple<string, string>(s.CreatedByEmail, $"{s.Title} ({s.Code})")));

Expand Down Expand Up @@ -175,34 +204,40 @@
return source.Id;
}

public async Task<int> SetSourceItem(string sourceCode, CategoryType categoryType, bool isUsed) {
public async Task<int> SetSourceItem(string sourceCode, CategoryType categoryType, bool isUsed, bool useFragment) {
var source = await _resourceRepository.ReadAsync(c => c.Sources.FirstOrDefault(s => s.Code == sourceCode));
if (source == null) {
return 0;
}
switch (categoryType) {
case CategoryType.Event:
source.UseEvents = isUsed;
source.UseEventsFragment = useFragment;
break;

case CategoryType.Faq:
source.UseFaqs = isUsed;
source.UseFaqsFragment = useFragment;
break;

case CategoryType.Note:
source.UseNotes = isUsed;
source.UseNotesFragment = useFragment;
break;

case CategoryType.Resource:
source.UseResources = isUsed;
source.UseResourcesFragment = useFragment;
break;

case CategoryType.Person:
source.UsePeople = isUsed;
source.UsePeopleFragment = useFragment;
break;

case CategoryType.Publication:
source.UsePublications = isUsed;
source.UsePublicationsFragment = useFragment;
break;
}
_ = await _resourceRepository.UpdateAsync(source);
Expand Down
6 changes: 6 additions & 0 deletions ResourceInformationV2.Data/DataModels/Source.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,16 @@ public class Source : BaseDataItem {
public string ReviewEmail { get; set; } = "";
public string Title { get; set; } = "";
public bool UseEvents { get; set; }
public bool UseEventsFragment { get; set; }
public bool UseFaqs { get; set; }
public bool UseFaqsFragment { get; set; }
public bool UseNotes { get; set; }
public bool UseNotesFragment { get; set; }
public bool UsePeople { get; set; }
public bool UsePeopleFragment { get; set; }
public bool UsePublications { get; set; }
public bool UsePublicationsFragment { get; set; }
public bool UseResources { get; set; }
public bool UseResourcesFragment { get; set; }
}
}
Loading
Loading