Пример #1
0
        private void FixupComputerBuildReport(ComputerBuildReport previousValue)
        {
            if (previousValue != null && previousValue.HardwareBindingReports.Contains(this))
            {
                previousValue.HardwareBindingReports.Remove(this);
            }

            if (ComputerBuildReport != null)
            {
                if (!ComputerBuildReport.HardwareBindingReports.Contains(this))
                {
                    ComputerBuildReport.HardwareBindingReports.Add(this);
                }
                if (CustomerReportUniqueID != ComputerBuildReport.CustomerReportUniqueID)
                {
                    CustomerReportUniqueID = ComputerBuildReport.CustomerReportUniqueID;
                }
            }
        }
Пример #2
0
        public Guid ReportBindings(ComputerBuildReport cbr)
        {
            var msReportUniqueId = Guid.NewGuid();
            var cbrKeys = cbr.HardwareBindingReports.ToList();
            using (var db = GetContext())
            {
                var dbKeys = GetProductKeyInfoes(db, cbrKeys.Select(k => k.ProductKeyID).ToList());
                cbrKeys.ForEach(cbrKey =>
                {
                    var reasonCode = Validate(dbKeys, cbrKey);
                    cbrKey.CustomerReportUniqueID = cbr.CustomerReportUniqueID;
                    cbrKey.ReasonCode = reasonCode;
                    cbrKey.ReasonCodeDescription = GetReasonCodeDescription(reasonCode);

                    var productKeyInfo = dbKeys.Single(k => k.ProductKeyID == cbrKey.ProductKeyID);
                    productKeyInfo.ProductKeyStateID = 3;
                    productKeyInfo.HardwareID = cbrKey.HardwareHash;
                    productKeyInfo.OEMAdditionalInfo = cbrKey.OEMOptionalInfo;
                });
                cbr.MSReportUniqueID = msReportUniqueId;
                cbr.MSReceivedDateUTC = DateTime.UtcNow;
                cbr.Status = true;
                db.ComputerBuildReports.AddObject(cbr);
                db.SaveChanges();
                return msReportUniqueId;
            }
        }