Skip to content

Commit

Permalink
Project switching, reference nodes, .Net 5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Steffen Nörtershäuser committed Jan 17, 2021
1 parent f90bdfa commit 6ea236c
Show file tree
Hide file tree
Showing 461 changed files with 13,266 additions and 5,624 deletions.
6 changes: 5 additions & 1 deletion Config/MiscConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,11 @@ public class MiscConfig
/// <summary>
/// CSV Delimiter
/// </summary>
/// <value></value>
public string CsvDelimiter { get; set; }

/// <summary>
/// Timeout for locks
/// </summary>
public int? ResourceLockTimespan { get; set;}
}
}
5 changes: 5 additions & 0 deletions Constants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,10 @@ public class Constants
/// Minium Password Length
/// </summary>
public const int MinPasswordLength = 8;

/// <summary>
/// Default timespan for resource locks
/// </summary>
public const int DefaultResourceLockTimespan = 2;
};
}
120 changes: 86 additions & 34 deletions Controllers/Api/AikaApiController.cs

Large diffs are not rendered by default.

40 changes: 32 additions & 8 deletions Controllers/Api/EvneApiController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
using System.Globalization;
using Microsoft.AspNetCore.Http;
using GoNorth.Services.CsvHandling;
using GoNorth.Services.Project;
using GoNorth.Services.Export.ExportSnippets;

namespace GoNorth.Controllers.Api
{
Expand Down Expand Up @@ -149,20 +151,21 @@ public class EvneApiController : FlexFieldBaseApiController<EvneSkill>
/// <param name="folderDbAccess">Folder Db Access</param>
/// <param name="templateDbAccess">Template Db Access</param>
/// <param name="skillDbAccess">Skill Db Access</param>
/// <param name="projectDbAccess">User Db Access</param>
/// <param name="tagDbAccess">Tag Db Access</param>
/// <param name="exportTemplateDbAccess">Export Template Db Access</param>
/// <param name="importFieldValuesLogDbAccess">Import field values log Db Access</param>
/// <param name="languageKeyDbAccess">Language Key Db Access</param>
/// <param name="exportFunctionIdDbAccess">Export Function Id Db Access</param>
/// <param name="objectExportSnippetDbAccess">Object export snippet Db Access</param>
/// <param name="objectExportSnippetSnapshotDbAccess">Object export snippet snapshot Db Access</param>
/// <param name="exportSnippetRelatedObjectNameResolver">Service that will resolve export snippet related object names</param>
/// <param name="imageAccess">Skill Image Access</param>
/// <param name="thumbnailService">Thumbnail Service</param>
/// <param name="aikaQuestDbAccess">Aika Quest Db ACcess</param>
/// <param name="kirjaPageDbAccess">Kirja Page Db Access</param>
/// <param name="taleDbAccess">Tale Db Access</param>
/// <param name="kortistoNpcDbAccess">Kortisto Npc Db Access</param>
/// <param name="userProjectAccess">User project Access</param>
/// <param name="csvGenerator">CSV Generator</param>
/// <param name="csvReader">CSV Reader</param>
/// <param name="userManager">User Manager</param>
Expand All @@ -171,12 +174,12 @@ public class EvneApiController : FlexFieldBaseApiController<EvneSkill>
/// <param name="xssChecker">Xss Checker</param>
/// <param name="logger">Logger</param>
/// <param name="localizerFactory">Localizer Factory</param>
public EvneApiController(IEvneFolderDbAccess folderDbAccess, IEvneSkillTemplateDbAccess templateDbAccess, IEvneSkillDbAccess skillDbAccess, IProjectDbAccess projectDbAccess, IEvneSkillTagDbAccess tagDbAccess, IExportTemplateDbAccess exportTemplateDbAccess, ILanguageKeyDbAccess languageKeyDbAccess, IEvneImportFieldValuesLogDbAccess importFieldValuesLogDbAccess,
IExportFunctionIdDbAccess exportFunctionIdDbAccess, IObjectExportSnippetDbAccess objectExportSnippetDbAccess, IObjectExportSnippetSnapshotDbAccess objectExportSnippetSnapshotDbAccess, IEvneSkillImageAccess imageAccess, IEvneThumbnailService thumbnailService, IAikaQuestDbAccess aikaQuestDbAccess,
ITaleDbAccess taleDbAccess, IKirjaPageDbAccess kirjaPageDbAccess, IKortistoNpcDbAccess kortistoNpcDbAccess, ICsvGenerator csvGenerator, ICsvParser csvReader, UserManager<GoNorthUser> userManager, IImplementationStatusComparer implementationStatusComparer, ITimelineService timelineService,
IXssChecker xssChecker, ILogger<EvneApiController> logger, IStringLocalizerFactory localizerFactory)
: base(folderDbAccess, templateDbAccess, skillDbAccess, projectDbAccess, tagDbAccess, exportTemplateDbAccess, importFieldValuesLogDbAccess, languageKeyDbAccess, exportFunctionIdDbAccess, objectExportSnippetDbAccess, objectExportSnippetSnapshotDbAccess, imageAccess, thumbnailService, csvGenerator, csvReader,
userManager, implementationStatusComparer, timelineService, xssChecker, logger, localizerFactory)
public EvneApiController(IEvneFolderDbAccess folderDbAccess, IEvneSkillTemplateDbAccess templateDbAccess, IEvneSkillDbAccess skillDbAccess, IEvneSkillTagDbAccess tagDbAccess, IExportTemplateDbAccess exportTemplateDbAccess, ILanguageKeyDbAccess languageKeyDbAccess, IEvneImportFieldValuesLogDbAccess importFieldValuesLogDbAccess,
IExportFunctionIdDbAccess exportFunctionIdDbAccess, IObjectExportSnippetDbAccess objectExportSnippetDbAccess, IObjectExportSnippetSnapshotDbAccess objectExportSnippetSnapshotDbAccess, IExportSnippetRelatedObjectNameResolver exportSnippetRelatedObjectNameResolver, IEvneSkillImageAccess imageAccess,
IEvneThumbnailService thumbnailService, IAikaQuestDbAccess aikaQuestDbAccess, ITaleDbAccess taleDbAccess, IKirjaPageDbAccess kirjaPageDbAccess, IKortistoNpcDbAccess kortistoNpcDbAccess, IUserProjectAccess userProjectAccess, ICsvGenerator csvGenerator, ICsvParser csvReader, UserManager<GoNorthUser> userManager,
IImplementationStatusComparer implementationStatusComparer, ITimelineService timelineService, IXssChecker xssChecker, ILogger<EvneApiController> logger, IStringLocalizerFactory localizerFactory)
: base(folderDbAccess, templateDbAccess, skillDbAccess, tagDbAccess, exportTemplateDbAccess, importFieldValuesLogDbAccess, languageKeyDbAccess, exportFunctionIdDbAccess, objectExportSnippetDbAccess, objectExportSnippetSnapshotDbAccess, exportSnippetRelatedObjectNameResolver, userProjectAccess, imageAccess,
thumbnailService, csvGenerator, csvReader, userManager, implementationStatusComparer, timelineService, xssChecker, logger, localizerFactory)
{
_aikaQuestDbAccess = aikaQuestDbAccess;
_taleDbAccess = taleDbAccess;
Expand Down Expand Up @@ -299,6 +302,13 @@ protected override async Task<string> CheckObjectReferences(string id)
return _localizer["CanNotDeleteSkillUsedInDailyRoutine", usedInDailyRoutines].Value;
}

List<EvneSkill> referencedInSkills = await ((IEvneSkillDbAccess)_objectDbAccess).GetSkillsObjectIsReferencedIn(id);
if(referencedInSkills.Count > 0)
{
string referencedInSkillsString = string.Join(", ", referencedInSkills.Select(n => n.Name));
return _localizer["CanNotDeleteSkillUsedInSkill", referencedInSkillsString].Value;
}

return string.Empty;
}

