8.0.3 release
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<GenerateFullPaths>true</GenerateFullPaths>
|
||||
<Version>8.0.2</Version>
|
||||
<FileVersion>8.0.2.0</FileVersion>
|
||||
<Version>8.0.3</Version>
|
||||
<FileVersion>8.0.3.0</FileVersion>
|
||||
<ApplicationIcon>ayanova.ico</ApplicationIcon>
|
||||
<DocumentationFile>bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml</DocumentationFile>
|
||||
<noWarn>1591</noWarn>
|
||||
|
||||
@@ -2228,11 +2228,12 @@ namespace AyaNova.Biz
|
||||
if (proposedObj.ServiceStartDate > proposedObj.ServiceStopDate)
|
||||
AddError(ApiErrorCode.VALIDATION_STARTDATE_AFTER_ENDDATE, "ServiceStartDate");
|
||||
|
||||
if (proposedObj.ServiceRateQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "ServiceRateQuantity");
|
||||
|
||||
if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.ServiceRateQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "ServiceRateQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.PM.ToString());
|
||||
@@ -2626,8 +2627,9 @@ namespace AyaNova.Biz
|
||||
if (proposedObj.LoanUnitId < 1 || !await ct.LoanUnit.AnyAsync(x => x.Id == proposedObj.LoanUnitId))
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "LoanUnitId");
|
||||
|
||||
if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
|
||||
|
||||
//Any form customizations to validate?
|
||||
@@ -3653,9 +3655,9 @@ namespace AyaNova.Biz
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (proposedObj.EstimatedQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "EstimatedQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.EstimatedQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "EstimatedQuantity");
|
||||
|
||||
|
||||
//Start date AND end date must both be null or both contain values
|
||||
@@ -4319,11 +4321,12 @@ namespace AyaNova.Biz
|
||||
return;
|
||||
}
|
||||
|
||||
if (proposedObj.TravelRateQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "TravelRateQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.TravelRateQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "TravelRateQuantity");
|
||||
|
||||
if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
// if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.PM.ToString());
|
||||
|
||||
@@ -1111,7 +1111,7 @@ namespace AyaNova.Biz
|
||||
var newStatusInfo = await ct.QuoteStatus.AsNoTracking().FirstOrDefaultAsync(x => x.Id == newObject.QuoteStatusId);
|
||||
quote.LastStatusId = newObject.QuoteStatusId;
|
||||
await ct.SaveChangesAsync();
|
||||
newObject.NewQuoteConcurrency=quote.Concurrency;
|
||||
newObject.NewQuoteConcurrency = quote.Concurrency;
|
||||
|
||||
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, AyaType.QuoteStatus, AyaEvent.Created), ct);
|
||||
await StateHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
|
||||
@@ -1294,7 +1294,7 @@ namespace AyaNova.Biz
|
||||
//Object tags must match and Customer tags must match
|
||||
if (NotifyEventHelper.ObjectHasAllSubscriptionTags(QuoteInfo.Tags, sub.Tags) && NotifyEventHelper.ObjectHasAllSubscriptionTags(custInfo.Tags, sub.CustomerTags))
|
||||
{
|
||||
|
||||
|
||||
CustomerNotifyEvent n = new CustomerNotifyEvent()
|
||||
{
|
||||
EventType = NotifyEventType.QuoteStatusChange,
|
||||
@@ -2461,11 +2461,12 @@ namespace AyaNova.Biz
|
||||
if (proposedObj.ServiceStartDate > proposedObj.ServiceStopDate)
|
||||
AddError(ApiErrorCode.VALIDATION_STARTDATE_AFTER_ENDDATE, "ServiceStartDate");
|
||||
|
||||
if (proposedObj.ServiceRateQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "ServiceRateQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.ServiceRateQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "ServiceRateQuantity");
|
||||
|
||||
if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
// if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.Quote.ToString());
|
||||
@@ -2864,11 +2865,12 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
|
||||
if (proposedObj.LoanUnitId < 1 || !await ct.LoanUnit.AnyAsync(x => x.Id == proposedObj.LoanUnitId))
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "LoanUnitId");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.LoanUnitId < 1 || !await ct.LoanUnit.AnyAsync(x => x.Id == proposedObj.LoanUnitId))
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "LoanUnitId");
|
||||
|
||||
if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
// if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
|
||||
|
||||
//Any form customizations to validate?
|
||||
@@ -3679,8 +3681,9 @@ namespace AyaNova.Biz
|
||||
return;
|
||||
}
|
||||
|
||||
if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.Quote.ToString());
|
||||
@@ -3927,8 +3930,9 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
|
||||
if (proposedObj.EstimatedQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "EstimatedQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.EstimatedQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "EstimatedQuantity");
|
||||
|
||||
|
||||
//Start date AND end date must both be null or both contain values
|
||||
@@ -4614,11 +4618,12 @@ namespace AyaNova.Biz
|
||||
return;
|
||||
}
|
||||
|
||||
if (proposedObj.TravelRateQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "TravelRateQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.TravelRateQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "TravelRateQuantity");
|
||||
|
||||
if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
// if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.Quote.ToString());
|
||||
|
||||
@@ -1687,8 +1687,8 @@ namespace AyaNova.Biz
|
||||
return null;
|
||||
else
|
||||
{
|
||||
if(newObject.UserId==0)
|
||||
newObject.UserId=UserId;
|
||||
if (newObject.UserId == 0)
|
||||
newObject.UserId = UserId;
|
||||
|
||||
await ct.WorkOrderState.AddAsync(newObject);
|
||||
var wo = await ct.WorkOrder.FirstOrDefaultAsync(x => x.Id == newObject.WorkOrderId);
|
||||
@@ -3261,12 +3261,13 @@ namespace AyaNova.Biz
|
||||
if (proposedObj.ServiceStartDate > proposedObj.ServiceStopDate)
|
||||
AddError(ApiErrorCode.VALIDATION_STARTDATE_AFTER_ENDDATE, "ServiceStartDate");
|
||||
|
||||
|
||||
//case 4171 removed
|
||||
// if (proposedObj.ServiceRateQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "ServiceRateQuantity");
|
||||
|
||||
if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.WorkOrder.ToString());//all workorder sub items use the workorder key for customization
|
||||
@@ -3703,11 +3704,12 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
|
||||
if (proposedObj.LoanUnitId < 1 || !await ct.LoanUnit.AnyAsync(x => x.Id == proposedObj.LoanUnitId))
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "LoanUnitId");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.LoanUnitId < 1 || !await ct.LoanUnit.AnyAsync(x => x.Id == proposedObj.LoanUnitId))
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "LoanUnitId");
|
||||
|
||||
if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
// if (proposedObj.Quantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "Quantity");
|
||||
|
||||
|
||||
//Any form customizations to validate?
|
||||
@@ -5605,8 +5607,9 @@ namespace AyaNova.Biz
|
||||
}
|
||||
}
|
||||
|
||||
if (proposedObj.EstimatedQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "EstimatedQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.EstimatedQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "EstimatedQuantity");
|
||||
|
||||
|
||||
//Start date AND end date must both be null or both contain values
|
||||
@@ -6422,11 +6425,12 @@ namespace AyaNova.Biz
|
||||
return;
|
||||
}
|
||||
|
||||
if (proposedObj.TravelRateQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "TravelRateQuantity");
|
||||
//case 4171 removed
|
||||
// if (proposedObj.TravelRateQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "TravelRateQuantity");
|
||||
|
||||
if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
// if (proposedObj.NoChargeQuantity < 0)//negative quantities are not allowed
|
||||
// AddError(ApiErrorCode.VALIDATION_INVALID_VALUE, "NoChargeQuantity");
|
||||
|
||||
//Any form customizations to validate?
|
||||
var FormCustomization = await ct.FormCustom.AsNoTracking().SingleOrDefaultAsync(z => z.FormKey == AyaType.WorkOrder.ToString());//all workorder sub items use the workorder key for customization
|
||||
@@ -6650,7 +6654,7 @@ namespace AyaNova.Biz
|
||||
//cache it
|
||||
var unitInfo = await ct.Unit.AsNoTracking()
|
||||
.Where(x => x.Id == o.UnitId)
|
||||
.Select(x => new { x.Serial, x.Description, x.UnitModelId, x.Address, x.City, x.Region, x.Country, x.Latitude, x.Longitude, x.Metered})
|
||||
.Select(x => new { x.Serial, x.Description, x.UnitModelId, x.Address, x.City, x.Region, x.Country, x.Latitude, x.Longitude, x.Metered })
|
||||
.FirstOrDefaultAsync();
|
||||
vc.Add(unitInfo.Serial, "unitserial", o.UnitId);
|
||||
vc.Add(unitInfo.Description, "unitdesc", o.UnitId);
|
||||
|
||||
@@ -537,7 +537,7 @@
|
||||
"LogFile": "Log file",
|
||||
"Logout": "Log out",
|
||||
"MaintenanceExpired": "Maintenance expired",
|
||||
"MaintenanceExpiredNote": "The support and updates subscription has now expired\nAyaNova can not be updated and support is no longer available",
|
||||
"MaintenanceExpiredNote": "The Maintenance plan has now expired\nAyaNova can not be updated and support is no longer available",
|
||||
"MapUrlTemplate": "Map URL template",
|
||||
"MediumLogo": "Medium sized logo",
|
||||
"Memo": "Memo",
|
||||
@@ -1066,7 +1066,7 @@
|
||||
"StopWords5": "?",
|
||||
"StopWords6": "?",
|
||||
"StopWords7": "?",
|
||||
"SupportedUntil": "Support and updates expiration date",
|
||||
"SupportedUntil": "Maintenance plan expiration date",
|
||||
"Table": "Table",
|
||||
"Tag": "Tag",
|
||||
"TaggedWith": "Tagged with",
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace AyaNova.Util
|
||||
/// </summary>
|
||||
internal static class AyaNovaVersion
|
||||
{
|
||||
public const string VersionString = "8.0.2";
|
||||
public const string VersionString = "8.0.3";
|
||||
public const string FullNameAndVersion = "AyaNova server " + VersionString;
|
||||
public const string CurrentApiVersion="v8";
|
||||
}//eoc
|
||||
|
||||
@@ -59,11 +59,7 @@ namespace AyaNova.Core
|
||||
private const string TRIAL_FEATURE_NAME = "TrialMode";
|
||||
|
||||
//This feature name means it's a SAAS or rental mode key for month to month hosted service
|
||||
//effectively what it does now 2022-08-04 17:26:20 is nothing at all
|
||||
//license expiry is still controlled by checking Temporary key / expires in rockfish v8 license generator page
|
||||
//which in turn causes expiry date to be displayed in the license UI
|
||||
//I think this may be redundant but I'll keep it for now maybe it might help in future to offer a rental payment UI inside AyaNova or something
|
||||
private const string RENTAL_FEATURE_NAME = "ServiceMode";
|
||||
private const string RENTAL_FEATURE_NAME = "Subscription";
|
||||
|
||||
|
||||
//Trial key magic number for development and testing, all other guids will be fully licensed
|
||||
|
||||
Reference in New Issue
Block a user