This commit is contained in:
@@ -75,7 +75,9 @@ NOTES FOR DOCS
|
||||
- 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
|
||||
- IMPORTED USERS
|
||||
- login and passwords are not imported and need to be setup again after import
|
||||
- no Authorization Role is set and therefore no rights to anything. A role needs to be set after import for each user
|
||||
- In order to ensure security imported users are not imported ready to login but rather must be edited individually after import:
|
||||
- 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
|
||||
- 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
|
||||
- Tag groups (modify tags already coded)
|
||||
- Localized text
|
||||
- ** DEVISE a system to ensure no unused keys are brought forward to raven
|
||||
- Search and search text indexing
|
||||
- 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}
|
||||
|
||||
@@ -40,13 +40,7 @@ namespace AyaNova.Biz
|
||||
//CREATE
|
||||
internal async Task<Tag> CreateAsync(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(" ", "-");
|
||||
|
||||
inObj = CleanTagName(inObj);
|
||||
Validate(inObj, true);
|
||||
if (HasErrors)
|
||||
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
|
||||
|
||||
@@ -142,6 +152,8 @@ namespace AyaNova.Biz
|
||||
//put
|
||||
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
|
||||
CopyObject.Copy(inObj, dbObj, "Id");
|
||||
@@ -149,10 +161,6 @@ namespace AyaNova.Biz
|
||||
//this will allow EF to check it out
|
||||
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);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
@@ -166,7 +174,8 @@ namespace AyaNova.Biz
|
||||
//Do the patching
|
||||
objectPatch.ApplyTo(dbObj);
|
||||
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);
|
||||
if (HasErrors)
|
||||
return false;
|
||||
@@ -251,8 +260,8 @@ namespace AyaNova.Biz
|
||||
var NewTagName = j["Name"].Value<string>();
|
||||
var OldV7Id = new Guid(j["ID"].Value<string>());
|
||||
|
||||
//In RAVEN tags can only be 35 characters
|
||||
NewTagName = StringUtil.MaxLength(NewTagName, 35);
|
||||
//Ensure it follows the rules
|
||||
NewTagName = CleanTagName(NewTagName);
|
||||
|
||||
//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:
|
||||
|
||||
@@ -436,7 +436,7 @@ namespace AyaNova.Biz
|
||||
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.Notes = j["Notes"].Value<string>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user