Expand All @@ -324,6 +334,7 @@ protected override Task<EvneSkill> RunAdditionalUpdates(EvneSkill flexFieldObjec
loadedFlexFieldObject.Action = flexFieldObject.Action != null ? flexFieldObject.Action : new List<ActionNode>();
loadedFlexFieldObject.Condition = flexFieldObject.Condition != null ? flexFieldObject.Condition : new List<ConditionNode>();
loadedFlexFieldObject.Link = flexFieldObject.Link != null ? flexFieldObject.Link : new List<NodeLink>();
loadedFlexFieldObject.Reference = flexFieldObject.Reference != null ? flexFieldObject.Reference : new List<ReferenceNode>();

return Task.FromResult(loadedFlexFieldObject);
}
Expand Down Expand Up @@ -361,7 +372,7 @@ protected override async Task<CompareResult> CompareObjectWithImplementationSnap
[HttpGet]
public async Task<IActionResult> GetNotImplementedSkills(int start, int pageSize)
{
GoNorthProject project = await _projectDbAccess.GetDefaultProject();
GoNorthProject project = await _userProjectAccess.GetUserProject();
Task<List<EvneSkill>> queryTask;
Task<int> countTask;
queryTask = _objectDbAccess.GetNotImplementedFlexFieldObjects(project.Id, start, pageSize, CultureInfo.CurrentUICulture.TwoLetterISOLanguageName);
Expand All @@ -374,5 +385,18 @@ public async Task<IActionResult> GetNotImplementedSkills(int start, int pageSize
return Ok(queryResult);
}

/// <summary>
/// Returns all skills an object is referenced in (excluding the skill itselfs)
/// </summary>
/// <param name="objectId">Object id</param>
/// <returns>Skills</returns>
[ProducesResponseType(typeof(List<EvneSkill>), StatusCodes.Status200OK)]
[HttpGet]
public async Task<IActionResult> GetSkillsObjectIsReferencedIn(string objectId)
{
List<EvneSkill> skills = await ((IEvneSkillDbAccess)_objectDbAccess).GetSkillsObjectIsReferencedIn(objectId);
return Ok(skills);
}

}
}

0 comments on commit 6ea236c

Please sign in to comment.