This commit is contained in:
@@ -32,7 +32,7 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
|
|
||||||
//This is where active tech license consumers are accounted for
|
//This is where active tech license consumers are accounted for
|
||||||
internal static async Task<long> ActiveCount()
|
internal static async Task<long> ActiveCountAsync()
|
||||||
{
|
{
|
||||||
var ct = ServiceProviderProvider.DBContext;
|
var ct = ServiceProviderProvider.DBContext;
|
||||||
var ret = await ct.User.Where(x => x.Active == true && (x.UserType == UserType.Schedulable || x.UserType == UserType.Subcontractor)).LongCountAsync();
|
var ret = await ct.User.Where(x => x.Active == true && (x.UserType == UserType.Schedulable || x.UserType == UserType.Subcontractor)).LongCountAsync();
|
||||||
@@ -67,7 +67,7 @@ namespace AyaNova.Biz
|
|||||||
inObj.UserOptions = new UserOptions();
|
inObj.UserOptions = new UserOptions();
|
||||||
|
|
||||||
|
|
||||||
Validate(inObj, null);
|
await ValidateAsync(inObj, null);
|
||||||
if (HasErrors)
|
if (HasErrors)
|
||||||
return null;
|
return null;
|
||||||
else
|
else
|
||||||
@@ -80,10 +80,10 @@ namespace AyaNova.Biz
|
|||||||
//Handle child and associated items
|
//Handle child and associated items
|
||||||
|
|
||||||
//Log event
|
//Log event
|
||||||
EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, inObj.Id, BizType, AyaEvent.Created), ct);
|
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, inObj.Id, BizType, AyaEvent.Created), ct);
|
||||||
|
|
||||||
//SEARCH INDEXING
|
//SEARCH INDEXING
|
||||||
SearchIndex(inObj, true);
|
await SearchIndexAsync(inObj, true);
|
||||||
|
|
||||||
//TAGS
|
//TAGS
|
||||||
TagUtil.ProcessUpdateTagsInRepositoryAsync(ct, inObj.Tags, null);
|
TagUtil.ProcessUpdateTagsInRepositoryAsync(ct, inObj.Tags, null);
|
||||||
@@ -108,7 +108,7 @@ namespace AyaNova.Biz
|
|||||||
if (inObj.UserOptions == null)
|
if (inObj.UserOptions == null)
|
||||||
inObj.UserOptions = new UserOptions();
|
inObj.UserOptions = new UserOptions();
|
||||||
|
|
||||||
Validate(inObj, null);
|
ValidateAsync(inObj, null);
|
||||||
if (HasErrors)
|
if (HasErrors)
|
||||||
return null;
|
return null;
|
||||||
else
|
else
|
||||||
@@ -125,7 +125,7 @@ namespace AyaNova.Biz
|
|||||||
EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, inObj.Id, BizType, AyaEvent.Created), TempContext);
|
EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, inObj.Id, BizType, AyaEvent.Created), TempContext);
|
||||||
|
|
||||||
//SEARCH INDEXING
|
//SEARCH INDEXING
|
||||||
SearchIndex(inObj, true);
|
SearchIndexAsync(inObj, true);
|
||||||
|
|
||||||
//TAGS
|
//TAGS
|
||||||
TagUtil.ProcessUpdateTagsInRepositoryAsync(TempContext, inObj.Tags, null);
|
TagUtil.ProcessUpdateTagsInRepositoryAsync(TempContext, inObj.Tags, null);
|
||||||
@@ -295,7 +295,7 @@ namespace AyaNova.Biz
|
|||||||
//this will allow EF to check it out
|
//this will allow EF to check it out
|
||||||
ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = inObj.ConcurrencyToken;
|
ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = inObj.ConcurrencyToken;
|
||||||
|
|
||||||
Validate(dbObj, SnapshotOfOriginalDBObj);
|
ValidateAsync(dbObj, SnapshotOfOriginalDBObj);
|
||||||
if (HasErrors)
|
if (HasErrors)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -303,7 +303,7 @@ namespace AyaNova.Biz
|
|||||||
//Log modification and save context
|
//Log modification and save context
|
||||||
EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObj.Id, BizType, AyaEvent.Modified), ct);
|
EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObj.Id, BizType, AyaEvent.Modified), ct);
|
||||||
|
|
||||||
SearchIndex(dbObj, false);
|
SearchIndexAsync(dbObj, false);
|
||||||
|
|
||||||
TagUtil.ProcessUpdateTagsInRepositoryAsync(ct, dbObj.Tags, SnapshotOfOriginalDBObj.Tags);
|
TagUtil.ProcessUpdateTagsInRepositoryAsync(ct, dbObj.Tags, SnapshotOfOriginalDBObj.Tags);
|
||||||
|
|
||||||
@@ -333,13 +333,13 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
|
|
||||||
ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = concurrencyToken;
|
ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = concurrencyToken;
|
||||||
Validate(dbObj, SnapshotOfOriginalDBObj);
|
ValidateAsync(dbObj, SnapshotOfOriginalDBObj);
|
||||||
if (HasErrors)
|
if (HasErrors)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
//Log modification and save context
|
//Log modification and save context
|
||||||
EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObj.Id, BizType, AyaEvent.Modified), ct);
|
EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObj.Id, BizType, AyaEvent.Modified), ct);
|
||||||
SearchIndex(dbObj, false);
|
SearchIndexAsync(dbObj, false);
|
||||||
|
|
||||||
TagUtil.ProcessUpdateTagsInRepositoryAsync(ct, dbObj.Tags, SnapshotOfOriginalDBObj.Tags);
|
TagUtil.ProcessUpdateTagsInRepositoryAsync(ct, dbObj.Tags, SnapshotOfOriginalDBObj.Tags);
|
||||||
|
|
||||||
@@ -347,16 +347,16 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void SearchIndex(User obj, bool isNew)
|
private async Task SearchIndexAsync(User obj, bool isNew)
|
||||||
{
|
{
|
||||||
//SEARCH INDEXING
|
//SEARCH INDEXING
|
||||||
var SearchParams = new Search.SearchIndexProcessObjectParameters(UserLocaleId, obj.Id, BizType, obj.Name);
|
var SearchParams = new Search.SearchIndexProcessObjectParameters(UserLocaleId, obj.Id, BizType, obj.Name);
|
||||||
SearchParams.AddText(obj.Notes).AddText(obj.Name).AddText(obj.EmployeeNumber).AddText(obj.Tags).AddCustomFields(obj.CustomFields);
|
SearchParams.AddText(obj.Notes).AddText(obj.Name).AddText(obj.EmployeeNumber).AddText(obj.Tags).AddCustomFields(obj.CustomFields);
|
||||||
|
|
||||||
if (isNew)
|
if (isNew)
|
||||||
Search.ProcessNewObjectKeywordsAsync(SearchParams);
|
await Search.ProcessNewObjectKeywordsAsync(SearchParams);
|
||||||
else
|
else
|
||||||
Search.ProcessUpdatedObjectKeywordsAsync(SearchParams);
|
await Search.ProcessUpdatedObjectKeywordsAsync(SearchParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ namespace AyaNova.Biz
|
|||||||
//
|
//
|
||||||
|
|
||||||
//Can save or update?
|
//Can save or update?
|
||||||
private void Validate(User proposedObj, User currentObj)
|
private async Task ValidateAsync(User proposedObj, User currentObj)
|
||||||
{
|
{
|
||||||
//run validation and biz rules
|
//run validation and biz rules
|
||||||
bool isNew = currentObj == null;
|
bool isNew = currentObj == null;
|
||||||
@@ -403,7 +403,7 @@ namespace AyaNova.Biz
|
|||||||
if (proposedObj.IsTech && proposedObj.Active)
|
if (proposedObj.IsTech && proposedObj.Active)
|
||||||
{
|
{
|
||||||
//Yes, it might be affected depending on things
|
//Yes, it might be affected depending on things
|
||||||
long CurrentActiveCount = UserBiz.ActiveCount;
|
long CurrentActiveCount = await UserBiz.ActiveCountAsync();
|
||||||
long LicensedUserCount = AyaNova.Core.License.ActiveKey.ActiveNumber;
|
long LicensedUserCount = AyaNova.Core.License.ActiveKey.ActiveNumber;
|
||||||
|
|
||||||
if (isNew)
|
if (isNew)
|
||||||
@@ -440,7 +440,7 @@ namespace AyaNova.Biz
|
|||||||
if (!PropertyHasErrors("Name"))
|
if (!PropertyHasErrors("Name"))
|
||||||
{
|
{
|
||||||
//Use Any command is efficient way to check existance, it doesn't return the record, just a true or false
|
//Use Any command is efficient way to check existance, it doesn't return the record, just a true or false
|
||||||
if (ct.User.Any(m => m.Name == proposedObj.Name && m.Id != proposedObj.Id))
|
if (await ct.User.AnyAsync(m => m.Name == proposedObj.Name && m.Id != proposedObj.Id))
|
||||||
{
|
{
|
||||||
AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, "Name");
|
AddError(ApiErrorCode.VALIDATION_NOT_UNIQUE, "Name");
|
||||||
}
|
}
|
||||||
@@ -531,7 +531,7 @@ namespace AyaNova.Biz
|
|||||||
AddError(ApiErrorCode.VALIDATION_LENGTH_EXCEEDED, "EmployeeNumber", "255 max");
|
AddError(ApiErrorCode.VALIDATION_LENGTH_EXCEEDED, "EmployeeNumber", "255 max");
|
||||||
|
|
||||||
//Any form customizations to validate?
|
//Any form customizations to validate?
|
||||||
var FormCustomization = ct.FormCustom.SingleOrDefault(x => x.FormKey == AyaFormFieldDefinitions.USER_KEY);
|
var FormCustomization = await ct.FormCustom.SingleOrDefaultAsync(x => x.FormKey == AyaFormFieldDefinitions.USER_KEY);
|
||||||
if (FormCustomization != null)
|
if (FormCustomization != null)
|
||||||
{
|
{
|
||||||
//Yeppers, do the validation, there are two, the custom fields and the regular fields that might be set to required
|
//Yeppers, do the validation, there are two, the custom fields and the regular fields that might be set to required
|
||||||
|
|||||||
Reference in New Issue
Block a user