This commit is contained in:
@@ -75,7 +75,9 @@ NOTES FOR DOCS
|
|||||||
- LOCALES
|
- LOCALES
|
||||||
- MUST be a default locale set before import because new raven keys will be added to imported v7 locale using the default locale only
|
- MUST be a default locale set before import because new raven keys will be added to imported v7 locale using the default locale only
|
||||||
- IMPORTED USERS
|
- IMPORTED USERS
|
||||||
- login and passwords are not imported and need to be setup again after import
|
- In order to ensure security imported users are not imported ready to login but rather must be edited individually after import:
|
||||||
- no Authorization Role is set and therefore no rights to anything. A role needs to be set after import for each user
|
- All users are imported with Active status set to false and must be individually edited and set to Active=true as required
|
||||||
|
- login and passwords are not imported and need to be individually set after import as required
|
||||||
|
- no Authorization Role is set and therefore no rights to anything. A role needs to be set after import for each user
|
||||||
- TAGS, the following objects are imported as tags
|
- TAGS, the following objects are imported as tags
|
||||||
- TODO: List of objects
|
- TODO: List of objects
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ Overall plan for now: anything standing in the way of making the initial client
|
|||||||
- NEED a document with checklist to go over to ensure that a v7 object ported to RAVEN is "DONE" i.e. not missing any biz rules or properties or something
|
- NEED a document with checklist to go over to ensure that a v7 object ported to RAVEN is "DONE" i.e. not missing any biz rules or properties or something
|
||||||
- Tag groups (modify tags already coded)
|
- Tag groups (modify tags already coded)
|
||||||
- Localized text
|
- Localized text
|
||||||
|
- ** DEVISE a system to ensure no unused keys are brought forward to raven
|
||||||
- Search and search text indexing
|
- Search and search text indexing
|
||||||
- Auto visible id number assigning code
|
- Auto visible id number assigning code
|
||||||
- User routes for create update delete the core User object (no user settings in it) {also see rights in BizRoles.cs as it is not fully fleshed out yet}
|
- User routes for create update delete the core User object (no user settings in it) {also see rights in BizRoles.cs as it is not fully fleshed out yet}
|
||||||
|
|||||||
@@ -40,13 +40,7 @@ namespace AyaNova.Biz
|
|||||||
//CREATE
|
//CREATE
|
||||||
internal async Task<Tag> CreateAsync(string inObj)
|
internal async Task<Tag> CreateAsync(string inObj)
|
||||||
{
|
{
|
||||||
//Must be lowercase per rules
|
inObj = CleanTagName(inObj);
|
||||||
//This may be naive when we get international customers but for now supporting utf-8 and it appears it's safe to do this with unicode
|
|
||||||
inObj = inObj.ToLowerInvariant();
|
|
||||||
|
|
||||||
//No spaces in tags, replace with dashes
|
|
||||||
inObj = inObj.Replace(" ", "-");
|
|
||||||
|
|
||||||
Validate(inObj, true);
|
Validate(inObj, true);
|
||||||
if (HasErrors)
|
if (HasErrors)
|
||||||
return null;
|
return null;
|
||||||
@@ -65,6 +59,22 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string CleanTagName(string inObj)
|
||||||
|
{
|
||||||
|
//Must be lowercase per rules
|
||||||
|
//This may be naive when we get international customers but for now supporting utf-8 and it appears it's safe to do this with unicode
|
||||||
|
inObj = inObj.ToLowerInvariant();
|
||||||
|
//No spaces in tags, replace with dashes
|
||||||
|
inObj = inObj.Replace(" ", "-");
|
||||||
|
//Remove multiple dash sequences
|
||||||
|
inObj = System.Text.RegularExpressions.Regex.Replace(inObj, "-+", "-");
|
||||||
|
//Ensure doesn't start or end with a dash
|
||||||
|
inObj = inObj.Trim('-');
|
||||||
|
//No longer than 35 characters
|
||||||
|
inObj = StringUtil.MaxLength(inObj, 35);
|
||||||
|
return inObj;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
/// GET
|
/// GET
|
||||||
|
|
||||||
@@ -142,6 +152,8 @@ namespace AyaNova.Biz
|
|||||||
//put
|
//put
|
||||||
internal bool Put(Tag dbObj, Tag inObj)
|
internal bool Put(Tag dbObj, Tag inObj)
|
||||||
{
|
{
|
||||||
|
//Ensure it follows the rules
|
||||||
|
inObj.Name = CleanTagName(inObj.Name);
|
||||||
|
|
||||||
//Replace the db object with the PUT object
|
//Replace the db object with the PUT object
|
||||||
CopyObject.Copy(inObj, dbObj, "Id");
|
CopyObject.Copy(inObj, dbObj, "Id");
|
||||||
@@ -149,10 +161,6 @@ 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;
|
||||||
|
|
||||||
//Must be lowercase per rules
|
|
||||||
//This may be naive when we get international customers but for now supporting utf-8 and it appears it's safe to do this with unicode
|
|
||||||
dbObj.Name = dbObj.Name.ToLowerInvariant();
|
|
||||||
|
|
||||||
Validate(dbObj.Name, false);
|
Validate(dbObj.Name, false);
|
||||||
if (HasErrors)
|
if (HasErrors)
|
||||||
return false;
|
return false;
|
||||||
@@ -166,7 +174,8 @@ namespace AyaNova.Biz
|
|||||||
//Do the patching
|
//Do the patching
|
||||||
objectPatch.ApplyTo(dbObj);
|
objectPatch.ApplyTo(dbObj);
|
||||||
ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = concurrencyToken;
|
ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = concurrencyToken;
|
||||||
dbObj.Name = dbObj.Name.ToLowerInvariant();
|
//Ensure it follows the rules
|
||||||
|
dbObj.Name = CleanTagName(dbObj.Name);
|
||||||
Validate(dbObj.Name, false);
|
Validate(dbObj.Name, false);
|
||||||
if (HasErrors)
|
if (HasErrors)
|
||||||
return false;
|
return false;
|
||||||
@@ -251,8 +260,8 @@ namespace AyaNova.Biz
|
|||||||
var NewTagName = j["Name"].Value<string>();
|
var NewTagName = j["Name"].Value<string>();
|
||||||
var OldV7Id = new Guid(j["ID"].Value<string>());
|
var OldV7Id = new Guid(j["ID"].Value<string>());
|
||||||
|
|
||||||
//In RAVEN tags can only be 35 characters
|
//Ensure it follows the rules
|
||||||
NewTagName = StringUtil.MaxLength(NewTagName, 35);
|
NewTagName = CleanTagName(NewTagName);
|
||||||
|
|
||||||
//There might already be a tag of the same name since so many different types of V7 objects are becoming tags
|
//There might already be a tag of the same name since so many different types of V7 objects are becoming tags
|
||||||
//Weighed the pros and cons of uniquifying by object type versus just using the same name for different object types:
|
//Weighed the pros and cons of uniquifying by object type versus just using the same name for different object types:
|
||||||
|
|||||||
@@ -436,7 +436,7 @@ namespace AyaNova.Biz
|
|||||||
i.UserType = UserType.Subcontractor;
|
i.UserType = UserType.Subcontractor;
|
||||||
}
|
}
|
||||||
|
|
||||||
i.Active = j["Active"].Value<bool>();
|
i.Active = false;//Ignore incoming value and set all imports to false so that there's no chance of licensing getting circumvented; users all need to be edited anyway for pw and login
|
||||||
i.EmployeeNumber = j["EmployeeNumber"].Value<string>();
|
i.EmployeeNumber = j["EmployeeNumber"].Value<string>();
|
||||||
i.Notes = j["Notes"].Value<string>();
|
i.Notes = j["Notes"].Value<string>();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user