/// <summary> /// /// </summary> /// <param name="skuDetail"></param> /// <returns></returns> public LicenseInfo CreateLicenseInfo(SKUDetailInfo skuDetail) { LicenseInfo obj = new LicenseInfo(); obj.SKUID = skuDetail.SKUID; obj.SKUType = skuDetail.SKUType; obj.Qty = skuDetail.Qty; obj.QtySpecified = skuDetail.QtySpecified; if (skuDetail.SKUType == Constants.SKUType.OPTION.ToString()) { obj.VersionSeqNo = -1; obj.LicenseKey = skuDetail.OptionLicenseKey; obj.ReleaseDateSpecified = false; } else { VersionInfoWithLicense[] versions = skuDetail.VersionList; VersionInfoWithLicense latestVersion = versions.OrderByDescending(o => o.VersionSeqNo).FirstOrDefault <VersionInfoWithLicense>(); // CALL GET LICENSE FOR GIVEN SKU AND GET LICENSE KEY if (latestVersion != null) { obj.ImageUrl = latestVersion.ImageUrl; obj.IsShippedVersion = latestVersion.IsShippedVersion; obj.Version = latestVersion.Version; obj.VersionSeqNo = latestVersion.VersionSeqNo; obj.VersionType = latestVersion.VersionType; obj.LicenseKey = latestVersion.LicenseKey; } } return(obj); }
/// <summary> /// Build SKU Details Info Object for all SKU ID and Gets latest Version License if missing /// </summary> /// <param name="sKUID"></param> /// /*new CR user logging 08/2013*/ public SKUDetailInfo[] GetSKUDetailInfoWithLatestVersionLicense(string[] sKUID, string licensableSNum, string requestingSystem) { List <SKUDetailInfo> skuDetailInfoList = new List <SKUDetailInfo>(); DataSet skuDataSet = new DataSet(); SKUDetailInfo skuDetailInfo; List <VersionInfoWithLicense> skuVersionInfoList; try { //get all data skuDataSet = GetSKUDetailInfoData(sKUID, licensableSNum); if (skuDataSet != null && skuDataSet.Tables != null && skuDataSet.Tables.Count > 0) { if (skuDataSet.Tables[0].Rows.Count > 0) { for (int i = 0; i < skuDataSet.Tables[0].Rows.Count; i++) { DataRow sdr = null; string currentSKUID = string.Empty; string previousSKUID = string.Empty; sdr = skuDataSet.Tables[0].Rows[i]; if (sdr["SKUID"] != DBNull.Value && sdr["SKUType"] != DBNull.Value) { currentSKUID = Convert.ToString(sdr["SKUID"]); previousSKUID = Convert.ToString(sdr["SKUID"]); skuDetailInfo = new SKUDetailInfo(); //BUILD OBJECT FROM DB skuDetailInfo.SKUID = Convert.ToString(sdr["SKUID"]); skuDetailInfo.SKUName = (sdr["SKUName"] != DBNull.Value) ? Convert.ToString(sdr["SKUName"]) : ""; skuDetailInfo.TAAPartNo = (sdr["TAAPartNo"] != DBNull.Value) ? Convert.ToString(sdr["TAAPartNo"]) : ""; skuDetailInfo.TAAPartName = (sdr["TAAPartName"] != DBNull.Value) ? Convert.ToString(sdr["TAAPartName"]) : ""; skuDetailInfo.SKUType = (sdr["SKUType"] != DBNull.Value) ? Convert.ToString(sdr["SKUType"]) : ""; skuDetailInfo.Qty = (sdr["Qty"] != DBNull.Value) ? Convert.ToInt32(sdr["Qty"]) : -1; skuDetailInfo.QtySpecified = false; if (skuDetailInfo.Qty != -1) { skuDetailInfo.QtySpecified = true; } skuDetailInfo.OptionLicenseKey = (sdr["OptionLicenseKey"] != DBNull.Value) ? Convert.ToString(sdr["OptionLicenseKey"]) : ""; if (skuDetailInfo.SKUType == Constants.SKUType.SW.ToString()) { skuVersionInfoList = new List <VersionInfoWithLicense>(); while (previousSKUID == currentSKUID) { VersionInfoWithLicense versionObject = new VersionInfoWithLicense(); versionObject.VersionPartNo = (sdr["VersionPartNo"] != DBNull.Value) ? Convert.ToString(sdr["VersionPartNo"]) : ""; versionObject.VersionPartName = (sdr["VersionPartName"] != DBNull.Value) ? Convert.ToString(sdr["VersionPartName"]) : ""; versionObject.VersionSeqNo = (sdr["VersionSeqNo"] != DBNull.Value) ? Convert.ToInt32(sdr["VersionSeqNo"]) : -1; versionObject.Version = (sdr["Version"] != DBNull.Value) ? Convert.ToString(sdr["Version"]) : ""; versionObject.VersionType = (sdr["VersionType"] != DBNull.Value) ? Convert.ToString(sdr["VersionType"]) : ""; versionObject.VersionReleaseClassification = (sdr["VersionReleaseClassification"] != DBNull.Value) ? Convert.ToString(sdr["VersionReleaseClassification"]) : ""; versionObject.IsShippedVersion = (sdr["IsShippedVersion"] != DBNull.Value) ? Convert.ToBoolean(sdr["IsShippedVersion"]) : false; versionObject.LicenseKey = (sdr["LicenseKey"] != DBNull.Value) ? Convert.ToString(sdr["LicenseKey"]) : ""; versionObject.ReleaseDateSpecified = false; versionObject.ReleaseDate = (sdr["ReleaseDate"] != DBNull.Value) ? Convert.ToDateTime(sdr["ReleaseDate"]) : DateTime.MinValue; if (versionObject.ReleaseDate != DateTime.MinValue) { versionObject.ReleaseDateSpecified = true; } versionObject.VersionUpgradedOnSpecified = true; versionObject.VersionUpgradedOn = (sdr["VersionUpgradedDate"] != DBNull.Value) ? Convert.ToDateTime(sdr["VersionUpgradedDate"]) : DateTime.MinValue; if (versionObject.VersionUpgradedOn != DateTime.MinValue) { versionObject.VersionUpgradedOnSpecified = true; } versionObject.ImageUrl = (sdr["ImageUrl"] != DBNull.Value) ? Convert.ToString(sdr["ImageUrl"]) : ""; skuVersionInfoList.Add(versionObject); i++; if (i < skuDataSet.Tables[0].Rows.Count) { sdr = skuDataSet.Tables[0].Rows[i]; currentSKUID = Convert.ToString(sdr["SKUID"]); } else { currentSKUID = ""; i--; } } VersionInfoWithLicense latestVersion = skuVersionInfoList.OrderByDescending(obj => obj.VersionSeqNo).FirstOrDefault <VersionInfoWithLicense>(); if (latestVersion != null) { skuVersionInfoList = new List <VersionInfoWithLicense>(); if (string.IsNullOrEmpty(latestVersion.LicenseKey)) { //call get license //GetLicenseKey(string SNum, string SKUID, string SKUType, int Qty, string Version, DateTime ExpiryDate); /*new CR user logging 08/2013*/ latestVersion.LicenseKey = GetLicenseKey(licensableSNum, latestVersion.VersionPartName, skuDetailInfo.SKUType, skuDetailInfo.Qty, 1, latestVersion.Version, DateTime.MinValue, requestingSystem); } skuVersionInfoList.Add(latestVersion); } skuDetailInfo.VersionList = skuVersionInfoList.ToArray(); } skuDetailInfoList.Add(skuDetailInfo); } } } } } catch (Exception ex) { throw new Exception("Building SKU Details Failed. " + ex.Message + Environment.NewLine + ex.StackTrace); } return(skuDetailInfoList.ToArray()); }
/// <summary> /// Build SKU Details Info Object for all SKU ID /// </summary> /// <param name="sKUID"></param> public SKUDetailInfo[] GetSKUDetailInfo(string[] sKUID, string licensableSNum) { List <SKUDetailInfo> skuDetailInfoList = new List <SKUDetailInfo>(); DataSet skuDataSet = new DataSet(); SKUDetailInfo skuDetailInfo; List <VersionInfoWithLicense> skuVersionInfoList; try { //get all data skuDataSet = GetSKUDetailInfoData(sKUID, licensableSNum); if (skuDataSet != null && skuDataSet.Tables != null && skuDataSet.Tables.Count > 0) { if (skuDataSet.Tables[0].Rows.Count > 0) { for (int i = 0; i < skuDataSet.Tables[0].Rows.Count; i++) { DataRow sdr = null; string currentSKUID = string.Empty; string previousSKUID = string.Empty; sdr = skuDataSet.Tables[0].Rows[i]; if (sdr["SKUID"] != DBNull.Value && sdr["SKUType"] != DBNull.Value) { currentSKUID = Convert.ToString(sdr["SKUID"]); previousSKUID = Convert.ToString(sdr["SKUID"]); skuDetailInfo = new SKUDetailInfo(); //BUILD OBJECT FROM DB skuDetailInfo.SKUID = Convert.ToString(sdr["SKUID"]); skuDetailInfo.SKUName = (sdr["SKUName"] != DBNull.Value) ? Convert.ToString(sdr["SKUName"]) : ""; skuDetailInfo.TAAPartNo = (sdr["TAAPartNo"] != DBNull.Value) ? Convert.ToString(sdr["TAAPartNo"]) : ""; skuDetailInfo.TAAPartName = (sdr["TAAPartName"] != DBNull.Value) ? Convert.ToString(sdr["TAAPartName"]) : ""; skuDetailInfo.SKUType = (sdr["SKUType"] != DBNull.Value) ? Convert.ToString(sdr["SKUType"]) : ""; skuDetailInfo.Qty = (sdr["Qty"] != DBNull.Value) ? Convert.ToInt32(sdr["Qty"]) : -1; skuDetailInfo.QtySpecified = false; if (skuDetailInfo.Qty != -1) { skuDetailInfo.QtySpecified = true; } skuDetailInfo.UpdatedTimestampSpecified = true; if (skuDetailInfo.SKUType == Constants.SKUType.OPTION.ToString()) { if (skuDetailInfo.UpdatedTimestamp == DateTime.MinValue) { skuDetailInfo.UpdatedTimestamp = (sdr["UpdatedOn"] != DBNull.Value) ? Convert.ToDateTime(sdr["UpdatedOn"]) : DateTime.MinValue; skuDetailInfo.UpdatedTimestampSpecified = true; } else { skuDetailInfo.UpdatedTimestamp = Convert.ToDateTime((sdr["UpdatedOn"])); skuDetailInfo.UpdatedTimestampSpecified = true; } } skuDetailInfo.OptionLicenseKey = (sdr["OptionLicenseKey"] != DBNull.Value) ? Convert.ToString(sdr["OptionLicenseKey"]) : ""; if (skuDetailInfo.SKUType == Constants.SKUType.SW.ToString()) { skuVersionInfoList = new List <VersionInfoWithLicense>(); while (previousSKUID == currentSKUID) { VersionInfoWithLicense versionObject = new VersionInfoWithLicense(); versionObject.VersionPartNo = (sdr["VersionPartNo"] != DBNull.Value) ? Convert.ToString(sdr["VersionPartNo"]) : ""; versionObject.VersionPartName = (sdr["VersionPartName"] != DBNull.Value) ? Convert.ToString(sdr["VersionPartName"]) : ""; versionObject.VersionSeqNo = (sdr["VersionSeqNo"] != DBNull.Value) ? Convert.ToInt32(sdr["VersionSeqNo"]) : -1; versionObject.Version = (sdr["Version"] != DBNull.Value) ? Convert.ToString(sdr["Version"]) : ""; versionObject.VersionType = (sdr["VersionType"] != DBNull.Value) ? Convert.ToString(sdr["VersionType"]) : ""; versionObject.VersionReleaseClassification = (sdr["VersionReleaseClassification"] != DBNull.Value) ? Convert.ToString(sdr["VersionReleaseClassification"]) : ""; versionObject.IsShippedVersion = (sdr["IsShippedVersion"] != DBNull.Value) ? Convert.ToBoolean(sdr["IsShippedVersion"]) : false; versionObject.LicenseKey = (sdr["LicenseKey"] != DBNull.Value) ? Convert.ToString(sdr["LicenseKey"]) : ""; versionObject.ReleaseDateSpecified = false; versionObject.ReleaseDate = (sdr["ReleaseDate"] != DBNull.Value) ? Convert.ToDateTime(sdr["ReleaseDate"]) : DateTime.MinValue; if (versionObject.ReleaseDate != DateTime.MinValue) { versionObject.ReleaseDateSpecified = true; } versionObject.VersionUpgradedOnSpecified = true; versionObject.VersionUpgradedOn = (sdr["VersionUpgradedDate"] != DBNull.Value) ? Convert.ToDateTime(sdr["VersionUpgradedDate"]) : DateTime.MinValue; if (versionObject.VersionUpgradedOn != DateTime.MinValue) { versionObject.VersionUpgradedOnSpecified = true; } versionObject.ImageUrl = (sdr["ImageUrl"] != DBNull.Value) ? Convert.ToString(sdr["ImageUrl"]) : ""; skuDetailInfo.UpdatedTimestampSpecified = true; bool del = (sdr["Deleted"] != DBNull.Value) ? Convert.ToBoolean(sdr["Deleted"]) : true; if (del == false) { if (skuDetailInfo.UpdatedTimestamp == DateTime.MinValue) { skuDetailInfo.UpdatedTimestamp = (sdr["UpdatedOn"] != DBNull.Value) ? Convert.ToDateTime(sdr["UpdatedOn"]) : DateTime.MinValue; skuDetailInfo.UpdatedTimestampSpecified = true; } else { skuDetailInfo.UpdatedTimestamp = Convert.ToDateTime((sdr["UpdatedOn"])); skuDetailInfo.UpdatedTimestampSpecified = true; } } skuVersionInfoList.Add(versionObject); i++; if (i < skuDataSet.Tables[0].Rows.Count) { sdr = skuDataSet.Tables[0].Rows[i]; currentSKUID = Convert.ToString(sdr["SKUID"]); } else { currentSKUID = string.Empty; } } // if come out reset to original place i--; skuDetailInfo.VersionList = skuVersionInfoList.ToArray(); } skuDetailInfoList.Add(skuDetailInfo); } } } } } catch (Exception ex) { throw new Exception("Building SKU Details Failed. " + ex.Message + Environment.NewLine + ex.StackTrace); } return(skuDetailInfoList.ToArray()); }