multiple cases and changes (whups forgot to commit)
cases 3664, 3663, 3520 (redux)
This commit is contained in:
@@ -468,8 +468,8 @@ Global
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Default|x86.Build.0 = Debug|Any CPU
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|.NET.Build.0 = Release|Any CPU
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|Any CPU.ActiveCfg = Release|x86
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|Any CPU.Build.0 = Release|x86
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||
{3EF693E1-F60E-4D0F-929C-CBF8BEF96F12}.Release|WBI.ActiveCfg = Release|Any CPU
|
||||
@@ -1074,6 +1074,7 @@ Global
|
||||
{CE73BA18-914D-4426-8888-1DA0F0FC4764}.ReleaseX86AyaNova|x86.Build.0 = Release|x86
|
||||
{5407E64B-951B-414D-B532-4AF2EDBDD9FD}.Debug|.NET.ActiveCfg = Debug|x86
|
||||
{5407E64B-951B-414D-B532-4AF2EDBDD9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5407E64B-951B-414D-B532-4AF2EDBDD9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5407E64B-951B-414D-B532-4AF2EDBDD9FD}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{5407E64B-951B-414D-B532-4AF2EDBDD9FD}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||
{5407E64B-951B-414D-B532-4AF2EDBDD9FD}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||
|
||||
@@ -9,7 +9,7 @@ Release procedure as of 6/15/17
|
||||
6 Build AyaNova.exe project only watch for errors
|
||||
7 Build->Configuration manager, change AyaNova.exe build back to "AnyCPU" from "x86"
|
||||
8 Select MBI project in solution explorer then right click and Publish watch for errors
|
||||
9 Select WBI project in solution explorer then right click and Publish watch for errors
|
||||
9 Select WBI project in solution explorer then right click and Publish WebSite watch for errors
|
||||
10 Select Tools->"AyaNova obfuscate and build installers" watch for errors
|
||||
|
||||
Find installers ready to go in the Data/AyaNova/Installs folder
|
||||
@@ -17,3 +17,15 @@ Find installers ready to go in the Data/AyaNova/Installs folder
|
||||
See case 3482 for release steps
|
||||
|
||||
$profit% :)
|
||||
|
||||
=-=-=-=-=-=-
|
||||
FIPS BUILD
|
||||
First enable fips build:
|
||||
1) Enable FIPS pre-processor directive in two files:
|
||||
BusinessIdentity.vb - Uncomment line 328 to enable fips and comment OUT line 329 that disables FIPS build
|
||||
GlobalEx.cs - Uncomment line 11 at top of file
|
||||
2) Follow release procedure above
|
||||
3) Copy build files out of dev VM, rename them all to prepend fips string at start with this dos command: forfiles /S /M *.exe /C "cmd /c rename @file fips@file"
|
||||
4) Upload to server, announce to USDA forest service Peter Bedecker
|
||||
5) Disable fips mode in build by reversing step 1
|
||||
6) Rebuild installers and all release version files just to be sure that I dont' accidentally copy them off and give them to someone else down the road
|
||||
|
||||
@@ -13,7 +13,7 @@ by editing this MSBuild file. In order to learn more about this please visit htt
|
||||
<publishTime>07/02/2018 11:40:56</publishTime>
|
||||
</File>
|
||||
<File Include="bin/App_global.asax.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/App_global.asax.dll">
|
||||
<publishTime>06/14/2017 11:29:54</publishTime>
|
||||
@@ -34,37 +34,37 @@ by editing this MSBuild file. In order to learn more about this please visit htt
|
||||
<publishTime>07/02/2018 11:40:10</publishTime>
|
||||
</File>
|
||||
<File Include="bin/clients.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/cmd.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/CSLA.Core.Bindablebase.dll">
|
||||
<publishTime>07/02/2018 11:48:47</publishTime>
|
||||
<publishTime>09/13/2018 13:53:00</publishTime>
|
||||
</File>
|
||||
<File Include="bin/CSLA.dll">
|
||||
<publishTime>08/22/2018 16:46:15</publishTime>
|
||||
<publishTime>09/13/2018 15:47:39</publishTime>
|
||||
</File>
|
||||
<File Include="bin/CSLA.Server.DataPortal.dll">
|
||||
<publishTime>07/02/2018 11:48:49</publishTime>
|
||||
<publishTime>09/13/2018 13:53:02</publishTime>
|
||||
</File>
|
||||
<File Include="bin/default.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/FirebirdSql.Data.FirebirdClient.dll">
|
||||
<publishTime>07/02/2018 11:40:09</publishTime>
|
||||
</File>
|
||||
<File Include="bin/GZTW.AyaNova.BLL.dll">
|
||||
<publishTime>08/22/2018 16:47:06</publishTime>
|
||||
<publishTime>09/13/2018 15:48:54</publishTime>
|
||||
</File>
|
||||
<File Include="bin/GZTW.AyaNovaMBI.dll">
|
||||
<publishTime>08/22/2018 16:47:48</publishTime>
|
||||
<publishTime>09/13/2018 15:49:35</publishTime>
|
||||
</File>
|
||||
<File Include="bin/GZTW.AyaNovaMBI.Pages.dll">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/GZTW.Data.dll">
|
||||
<publishTime>07/02/2018 11:48:49</publishTime>
|
||||
<publishTime>09/13/2018 13:53:02</publishTime>
|
||||
</File>
|
||||
<File Include="bin/GZTW.MBI.dll">
|
||||
<publishTime>06/14/2017 12:04:42</publishTime>
|
||||
@@ -73,58 +73,58 @@ by editing this MSBuild file. In order to learn more about this please visit htt
|
||||
<publishTime>06/14/2017 11:32:19</publishTime>
|
||||
</File>
|
||||
<File Include="bin/GZTW.Profile.dll">
|
||||
<publishTime>07/02/2018 11:48:47</publishTime>
|
||||
<publishTime>09/13/2018 13:53:00</publishTime>
|
||||
</File>
|
||||
<File Include="bin/labor.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/memoedit.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/memoto.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/Newtonsoft.Json.dll">
|
||||
<publishTime>07/02/2018 12:33:05</publishTime>
|
||||
</File>
|
||||
<File Include="bin/ro.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/sched2labor.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/schedule.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/sign.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="bin/status.aspx.cdcab7d2.compiled">
|
||||
<publishTime>08/22/2018 16:48:02</publishTime>
|
||||
<publishTime>09/13/2018 15:49:49</publishTime>
|
||||
</File>
|
||||
<File Include="clients.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="cmd.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="default.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="jquery-1.4.4.min.js">
|
||||
<publishTime>07/02/2018 11:40:56</publishTime>
|
||||
</File>
|
||||
<File Include="labor.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="mbi.css">
|
||||
<publishTime>07/02/2018 11:40:55</publishTime>
|
||||
</File>
|
||||
<File Include="memoedit.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="memoto.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="ok.gif">
|
||||
<publishTime>07/02/2018 11:40:55</publishTime>
|
||||
@@ -133,25 +133,25 @@ by editing this MSBuild file. In order to learn more about this please visit htt
|
||||
<publishTime>07/02/2018 11:40:55</publishTime>
|
||||
</File>
|
||||
<File Include="PrecompiledApp.config">
|
||||
<publishTime>08/22/2018 16:47:49</publishTime>
|
||||
<publishTime>09/13/2018 15:49:36</publishTime>
|
||||
</File>
|
||||
<File Include="ro.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="sched2labor.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="schedule.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="sig.js">
|
||||
<publishTime>07/02/2018 11:40:56</publishTime>
|
||||
</File>
|
||||
<File Include="sign.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="status.aspx">
|
||||
<publishTime>08/22/2018 16:47:53</publishTime>
|
||||
<publishTime>09/13/2018 15:49:39</publishTime>
|
||||
</File>
|
||||
<File Include="user.gif">
|
||||
<publishTime>07/02/2018 11:40:56</publishTime>
|
||||
|
||||
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("Ground Zero Tech-Works Inc.")]
|
||||
[assembly: AssemblyProduct("AyaNova.PlugIn.QBOI")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017-2018")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2017-2019")]
|
||||
[assembly: AssemblyTrademark("AyaNova is a registered trademark of Ground Zero Tech-Works Inc.")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@@ -33,4 +33,4 @@ using System.Runtime.InteropServices;
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("7.5.0.0")]
|
||||
[assembly: AssemblyFileVersion("7.5.3.0")]
|
||||
[assembly: AssemblyFileVersion("7.5.4.0")]
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace AyaNova.PlugIn.QBOI
|
||||
|
||||
public string PluginVersion
|
||||
{
|
||||
get { return "7.5"; }//if patch then 7.3 (patch 1) etc
|
||||
get { return "7.5 (patch 4)"; }//if patch then 7.3 (patch 1) etc
|
||||
}
|
||||
|
||||
public string About
|
||||
|
||||
@@ -399,8 +399,12 @@ namespace AyaNova.PlugIn.QBOI
|
||||
/// <returns></returns>
|
||||
public static pfstat PreFlightCheck()
|
||||
{
|
||||
IntegrationLog.Log(QBID, "PFC: start");
|
||||
if (!_AuthenticationCompleted)
|
||||
{
|
||||
IntegrationLog.Log(QBID, "PFC: Authenticating...");
|
||||
StartAuthorization();
|
||||
}
|
||||
|
||||
while (!_AuthenticationCompleted)
|
||||
{
|
||||
@@ -408,6 +412,8 @@ namespace AyaNova.PlugIn.QBOI
|
||||
//TODO: add timeout here
|
||||
}
|
||||
|
||||
IntegrationLog.Log(QBID, "PFC: Authentication completed, validating company data");
|
||||
|
||||
if (QBValidate() == pfstat.Cancel)
|
||||
{
|
||||
IntegrationLog.Log(QBID, "PFC: Unable to validate QuickBooks connection, user selected cancel");
|
||||
@@ -422,6 +428,8 @@ namespace AyaNova.PlugIn.QBOI
|
||||
|
||||
}
|
||||
|
||||
IntegrationLog.Log(QBID, "PFC: Checking integration object...");
|
||||
|
||||
IntegrationObjectCheck();
|
||||
|
||||
if (ValidateSettings(false) == pfstat.Cancel)
|
||||
@@ -430,6 +438,7 @@ namespace AyaNova.PlugIn.QBOI
|
||||
return pfstat.Cancel;
|
||||
}
|
||||
|
||||
IntegrationLog.Log(QBID, "PFC: Checking cached mappings for validity...");
|
||||
|
||||
//Added: 18-Nov-2006 CASE 163
|
||||
//check that linked items in integration map exist in QB
|
||||
@@ -518,6 +527,8 @@ namespace AyaNova.PlugIn.QBOI
|
||||
}
|
||||
}
|
||||
|
||||
IntegrationLog.Log(QBID, "PFC: pre-flight check completed - OK");
|
||||
|
||||
return pfstat.OK;
|
||||
}
|
||||
|
||||
@@ -600,6 +611,47 @@ namespace AyaNova.PlugIn.QBOI
|
||||
/// </summary>
|
||||
public static pfstat QBValidate()
|
||||
{
|
||||
/**
|
||||
12/28/2018 Error reported by user:
|
||||
*
|
||||
* All my clients are set to active but when I connect QBOI to Ayanova it keeps telling me that all the clients are set to inactive.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Unexpected duplicate value returned by QuickBooks Online company info query
|
||||
|
||||
Please copy this information to AyaNova technical support (support@ayanova.com)
|
||||
|
||||
Company info returned:
|
||||
|
||||
KEY: NeoEnabled, VALUE: true
|
||||
|
||||
KEY: IsQbdtMigrated, VALUE: true
|
||||
|
||||
KEY: MigrationDate, VALUE: Nov 20, 2018 10:38:44 AM
|
||||
|
||||
KEY: MigrationSource, VALUE: QuickBooks-Unknown ActiveX
|
||||
|
||||
KEY: SubscriptionStatus, VALUE: PAID
|
||||
|
||||
KEY: OfferingSku, VALUE: QuickBooks Online Essentials
|
||||
|
||||
KEY: PayrollFeature, VALUE: false
|
||||
|
||||
KEY: AccountantFeature, VALUE: false
|
||||
|
||||
KEY: QBOIndustryType, VALUE: I sell products & services
|
||||
|
||||
KEY: ItemCategoriesFeature, VALUE: true
|
||||
|
||||
KEY: AssignedTime, VALUE: 11/09/2018 11:50:11
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Error reported by user:
|
||||
@@ -667,6 +719,10 @@ KEY: AssignedTime, VALUE: 12/08/2017 18:52:04
|
||||
//case 3520
|
||||
bool dupeKeyFoundInCompanyInfo = false;
|
||||
|
||||
//case 3520 redux 12/31/2018
|
||||
//working theory is that this is getting called when it's already been populated by an earlier action so it makes all items appear to be dupes because they were already set in qbcompprefs
|
||||
QCompOtherPrefs.Clear();
|
||||
|
||||
//Get the country and latest version supported
|
||||
//QB Online doesn't really have a "version", only a minor version
|
||||
//for the sake of compatibility just setting this to 3 which is the major api version number
|
||||
|
||||
@@ -169,6 +169,9 @@ namespace AyaNova
|
||||
|
||||
private void copyExtendedSupportInfoToClipboardToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
//case 3663
|
||||
Util.LogFullSupportInfoToFile();
|
||||
|
||||
StringBuilder sbInfo = new StringBuilder();
|
||||
string currentAssemblyDirectoryName = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
|
||||
//sbInfo.Append("Tech support info\r\n=-=-=-=-=-=-=-=-=-\r\n");
|
||||
@@ -226,6 +229,19 @@ namespace AyaNova
|
||||
|
||||
}
|
||||
|
||||
//case 3664 get integration log
|
||||
sbInfo.Append("\r\n\r\n\r\n");
|
||||
|
||||
|
||||
//The following block allows to read the AyaLog.txt file even though it's locked by the logger
|
||||
sbInfo.Append("INTEGRATION LOG\r\n=-=-=-=-=-=-=-=-=-\r\n");
|
||||
IntegrationLogList ill = IntegrationLogList.GetList();
|
||||
foreach (IntegrationLogList.IntegrationLogListInfo i in ill)
|
||||
{
|
||||
sbInfo.AppendLine(i.LogEntry);
|
||||
}
|
||||
|
||||
|
||||
sbInfo.Append("\r\n\r\n\r\n");
|
||||
|
||||
|
||||
|
||||
@@ -62,4 +62,4 @@ using System.Runtime.InteropServices;
|
||||
[assembly: log4net.Config.XmlConfigurator(ConfigFile="Log4Net.config",Watch=true)]
|
||||
//[assembly: log4net.Config.XmlConfigurator(Watch=true)]
|
||||
[assembly: ComVisibleAttribute(false)]
|
||||
[assembly: AssemblyFileVersionAttribute("7.5.8.0")]
|
||||
[assembly: AssemblyFileVersionAttribute("7.5.9.0")]
|
||||
|
||||
@@ -1353,6 +1353,7 @@
|
||||
</None>
|
||||
<None Include="AyaNova.exe.manifest" />
|
||||
<None Include="Log4Net.config">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</appender>
|
||||
<root>
|
||||
|
||||
<level value="ALL" />
|
||||
<level value="INFO" />
|
||||
<!--Default is "INFO", set to "ALL" if requested by tech support only-->
|
||||
|
||||
<appender-ref ref="RollingLogFileAppender" />
|
||||
|
||||
@@ -7378,6 +7378,17 @@ At first I was happy to find your code that solved my problem, but I did not lik
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
|
||||
//case 3663
|
||||
static public void LogFullSupportInfoToFile()
|
||||
{
|
||||
log.Info("##############################");
|
||||
log.Info("Support info requested, logging extra:\r\n");
|
||||
log.Info(FullSupportInfo());
|
||||
log.Info("##############################");
|
||||
|
||||
}
|
||||
|
||||
static public string BriefSupportInfo()
|
||||
{
|
||||
log.Debug("BriefSupportInfo");
|
||||
@@ -7407,6 +7418,7 @@ At first I was happy to find your code that solved my problem, but I did not lik
|
||||
////Sub release version if any
|
||||
sb.Append(AyaBizUtils.SubVersion);
|
||||
|
||||
|
||||
// sb.Append("Options:\r\n");
|
||||
// sb.Append(AyaBizUtils.View());
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</appender>
|
||||
<root>
|
||||
|
||||
<level value="ALL" />
|
||||
<level value="INFO" />
|
||||
<!--Default is "INFO", set to "ALL" if requested by tech support only-->
|
||||
|
||||
<appender-ref ref="RollingLogFileAppender" />
|
||||
|
||||
@@ -64,4 +64,4 @@ using System.Security.Permissions;
|
||||
// Configure log4net using the .config file
|
||||
//[assembly: log4net.Config.XmlConfigurator(ConfigFile="Log4Net.config",Watch=true)]
|
||||
//[assembly: log4net.Config.XmlConfigurator( ConfigFile="Log4Net.config",Watch=true )]
|
||||
[assembly: AssemblyFileVersionAttribute("7.5.8.0")]
|
||||
[assembly: AssemblyFileVersionAttribute("7.5.9.0")]
|
||||
|
||||
@@ -158,8 +158,8 @@
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\..\..\packages\Newtonsoft.Json.5.0.4\lib\net40\Newtonsoft.Json.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\3rdprtylibs\json.net.40\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System">
|
||||
<Name>System</Name>
|
||||
@@ -293,11 +293,15 @@
|
||||
<Compile Include="GZTW.AyaNova.BLL\FollowUpListForUser.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\HeadOfficeExistanceChecker.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\HeadOfficeUnitPickList.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\IntegrationLogList.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\IntegrationSimple.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\MemoList.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GZTW.AyaNova.BLL\MemoListRi.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\NotifyDeliveryLogList.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GZTW.AyaNova.BLL\OSVersionInfo.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\PartInventoryAdjustmentListDetailed.cs" />
|
||||
<Compile Include="GZTW.AyaNova.BLL\GuidFetcher.cs" />
|
||||
@@ -508,9 +512,6 @@
|
||||
<Compile Include="GZTW.AyaNova.BLL\NotifyDeliveryLog.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GZTW.AyaNova.BLL\NotifyDeliveryLogList.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="GZTW.AyaNova.BLL\NotifyDeliveryMessageFormats.cs">
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
|
||||
@@ -77,7 +77,7 @@ namespace GZTW.AyaNova.BLL
|
||||
//Case 508
|
||||
private string _DigestValue;
|
||||
|
||||
// private string _status;
|
||||
private string _LicenseValidationStatus;
|
||||
private DateTime _Generated;
|
||||
private DateTime _InstallableUntil;
|
||||
private bool _Installable;
|
||||
@@ -337,7 +337,7 @@ namespace GZTW.AyaNova.BLL
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// return _status;
|
||||
// return _LicenseValidationStatus;
|
||||
// }
|
||||
|
||||
//}
|
||||
@@ -691,44 +691,56 @@ namespace GZTW.AyaNova.BLL
|
||||
/// <param name="Criteria"></param>
|
||||
protected override void DataPortal_Fetch(object Criteria)
|
||||
{
|
||||
this._LicenseValidationStatus = "";
|
||||
//Fetching license key
|
||||
//sets all settings to safe mode before fetch and validate
|
||||
InValidate();
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 2";
|
||||
|
||||
|
||||
Criteria crit = (Criteria)Criteria;
|
||||
#if(FIPS_MODE)
|
||||
//case 3378
|
||||
bool bMustUpdate = false;//if it has to decrypt the key and ex data then it should save it back immediately here
|
||||
#endif
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 3";
|
||||
using (SafeDataReader dataReader = DBUtil.GetReaderFromSQLString("SELECT * FROM aGlobalEx"))
|
||||
{
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 4";
|
||||
if (dataReader.Read())
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 5";
|
||||
try
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 6";
|
||||
//schema version
|
||||
mDBSchema = dataReader.GetInt32("aDBSchema");
|
||||
|
||||
//Global data
|
||||
int nTempsize = dataReader.GetInt32("aGlobalDataSize");
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 7";
|
||||
if (nTempsize > 0)
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 8";
|
||||
byte[] temp = new Byte[nTempsize];
|
||||
|
||||
dataReader.GetBytes("aGlobalData", 0, temp, 0, nTempsize);
|
||||
|
||||
#if(FIPS_MODE)
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 9";
|
||||
//case 3378
|
||||
string sKey = new UTF8Encoding().GetString(temp);
|
||||
if (sKey.Contains("LicenseKey"))
|
||||
{ //already stored decrypted
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 9-PathA";
|
||||
_FIPS_READY = true;//flag for the globalEx block below which is not as easily identifiable as decrypted
|
||||
mbGlobalData = temp;
|
||||
}
|
||||
else
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 9-PathB";
|
||||
//trigger a save after all is decrypted
|
||||
bMustUpdate = true;
|
||||
/*shaM.ComputeHash(enc.GetBytes("Who is John Galt?"))*/
|
||||
@@ -742,7 +754,7 @@ namespace GZTW.AyaNova.BLL
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 9-PathC";
|
||||
/*shaM.ComputeHash(enc.GetBytes("Who is John Galt?"))*/
|
||||
byte[] bkey = new byte[32] { 0xAE, 0x6E, 0x53, 0x24, 0xC6, 0x53, 0x1D, 0x88, 0x90, 0x12, 0x80, 0xCC, 0x19, 0x88, 0x71, 0x38, 0xA3, 0xBF, 0x63, 0x64, 0xCB, 0x0C, 0xED, 0x50, 0x47, 0xCA, 0x96, 0x8C, 0x27, 0xCD, 0xD2, 0x64 };
|
||||
/*shaM.ComputeHash(enc.GetBytes("License IV"))*/
|
||||
@@ -756,7 +768,7 @@ namespace GZTW.AyaNova.BLL
|
||||
else
|
||||
throw new InvalidOperationException();
|
||||
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 10";
|
||||
|
||||
//Global data EX
|
||||
nTempsize = dataReader.GetInt32("aGlobalDataExSize");
|
||||
@@ -764,16 +776,18 @@ namespace GZTW.AyaNova.BLL
|
||||
if (nTempsize > 0)
|
||||
{
|
||||
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 11";
|
||||
//Get the data...
|
||||
byte[] temp = new Byte[nTempsize];
|
||||
dataReader.GetBytes("aGlobalDataEx", 0, temp, 0, nTempsize);
|
||||
|
||||
//Into a memory stream...
|
||||
MemoryStream mstream = null;
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 12";
|
||||
#if(FIPS_MODE)
|
||||
if (!_FIPS_READY)
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 12-A";
|
||||
//Decrypt the data...
|
||||
UTF8Encoding enc = new UTF8Encoding();
|
||||
//SHA256 shaM = new SHA256Managed();
|
||||
@@ -787,11 +801,13 @@ namespace GZTW.AyaNova.BLL
|
||||
}
|
||||
else
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 12-B";
|
||||
//already fips ready (decrypted in db) so just process it
|
||||
mstream = new MemoryStream(temp);
|
||||
}
|
||||
|
||||
#else
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 12-C";
|
||||
//Decrypt the data...
|
||||
UTF8Encoding enc = new UTF8Encoding();
|
||||
//SHA256 shaM = new SHA256Managed();
|
||||
@@ -803,16 +819,18 @@ namespace GZTW.AyaNova.BLL
|
||||
CipherWrapper c = new CipherWrapper(bkey);
|
||||
mstream = new MemoryStream(c.DecryptMessage(temp, biv));
|
||||
#endif
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 13";
|
||||
//De-serialize it into the AGlobalExData object...
|
||||
BinaryFormatter bformatter = new BinaryFormatter();
|
||||
bformatter.AssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple;
|
||||
try
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 13-A";
|
||||
_AGlobalExData = (AGlobalExData)bformatter.Deserialize(mstream);
|
||||
}
|
||||
catch
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 13-B";
|
||||
_AGlobalExData = new AGlobalExData();
|
||||
_AGlobalExData.EvalExpire = System.DateTime.Now;
|
||||
_AGlobalExData.EvalAdvanceReference = System.DateTime.Now;
|
||||
@@ -822,9 +840,13 @@ namespace GZTW.AyaNova.BLL
|
||||
else
|
||||
throw new InvalidOperationException();
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 14";
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{//this will be caught if the fields requested above don't exist
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 15";
|
||||
//this will be caught if the fields requested above don't exist
|
||||
//or there is *any* problem dealing with them
|
||||
//which generally will be that the database is a pre-release one they
|
||||
//are trying to use or they have screwed with the data somehow
|
||||
@@ -837,12 +859,13 @@ namespace GZTW.AyaNova.BLL
|
||||
"Database is missing startup information.\r\n " +
|
||||
"It is either damaged, tamped with or not a valid AyaNova database.\r\n" +
|
||||
"(Note that a pre-release database can not be used with AyaNova)\r\n" +
|
||||
"\r\n************************************************\r\n" ,ex
|
||||
"\r\n************************************************\r\n", ex
|
||||
);
|
||||
#endif
|
||||
}
|
||||
finally
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 16";
|
||||
dataReader.Close();
|
||||
}
|
||||
|
||||
@@ -856,29 +879,53 @@ namespace GZTW.AyaNova.BLL
|
||||
|
||||
try
|
||||
{
|
||||
Validate(false);
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 17";//this is the last logged line before 18 and then finally 18a
|
||||
Validate(false);//this must be throwing an exception
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 17-A";//this doesn't log
|
||||
if (_Valid == false)
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 17-B";
|
||||
throw new InvalidOperationException();
|
||||
}
|
||||
catch
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 18";
|
||||
_Valid = false;
|
||||
#if(FIPS_MODE)
|
||||
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 18-A";
|
||||
|
||||
_LicenseValidationStatus += "\r\nValidate Exception:\r\n" + ex.Message;
|
||||
_LicenseValidationStatus += "\r\nValidate Exception stack:\r\n" + ex.StackTrace;
|
||||
|
||||
throw new InvalidOperationException(
|
||||
"**** A VALID AYANOVA LICENSE WAS NOT FOUND ***\r\n\r\n " +
|
||||
"Diagnostic info:\r\n\r\n"+_LicenseValidationStatus);
|
||||
|
||||
#else
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 18-B";
|
||||
//_LicenseValidationStatus
|
||||
throw new InvalidOperationException(
|
||||
"**** A VALID AYANOVA LICENSE WAS NOT FOUND ***\r\n\r\n " +
|
||||
"The license key has been tampered with or damaged.\r\n\r\n" +
|
||||
"** License violations are logged for the protection of the licensee and licensor **\r\n\r\n" +
|
||||
"Restore the database from a backup or contact AyaNova technical\r\n" +
|
||||
"support for assistance.");
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#if(FIPS_MODE)
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 19";
|
||||
//case 3378
|
||||
if (bMustUpdate)
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 20";
|
||||
DataPortal_Update();
|
||||
}
|
||||
#endif
|
||||
//_LicenseValidationStatus += "\r\nDataPortal_Fetch: 21-FIN";
|
||||
}
|
||||
|
||||
|
||||
@@ -1033,7 +1080,7 @@ namespace GZTW.AyaNova.BLL
|
||||
|
||||
this._ScheduleableUsers = 0;
|
||||
this._SchemaVersion = 0;
|
||||
//this._status = "";
|
||||
|
||||
this._Expires = System.DateTime.Now;
|
||||
|
||||
//case 999
|
||||
@@ -1057,14 +1104,14 @@ namespace GZTW.AyaNova.BLL
|
||||
private void Validate(bool CheckInstallableUntilDate)
|
||||
{
|
||||
|
||||
|
||||
//_LicenseValidationStatus += "\r\nValidate: 1";
|
||||
|
||||
InValidate();
|
||||
UTF8Encoding utf8 = new UTF8Encoding();
|
||||
|
||||
string Key = utf8.GetString(mbGlobalData);
|
||||
|
||||
|
||||
// throw new System.NotSupportedException("TEST");
|
||||
|
||||
//case 1172
|
||||
string sKeyType = "AyaNovaLiteLicenseKey";
|
||||
@@ -1079,14 +1126,16 @@ namespace GZTW.AyaNova.BLL
|
||||
bool containsXML = Key.Contains("<?xml version=\"1.0\" encoding=\"utf-16\" standalone=\"yes\"?>");
|
||||
bool containsJSON = Key.Contains("[KEY");
|
||||
|
||||
//_LicenseValidationStatus += "\r\nValidate: 2";
|
||||
|
||||
if (!containsXML && !containsJSON)
|
||||
{
|
||||
_Valid = false;
|
||||
//_status = "Error: could not find license key in text provided";
|
||||
_LicenseValidationStatus = "Error: could not find license key in text provided";
|
||||
return;
|
||||
}
|
||||
|
||||
//_LicenseValidationStatus += "\r\nValidate: 3";
|
||||
|
||||
if (containsXML)
|
||||
{
|
||||
@@ -1155,7 +1204,7 @@ namespace GZTW.AyaNova.BLL
|
||||
{
|
||||
_Valid = false;
|
||||
//log.Error("Internal error # 1002");
|
||||
//_status="Error: exception in LoadXml:\r\n." + ex.Message + "\r\n" + ex.InnerException;
|
||||
//_LicenseValidationStatus="Error: exception in LoadXml:\r\n." + ex.Message + "\r\n" + ex.InnerException;
|
||||
return;
|
||||
|
||||
}
|
||||
@@ -1174,7 +1223,7 @@ namespace GZTW.AyaNova.BLL
|
||||
{
|
||||
_Valid = false;
|
||||
//log.Error("Internal error # 1003");
|
||||
//_status="Error: no signature found." + ex.Message + "\r\n" + ex.InnerException;
|
||||
//_LicenseValidationStatus="Error: no signature found." + ex.Message + "\r\n" + ex.InnerException;
|
||||
return;
|
||||
|
||||
|
||||
@@ -1185,7 +1234,7 @@ namespace GZTW.AyaNova.BLL
|
||||
{
|
||||
_Valid = false;
|
||||
//log.Error("Internal error # 1004");
|
||||
//_status="Error: Signature not valid, key has been tampered with.";
|
||||
//_LicenseValidationStatus="Error: Signature not valid, key has been tampered with.";
|
||||
return;
|
||||
|
||||
}
|
||||
@@ -1227,7 +1276,7 @@ namespace GZTW.AyaNova.BLL
|
||||
_Installable = false;
|
||||
_Valid = false;
|
||||
//log.Error("Internal error # 1005");
|
||||
//_status="Error: Installation key has expired.";
|
||||
//_LicenseValidationStatus="Error: Installation key has expired.";
|
||||
//return;
|
||||
|
||||
}
|
||||
@@ -1319,7 +1368,7 @@ namespace GZTW.AyaNova.BLL
|
||||
{
|
||||
_Valid = false;
|
||||
//log.Error("Internal error # 1006");
|
||||
//_status="Error: Signature not valid - exception Processing fields:\r\n." + ex.Message + "\r\n" + ex.InnerException;
|
||||
//_LicenseValidationStatus="Error: Signature not valid - exception Processing fields:\r\n." + ex.Message + "\r\n" + ex.InnerException;
|
||||
return;
|
||||
|
||||
}
|
||||
@@ -1327,6 +1376,7 @@ namespace GZTW.AyaNova.BLL
|
||||
}
|
||||
else
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nValidate: 4";
|
||||
#region PARSE JSON KEY
|
||||
string licenseFileData = Key;
|
||||
//extract between [KEY and KEY]
|
||||
@@ -1336,10 +1386,11 @@ namespace GZTW.AyaNova.BLL
|
||||
!licenseFileData.Contains("SIGNATURE]"))
|
||||
{
|
||||
_Valid = false;
|
||||
//throw new System.FormatException("KEY IS NOT VALID! Missing one or more required delimiters");
|
||||
//_LicenseValidationStatus = "KEY IS NOT VALID! Missing one or more required delimiters";
|
||||
return;
|
||||
}
|
||||
|
||||
//_LicenseValidationStatus += "\r\nValidate: 5";
|
||||
|
||||
string keyNoWS = System.Text.RegularExpressions.Regex.Replace(AyaBizUtils.ExtractString(licenseFileData, "[KEY", "KEY]").Trim(), "(\"(?:[^\"\\\\]|\\\\.)*\")|\\s+", "$1");
|
||||
string keySig = AyaBizUtils.ExtractString(licenseFileData, "[SIGNATURE", "SIGNATURE]").Trim();
|
||||
@@ -1368,12 +1419,12 @@ EQIDAQAB
|
||||
if (!signer.VerifySignature(expectedSig))
|
||||
{
|
||||
_Valid = false;
|
||||
//_status = "Error: Signature not valid, key has been tampered with.";
|
||||
_LicenseValidationStatus = "Error: Signature not valid, key has been tampered with.";
|
||||
return;
|
||||
}
|
||||
|
||||
#endregion check signature
|
||||
|
||||
//_LicenseValidationStatus += "\r\nValidate: 6";
|
||||
//valid key (has valid signature)
|
||||
_Valid = true;
|
||||
try
|
||||
@@ -1482,14 +1533,17 @@ EQIDAQAB
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//_LicenseValidationStatus += "\r\nValidate: 7";
|
||||
#endregion get values
|
||||
|
||||
}
|
||||
catch
|
||||
catch (Exception ex)
|
||||
{
|
||||
//_LicenseValidationStatus += "\r\nValidate: 8";
|
||||
_Valid = false;
|
||||
// _status = "Error: Signature not valid - exception processing fields:\r\n." + ex.Message + "\r\n" + ex.InnerException;
|
||||
//_LicenseValidationStatus += "Error: Signature not valid - exception processing fields:\r\n." + ex.Message;
|
||||
if (ex.InnerException != null)
|
||||
//_LicenseValidationStatus += "\r\n" + ex.InnerException.Message;
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
@@ -321,8 +321,14 @@ Namespace Security
|
||||
'TODO: FIPS
|
||||
'case 3378
|
||||
|
||||
|
||||
'******************************************************************************
|
||||
'FIPS MODE SETTING
|
||||
'CAUTION, REMARK THIS CAREFULLY!!
|
||||
'#Const FIPS_MODE = True
|
||||
#Const FIPS_MODE = False
|
||||
''******************************************************************************
|
||||
|
||||
|
||||
#If FIPS_MODE = True Then
|
||||
|
||||
|
||||
Reference in New Issue
Block a user