96 lines
4.2 KiB
C#
96 lines
4.2 KiB
C#
<Query Kind="Program">
|
|
<Connection>
|
|
<ID>77b65bea-e766-4e3c-a1ed-c4c2534b6019</ID>
|
|
<Persist>true</Persist>
|
|
<Server>D0001-SQL-11.sdt.local</Server>
|
|
<Database>jazz dev master Prod</Database>
|
|
<ShowServer>true</ShowServer>
|
|
</Connection>
|
|
<Reference><ProgramFilesX64>\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll</Reference>
|
|
<NuGetReference>Amazon.Lambda.S3Events</NuGetReference>
|
|
<NuGetReference>AWSSDK.Core</NuGetReference>
|
|
<NuGetReference>AWSSDK.S3</NuGetReference>
|
|
<Namespace>Amazon</Namespace>
|
|
<Namespace>Amazon.Auth.AccessControlPolicy</Namespace>
|
|
<Namespace>Amazon.Auth.AccessControlPolicy.ActionIdentifiers</Namespace>
|
|
<Namespace>Amazon.Internal</Namespace>
|
|
<Namespace>Amazon.Lambda.S3Events</Namespace>
|
|
<Namespace>Amazon.MissingTypes</Namespace>
|
|
<Namespace>Amazon.Runtime</Namespace>
|
|
<Namespace>Amazon.Runtime.CredentialManagement</Namespace>
|
|
<Namespace>Amazon.Runtime.CredentialManagement.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.EventStreams</Namespace>
|
|
<Namespace>Amazon.Runtime.EventStreams.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Auth</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Settings</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Transform</Namespace>
|
|
<Namespace>Amazon.Runtime.Internal.Util</Namespace>
|
|
<Namespace>Amazon.Runtime.SharedInterfaces</Namespace>
|
|
<Namespace>Amazon.Runtime.SharedInterfaces.Internal</Namespace>
|
|
<Namespace>Amazon.S3</Namespace>
|
|
<Namespace>Amazon.S3.Encryption</Namespace>
|
|
<Namespace>Amazon.S3.Encryption.Internal</Namespace>
|
|
<Namespace>Amazon.S3.Internal</Namespace>
|
|
<Namespace>Amazon.S3.IO</Namespace>
|
|
<Namespace>Amazon.S3.Model</Namespace>
|
|
<Namespace>Amazon.S3.Model.Internal.MarshallTransformations</Namespace>
|
|
<Namespace>Amazon.S3.Transfer</Namespace>
|
|
<Namespace>Amazon.S3.Util</Namespace>
|
|
<Namespace>Amazon.Util</Namespace>
|
|
<Namespace>Amazon.Util.Internal</Namespace>
|
|
<Namespace>Amazon.Util.Internal.PlatformServices</Namespace>
|
|
<Namespace>Newtonsoft.Json</Namespace>
|
|
<Namespace>Newtonsoft.Json.Converters</Namespace>
|
|
<Namespace>Newtonsoft.Json.Linq</Namespace>
|
|
<Namespace>Newtonsoft.Json.Schema</Namespace>
|
|
<Namespace>Newtonsoft.Json.Serialization</Namespace>
|
|
<Namespace>System</Namespace>
|
|
<Namespace>System.Diagnostics</Namespace>
|
|
<Namespace>System.Diagnostics.Tracing</Namespace>
|
|
<Namespace>System.IO.Compression</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Asn1</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Asn1.Utilities</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Math</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.OpenSsl</Namespace>
|
|
<Namespace>ThirdParty.BouncyCastle.Utilities.IO.Pem</Namespace>
|
|
<Namespace>ThirdParty.Ionic.Zlib</Namespace>
|
|
<Namespace>ThirdParty.Json.LitJson</Namespace>
|
|
<Namespace>ThirdParty.MD5</Namespace>
|
|
</Query>
|
|
|
|
void Main()
|
|
{
|
|
DimTimeClasses.Dump();
|
|
|
|
var factList = from fact in FactOpportunityMetrics.ToList()
|
|
join fm in DimFiscalMonths.ToList() on fact.FiscalMonthID equals fm.FiscalMonthID
|
|
join dtc in DimTimeClasses.ToList() on fact.TimeClassID equals dtc.TimeClassID
|
|
select new { fact, fm.SortOrder };
|
|
|
|
var updates =
|
|
(from f in factList //.Where(l => l.fact.TimeClassID != 5)
|
|
select new
|
|
{
|
|
f.fact,
|
|
AmountYTD = factList
|
|
.Where(l => l.fact.OpportunityGUID == f.fact.OpportunityGUID && l.fact.TimeClassID == f.fact.TimeClassID && l.fact.FiscalYearID == f.fact.FiscalYearID && l.SortOrder <= f.SortOrder)
|
|
.GroupBy(l => new { l.fact.OpportunityGUID, l.fact.TimeClassID, l.fact.FiscalYearID })
|
|
.Select(l => l.Sum(x => x.fact.Amount)).Single()
|
|
}).Where(r => r.AmountYTD != 0).OrderBy(r => r.fact.RowID).ToList();
|
|
|
|
foreach (var update in updates)
|
|
{
|
|
FactOpportunityMetrics.Where(fom => update.RowID == fom.RowID).ToList()
|
|
.ForEach(fact => fact.AmountYTD = update.AmountYTD);
|
|
FactOpportunityMetrics.Where(fom => update.RowID == fom.RowID).Dump();
|
|
}
|
|
|
|
SubmitChanges();
|
|
FactOpportunityMetrics.Where(fom => fom.AmountYTD != 0)
|
|
.Join(ViewOpportunity, f => f.OpportunityGUID, o => o.OpportunityGUID,
|
|
(f, o) => new { f.MetricName, f.TimeClassID, f.FiscalYearID, f.FiscalMonthID, f.Amount, f.AmountYTD, o.Name, o.OpportunityType }).Dump();
|
|
}
|
|
|
|
|
|
// Define other methods and classes here |