This commit is contained in:
2020-12-30 00:32:47 +00:00
parent fe0fea3499
commit fe12a1310f

View File

@@ -163,20 +163,26 @@ namespace AyaNova.PlugIn.V8
#endregion
private Dictionary<Guid, long> Map = new Dictionary<Guid, long>();
private void AddMap(Guid v7id, long v8id)
//this holds all objects set to use banking
//so that as a final step the servicebank can iterate
//it and migrate (objects need to exist first in v8)
private Dictionary<Guid, RootObjectTypes> BankedObjects = new Dictionary<Guid, RootObjectTypes>();
private Dictionary<Guid, long> V7ToV8IdMap = new Dictionary<Guid, long>();
private void Addv7v8IdMap(Guid v7id, long v8id)
{
if (Map.ContainsKey(v7id))
if (V7ToV8IdMap.ContainsKey(v7id))
{
throw new Exception("Error: AddMap - v7id already mapped previously, id is " + v7id.ToString());
}
else Map.Add(v7id, v8id);
else V7ToV8IdMap.Add(v7id, v8id);
}
private bool IsDuplicateMapItem(Guid v7id, string name, ProgressForm progress)
private bool IsDuplicatev7v8IdMapItem(Guid v7id, string name, ProgressForm progress)
{
if (Map.ContainsKey(v7id))
if (V7ToV8IdMap.ContainsKey(v7id))
{
progress.Append("DUPLICATE: " + name + " - has duplicate ID, not exported");
return true;
@@ -184,20 +190,20 @@ namespace AyaNova.PlugIn.V8
return false;
}
private long GetMap(Guid id, string details)
private long Getv7v8IdMap(Guid id, string details)
{
if (!Map.ContainsKey(id))
if (!V7ToV8IdMap.ContainsKey(id))
{
throw new Exception("Error: GetMap (source id: " + id.ToString() + ") [" + details + "] - v7 Id not previously exported, missing or corrupted source data, export can not complete until fixed");
}
return Map[id];
return V7ToV8IdMap[id];
}
private long SafeGetUserMap(Guid id)
{
if (!Map.ContainsKey(id)) return 1;//1=raven administrator account
return Map[id];
if (!V7ToV8IdMap.ContainsKey(id)) return 1;//1=raven administrator account
return V7ToV8IdMap[id];
}
private enum RavenUserType : int
@@ -230,14 +236,14 @@ namespace AyaNova.PlugIn.V8
try
{
progress.Op("Preparing to export....");
Map.Clear();
V7ToV8IdMap.Clear();
TagMap.Clear();
LocaleMap.Clear();
//admin user (not exported but is there already)
Map.Add(User.AdministratorID, 1);
V7ToV8IdMap.Add(User.AdministratorID, 1);
//not sure if this is a good idea or not because in some cases would want to know if something is unexpectedly empty but will see for now
//Map.Add(Guid.Empty, 0);
@@ -330,7 +336,8 @@ namespace AyaNova.PlugIn.V8
//Must be after all root objects due to followups
await ExportScheduleMarkers(progress);
//must be after all clients, ho, units and workorders
await ExportServiceBank(progress);
//NOTE: when get to PRIORITY, or WORKORDER STATUS be sure to add color code as per already done in USER export
@@ -477,7 +484,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.FirstName + " " + c.LastName);
if (IsDuplicateMapItem(c.ID, c.FirstName + " " + c.LastName, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.FirstName + " " + c.LastName, progress)) continue;
progress.Op("User " + d.name);
//throw new System.Exception("TODO: UserTypes sb done differently now to align");
//TODO: User type
@@ -528,7 +535,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("user", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//USER OPTIONS
if (c.ScheduleBackColor != 0 || !string.IsNullOrWhiteSpace(c.EmailAddress))
@@ -636,7 +643,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.FirstName + " " + c.LastName);
if (IsDuplicateMapItem(c.ID, c.FirstName + " " + c.LastName, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.FirstName + " " + c.LastName, progress)) continue;
progress.Op("User " + d.name);
//throw new System.Exception("TODO: UserTypes sb done differently now to align");
//TODO: User type
@@ -668,17 +675,17 @@ namespace AyaNova.PlugIn.V8
if (c.VendorID != Guid.Empty)
{
d.userType = RavenUserType.ServiceContractor;
d.vendorId = GetMap(c.VendorID, "Vendor for subcontractor User " + d.name);
d.vendorId = Getv7v8IdMap(c.VendorID, "Vendor for subcontractor User " + d.name);
}
if (c.ClientID != Guid.Empty)
{
d.customerId = GetMap(c.ClientID, "Client for Client type User " + d.name); //Map[c.ClientID];
d.customerId = Getv7v8IdMap(c.ClientID, "Client for Client type User " + d.name); //Map[c.ClientID];
}
if (c.HeadOfficeID != Guid.Empty)
{
d.headOfficeId = GetMap(c.HeadOfficeID, "Headoffice for HeadOffice type User " + d.name); //Map[c.HeadOfficeID];
d.headOfficeId = Getv7v8IdMap(c.HeadOfficeID, "Headoffice for HeadOffice type User " + d.name); //Map[c.HeadOfficeID];
}
@@ -707,7 +714,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("user", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//USER OPTIONS
if (c.ScheduleBackColor != 0 || !string.IsNullOrWhiteSpace(c.EmailAddress))
@@ -762,7 +769,7 @@ namespace AyaNova.PlugIn.V8
{
if (!progress.KeepGoing) return;
User c = User.GetItem(i.ID);
var newId = GetMap(c.ID, "User for event log synchro. " + c.FirstName + " " + c.LastName); //Map[c.ID];
var newId = Getv7v8IdMap(c.ID, "User for event log synchro. " + c.FirstName + " " + c.LastName); //Map[c.ID];
var creator = SafeGetUserMap(c.Creator);
var modifier = SafeGetUserMap(c.Modifier);
@@ -846,7 +853,7 @@ namespace AyaNova.PlugIn.V8
*/
dynamic d = new JObject();
d.name = GetUniqueName(c.Name);
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
@@ -863,15 +870,17 @@ namespace AyaNova.PlugIn.V8
if (c.HeadOfficeID != Guid.Empty)
{
d.headOfficeId = GetMap(c.HeadOfficeID, "HeadOffice for Client " + d.name);
d.headOfficeId = Getv7v8IdMap(c.HeadOfficeID, "HeadOffice for Client " + d.name);
}
d.techNotes = c.TechNotes;
d.accountNumber = c.AccountNumber;
d.usesBanking = c.UsesBanking;
if (c.UsesBanking)
BankedObjects.Add(c.ID, RootObjectTypes.Client);
if (c.ContractID != Guid.Empty)
{
d.contractId = GetMap(c.ContractID, "Contract for Client " + d.name);
d.contractId = Getv7v8IdMap(c.ContractID, "Contract for Client " + d.name);
}
d.contractExpires = c.ContractExpires;//?? dates
//todo d.defaultServiceTemplateId = c.defaultservicetemplateid
@@ -905,7 +914,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("customer", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1049,7 +1058,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.Name);
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
@@ -1064,9 +1073,12 @@ namespace AyaNova.PlugIn.V8
d.accountNumber = c.AccountNumber;
d.usesBanking = c.UsesBanking;
if (c.UsesBanking)
BankedObjects.Add(c.ID, RootObjectTypes.HeadOffice);
if (c.ContractID != Guid.Empty)
{
d.contractId = GetMap(c.ContractID, "Contract for Head Office " + d.name);
d.contractId = Getv7v8IdMap(c.ContractID, "Contract for Head Office " + d.name);
}
d.contractExpires = c.ContractExpires;//?? dates
@@ -1103,7 +1115,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("head-office", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1207,7 +1219,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.Name);
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
@@ -1221,7 +1233,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("contract", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1284,7 +1296,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.Name);
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
@@ -1297,7 +1309,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("loan-unit", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1361,7 +1373,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(i.DisplayName(AyaBizUtils.GlobalSettings.DefaultPartDisplayFormat));//todo: temporary for testing
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
@@ -1375,7 +1387,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("part", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1437,7 +1449,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.Name);
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
@@ -1456,7 +1468,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("project", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1516,7 +1528,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = c.PONumber.ToString();
if (IsDuplicateMapItem(c.ID, i.LT_PurchaseOrder_Label_PONumber.Display, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, i.LT_PurchaseOrder_Label_PONumber.Display, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
// d.active = c.Active;
d.notes = c.Notes;
@@ -1529,7 +1541,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("purchase-order", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1586,20 +1598,23 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.Serial);
if (IsDuplicateMapItem(c.ID, c.Serial, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Serial, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
// Tagit(c.RegionID, tags);
SetTags(d, tags);
if (c.UsesBanking)
BankedObjects.Add(c.ID, RootObjectTypes.Unit);
//Custom fields?
if (ShouldExportCustom)
d.customFields = CustomFieldData(c, DateCustomFields);
var rMainObject = await util.PostAsync("unit", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1664,7 +1679,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.Name);
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
d.notes = c.Notes;
@@ -1678,7 +1693,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("unit-model", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1739,7 +1754,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(c.Name);
if (IsDuplicateMapItem(c.ID, c.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = c.Active;
@@ -1794,7 +1809,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("vendor", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
//Attachments / FILES
await ExportAttachments(ObjectTID, progress);
@@ -1852,7 +1867,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(i.Name);
if (IsDuplicateMapItem(i.ID, i.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(i.ID, i.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = i.Active;
d.notes = i.Description;
@@ -1881,7 +1896,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync(route, d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(i.ID, RavenId);
Addv7v8IdMap(i.ID, RavenId);
//-----
@@ -1907,7 +1922,7 @@ namespace AyaNova.PlugIn.V8
TaxCodes pl = TaxCodes.GetItems();
progress.Append("Exporting " + pl.Count.ToString() + " " + ObjectTypeName + "s");
foreach (TaxCode i in pl)
{
@@ -1917,20 +1932,20 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
d.name = GetUniqueName(i.Name);
if (IsDuplicateMapItem(i.ID, i.Name, progress)) continue;
if (IsDuplicatev7v8IdMapItem(i.ID, i.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = i.Active;
d.taxA = i.TaxA;
d.taxB = i.TaxB;
d.taxOnTax = i.TaxOnTax;
SetTags(d, tags);
var rMainObject = await util.PostAsync("tax-code", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(i.ID, RavenId);
Addv7v8IdMap(i.ID, RavenId);
//-----
@@ -1941,8 +1956,7 @@ namespace AyaNova.PlugIn.V8
}
}
#endregion Tax codes
#region Memos
private async System.Threading.Tasks.Task ExportMemos(ProgressForm progress)
{
@@ -2029,7 +2043,7 @@ namespace AyaNova.PlugIn.V8
tags.Add(ImportTag);
Workorder c = Workorder.GetItem(i.LT_O_Workorder.Value);
if (IsDuplicateMapItem(c.ID, c.WorkorderService.ServiceNumber.ToString(), progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.WorkorderService.ServiceNumber.ToString(), progress)) continue;
var ObjectTID = new TypeAndID(RootObjectTypes.WorkorderService, c.ID);
@@ -2045,7 +2059,7 @@ namespace AyaNova.PlugIn.V8
var rMainObject = await util.PostAsync("workorder", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
d = rMainObject.ObjectResponse["data"];
d.serial = c.WorkorderService.ServiceNumber;
d.notes = c.Summary;
@@ -2137,12 +2151,12 @@ namespace AyaNova.PlugIn.V8
tags.Add(ImportTag);
Workorder c = Workorder.GetItem(i.LT_O_WorkorderQuote.Value);
if (IsDuplicateMapItem(c.ID, c.WorkorderQuote.QuoteNumber.ToString(), progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.WorkorderQuote.QuoteNumber.ToString(), progress)) continue;
var ObjectTID = new TypeAndID(RootObjectTypes.WorkorderQuote, c.ID);
//make one on the server to update
var rMainObject = await util.PostAsync("quote" + "/Create?serial=" + c.WorkorderQuote.QuoteNumber);
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
dynamic d = new JObject();
d.concurrency = util.CTokenFromResponse(rMainObject);
@@ -2217,12 +2231,12 @@ namespace AyaNova.PlugIn.V8
tags.Add(ImportTag);
Workorder c = Workorder.GetItem(i.LT_O_WorkorderPreventiveMaintenance.Value);
if (IsDuplicateMapItem(c.ID, c.WorkorderPreventiveMaintenance.PreventiveMaintenanceNumber.ToString(), progress)) continue;
if (IsDuplicatev7v8IdMapItem(c.ID, c.WorkorderPreventiveMaintenance.PreventiveMaintenanceNumber.ToString(), progress)) continue;
var ObjectTID = new TypeAndID(RootObjectTypes.WorkorderPreventiveMaintenance, c.ID);
//make one on the server to update
var rMainObject = await util.PostAsync("pm" + "/Create?serial=" + c.WorkorderPreventiveMaintenance.PreventiveMaintenanceNumber);
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
dynamic d = new JObject();
d.concurrency = util.CTokenFromResponse(rMainObject);
@@ -2302,7 +2316,7 @@ namespace AyaNova.PlugIn.V8
dynamic d = new JObject();
//It's a Review / followup tied to another object that should have already been migrated
if (!Map.ContainsKey(c.FollowID))
if (!V7ToV8IdMap.ContainsKey(c.FollowID))
{
progress.Append("FollowUp target missing; skipping export: ID " + c.ID.ToString() + ",targetid " + c.FollowID.ToString() + ",type " + c.FollowType.ToString());
continue;
@@ -2311,7 +2325,7 @@ namespace AyaNova.PlugIn.V8
//export
//FollowUps only ever apply to a single user in v7 so no need to split them out here it's just for one user
if (!Map.ContainsKey(c.SourceID))
if (!V7ToV8IdMap.ContainsKey(c.SourceID))
{
progress.Append("FollowUp User missing; skipping export: UserID " + c.SourceID.ToString());
continue;
@@ -2349,15 +2363,15 @@ namespace AyaNova.PlugIn.V8
d.name = c.Name;
d.notes = c.Notes;
d.userId = Map[c.SourceID];
d.userId = V7ToV8IdMap[c.SourceID];
d.assignedByUserId = SafeGetUserMap(c.Creator);
d.objectId = Map[c.FollowID];
d.objectId = V7ToV8IdMap[c.FollowID];
d.objectType = util.RootObjectToAyaType(c.FollowType);
SetTags(d, tags);
progress.Op("FollowUp " + c.ID.ToString());
var rMainObject = await util.PostAsync("review", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
AddMap(c.ID, RavenId);
Addv7v8IdMap(c.ID, RavenId);
await util.EventLog(util.AyaType.Review, RavenId, SafeGetUserMap(c.Creator), SafeGetUserMap(c.Modifier), c.Created, c.Modified);
}
else
@@ -2378,7 +2392,7 @@ namespace AyaNova.PlugIn.V8
List<string> tags = new List<string>();
tags.Add(ImportTag);
dynamic d = new JObject();
if (!Map.ContainsKey(gUserId))
if (!V7ToV8IdMap.ContainsKey(gUserId))
{
progress.Append("ScheduleMarker User missing; skipping export: UserID " + c.SourceID.ToString());
continue;
@@ -2390,7 +2404,7 @@ namespace AyaNova.PlugIn.V8
d.name = c.Name;
d.notes = c.Notes;
d.userId = Map[gUserId];
d.userId = V7ToV8IdMap[gUserId];
d.startDate = sStartDate;
d.stopDate = sStopDate;
d.color = System.Drawing.ColorTranslator.ToHtml(System.Drawing.Color.FromArgb(c.ARGB));
@@ -2398,8 +2412,8 @@ namespace AyaNova.PlugIn.V8
progress.Op("ScheduleMarker " + c.ID.ToString());
var rMainObject = await util.PostAsync("reminder", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
if (!Map.ContainsKey(c.ID))
AddMap(c.ID, RavenId);
if (!V7ToV8IdMap.ContainsKey(c.ID))
Addv7v8IdMap(c.ID, RavenId);
await util.EventLog(util.AyaType.Review, RavenId, SafeGetUserMap(c.Creator), SafeGetUserMap(c.Modifier), c.Created, c.Modified);
}
}
@@ -2407,6 +2421,56 @@ namespace AyaNova.PlugIn.V8
}
#endregion ScheduleMarkers
#region ServiceBank
private async System.Threading.Tasks.Task ExportServiceBank(ProgressForm progress)
{
ResetUniqueNames();
if (!progress.KeepGoing) return;
progress.Op("Start Service Bank export");
progress.SubOp("");
var ObjectTypeName = "ServiceBank";
//Step 2: export the objects
TaxCodes pl = TaxCodes.GetItems();
progress.Append("Exporting " + pl.Count.ToString() + " " + ObjectTypeName + "s");
foreach (TaxCode i in pl)
{
if (!progress.KeepGoing) return;
List<string> tags = new List<string>();
tags.Add(ImportTag);
dynamic d = new JObject();
d.name = GetUniqueName(i.Name);
if (IsDuplicatev7v8IdMapItem(i.ID, i.Name, progress)) continue;
progress.Op(ObjectTypeName + " " + d.name);
d.active = i.Active;
d.taxA = i.TaxA;
d.taxB = i.TaxB;
d.taxOnTax = i.TaxOnTax;
SetTags(d, tags);
var rMainObject = await util.PostAsync("tax-code", d.ToString());
long RavenId = util.IdFromResponse(rMainObject);
Addv7v8IdMap(i.ID, RavenId);
//-----
//Event log fixup
await util.EventLog(util.AyaType.TaxCode, RavenId, SafeGetUserMap(i.Creator), SafeGetUserMap(i.Modifier), i.Created, i.Modified);
}
}
#endregion ServiceBank
#region locales
private async System.Threading.Tasks.Task ExportLocales(ProgressForm progress)
@@ -3047,7 +3111,7 @@ namespace AyaNova.PlugIn.V8
if (af == null) continue;
progress.SubOp("Wikifile: \"" + af.Name + "\" " + AyaBizUtils.FileSizeDisplay((decimal)af.FileSize));
if (IsDuplicateMapItem(i.LT_O_AyaFile.Value, i.LT_O_AyaFile.Display, progress)) continue;
if (IsDuplicatev7v8IdMapItem(i.LT_O_AyaFile.Value, i.LT_O_AyaFile.Display, progress)) continue;
//Compile the FileData property
var sDate = i.LT_Common_Label_Created.ToString();
DateTimeOffset dtLastModified = DateTime.UtcNow;
@@ -3079,7 +3143,7 @@ namespace AyaNova.PlugIn.V8
formDataContent.Add(new StringContent(RavenTypeAsString), name: "AttachToObjectType");
//formDataContent.Add(new StringContent(Map[tid.ID].ToString()), name: "AttachToObjectId");
formDataContent.Add(new StringContent(GetMap(tid.ID, "Object ID for attachment export (tid:" + tid.ToString() + ") ").ToString()), name: "AttachToObjectId");
formDataContent.Add(new StringContent(Getv7v8IdMap(tid.ID, "Object ID for attachment export (tid:" + tid.ToString() + ") ").ToString()), name: "AttachToObjectId");
formDataContent.Add(new StringContent(ImportTag), name: "Notes");
formDataContent.Add(new StringContent(dFileData.ToString()), name: "FileData");
@@ -3113,7 +3177,7 @@ namespace AyaNova.PlugIn.V8
if (oId > ravenId) ravenId = oId;
}
AddMap(af.ID, ravenId);
Addv7v8IdMap(af.ID, ravenId);
}
progress.SubOp("");
@@ -3176,7 +3240,7 @@ namespace AyaNova.PlugIn.V8
RavenTypeAsString = ((int)util.RootObjectToAyaType(tid.RootObjectType)).ToString();
formDataContent.Add(new StringContent(RavenTypeAsString), name: "AttachToObjectType");
// formDataContent.Add(new StringContent(Map[tid.ID].ToString()), name: "AttachToObjectId");
formDataContent.Add(new StringContent(GetMap(tid.ID, "Object ID for attached docs export (tid:" + tid.ToString() + ") ").ToString()), name: "AttachToObjectId");
formDataContent.Add(new StringContent(Getv7v8IdMap(tid.ID, "Object ID for attached docs export (tid:" + tid.ToString() + ") ").ToString()), name: "AttachToObjectId");
@@ -3222,7 +3286,7 @@ namespace AyaNova.PlugIn.V8
MatchCollection mc = AyaBizUtils.rxAyaImageTags.Matches(content);
foreach (Match m in mc)
{
var RavenId = GetMap(new Guid(m.Groups["guid"].Value), "Object id for Wiki export (tid:" + tid.ToString() + ")"); //Map[new Guid(m.Groups["guid"].Value)];
var RavenId = Getv7v8IdMap(new Guid(m.Groups["guid"].Value), "Object id for Wiki export (tid:" + tid.ToString() + ")"); //Map[new Guid(m.Groups["guid"].Value)];
content = content.Replace(m.Value, "<img src=\"" + "[ATTACH:" + RavenId.ToString() + "]" + "\">");
}