/// <summary> /// 拼商品详细信息(barcode/item_name/prop1/prop2/prop3/prop4/prop5) /// </summary> /// <param name="skuInfo"></param> /// <returns></returns> public static string GetItemAllName(SkuInfo skuInfo) { string display_name = string.Empty; display_name = string.Format("{0}/{1}", skuInfo.barcode, skuInfo.item_name); if (skuInfo.prop_1_id != null) { display_name += "/" + skuInfo.prop_1_detail_name; } if (skuInfo.prop_2_id != null) { display_name += "/" + skuInfo.prop_2_detail_name; } if (skuInfo.prop_3_id != null) { display_name += "/" + skuInfo.prop_3_detail_name; } if (skuInfo.prop_4_id != null) { display_name += "/" + skuInfo.prop_4_detail_name; } if (skuInfo.prop_5_id != null) { display_name += "/" + skuInfo.prop_5_detail_name; } return(display_name); }
/// <summary> /// 删除sku相关价格 /// </summary> /// <param name="skuInfo">sku对象</param> /// <returns></returns> public bool DeleteSkuPriceInfo(SkuInfo skuInfo, IDbTransaction pTran = null) { try { string sql = "update T_Sku_Price " + " set status= '-1' " + " ,modify_user_id = '" + loggingSessionInfo.CurrentUser.User_Id + "' " + " ,modify_time = '" + GetCurrentDateTime() + "'" + " ,if_flag = '0' " + " where sku_id = '" + skuInfo.sku_id + "';"; if (pTran != null) { this.SQLHelper.ExecuteNonQuery((SqlTransaction)pTran, CommandType.Text, sql.ToString(), null); } else { this.SQLHelper.ExecuteNonQuery(sql); } return(true); } catch (Exception) { return(false); } }
public CSGInfo(string PlanId, string ExternalReference, string SkuDuration, string TrialDuration, SkuInfo SkuData) { this.PlanId = PlanId; this.ExternalReference = ExternalReference; this.SkuDuration = SkuDuration; this.TrialDuration = TrialDuration; this.SkuData = SkuData; }
/// <summary> /// 更新Sku表打包标识方法 /// </summary> /// <param name="loggingSessionInfo">登录model</param> /// <param name="bat_id">批次标识</param> /// <returns></returns> public bool SetSkuIfFlagInfo(string bat_id, string user_id) { SkuInfo skuInfo = new SkuInfo(); skuInfo.bat_id = bat_id; skuInfo.modify_user_id = user_id; skuInfo.modify_time = GetCurrentDateTime(); MSSqlMapper.Instance().Update("Sku.UpdateUnDownloadIfFlag", skuInfo); return(true); }
/// <summary> /// 更新Sku表打包标识方法 /// </summary> /// <param name="loggingSessionInfo">登录model</param> /// <param name="bat_id">批次标识</param> /// <returns></returns> public bool SetSkuIfFlagInfo(LoggingSessionInfo loggingSessionInfo, string bat_id) { SkuInfo skuInfo = new SkuInfo(); skuInfo.bat_id = bat_id; skuInfo.modify_user_id = loggingSessionInfo.CurrentUser.User_Id; skuInfo.modify_time = GetCurrentDateTime(); cSqlMapper.Instance(loggingSessionInfo.CurrentLoggingManager).Update("Sku.UpdateUnDownloadIfFlag", skuInfo); return(true); }
public void AddStoreInformation(SkuInfo storeInfo) { title = storeInfo.title; price = storeInfo.price; description = storeInfo.description; sku = storeInfo.sku; currencyCode = storeInfo.currencyCode; currencySymbol = storeInfo.currencySymbol; purchasable = storeInfo.purchasable; }
/// <summary> /// 获取SKU属性定义 /// </summary> public string GetSkuPropCfgData(string orderId) { var skuService = new SkuService(new SessionManager().CurrentUserLoginInfo); SkuPropCfgInfo item = new SkuPropCfgInfo(); item.sku_prop_1 = "0"; item.sku_prop_2 = "0"; item.sku_prop_3 = "0"; item.sku_prop_4 = "0"; item.sku_prop_5 = "0"; string key = string.Empty; string content = string.Empty; var list = skuService.GetSkuInfoByOne(orderId); var sku = new SkuInfo(); if (list != null && list.Count > 0) { sku = list[0]; if (sku.prop_1_id != null && sku.prop_1_id.Length > 0) { item.sku_prop_1 = "1"; item.sku_prop_1_name = sku.prop_1_name; } if (sku.prop_2_id != null && sku.prop_2_id.Length > 0) { item.sku_prop_2 = "1"; item.sku_prop_2_name = sku.prop_2_name; } if (sku.prop_3_id != null && sku.prop_3_id.Length > 0) { item.sku_prop_3 = "1"; item.sku_prop_3_name = sku.prop_3_name; } if (sku.prop_4_id != null && sku.prop_4_id.Length > 0) { item.sku_prop_4 = "1"; item.sku_prop_4_name = sku.prop_4_name; } if (sku.prop_5_id != null && sku.prop_5_id.Length > 0) { item.sku_prop_5 = "1"; item.sku_prop_5_name = sku.prop_5_name; } } var jsonData = new JsonData(); jsonData.totalCount = item == null ? "0" : "1"; jsonData.data = item; content = jsonData.ToJSON(); return(content); }
/// <summary> /// 设置打包批次号 /// </summary> /// <param name="loggingSessionInfo">登录model</param> /// <param name="bat_id">批次号</param> /// <param name="SkuInfoList">商品集合</param> /// <returns></returns> public bool SetSkuBatInfo(string bat_id, IList <SkuInfo> SkuInfoList, string user_id) { SkuInfo skuInfo = new SkuInfo(); skuInfo.modify_user_id = user_id; skuInfo.modify_time = GetCurrentDateTime(); skuInfo.bat_id = bat_id; skuInfo.SkuInfoList = SkuInfoList; MSSqlMapper.Instance().Update("Sku.UpdateUnDownloadBatId", skuInfo); return(true); }
/// <summary> /// 设置打包批次号 /// </summary> /// <param name="loggingSessionInfo">登录model</param> /// <param name="bat_id">批次号</param> /// <param name="SkuInfoList">商品集合</param> /// <returns></returns> public bool SetSkuBatInfo(LoggingSessionInfo loggingSessionInfo, string bat_id, IList <SkuInfo> SkuInfoList) { SkuInfo skuInfo = new SkuInfo(); skuInfo.modify_user_id = loggingSessionInfo.CurrentUser.User_Id; skuInfo.modify_time = GetCurrentDateTime(); skuInfo.bat_id = bat_id; skuInfo.SkuInfoList = SkuInfoList; //cSqlMapper.Instance(loggingSessionInfo.CurrentLoggingManager).Update("Sku.UpdateUnDownloadBatId", skuInfo); return(true); }
/// <summary> /// 根据sku标识获取sku明细 /// </summary> /// <param name="skuId">sku标识</param> /// <returns></returns> public SkuInfo GetSkuInfoById(string skuId) { SkuInfo skuInfo = new SkuInfo(); DataSet ds = new DataSet(); ds = skuService.GetSkuInfoById(skuId); if (ds != null && ds.Tables[0].Rows.Count > 0) { skuInfo = DataTableToObject.ConvertToObject <SkuInfo>(ds.Tables[0].Rows[0]); } return(skuInfo); }
public string GetItemInfoByBarcode(string barcode) { cPos.Model.LoggingSessionInfo loggingSessionInfo = new cPos.Model.LoggingSessionInfo(); var itemService = new ItemService(); var skuService = new SkuService(); ItemInfo item = new ItemInfo(); SkuInfo sku = skuService.GetSkuByBarcode(barcode); item.SkuInfoByBarcode = sku; if (sku != null) { item.ItemInfoByBarcode = itemService.GetItemInfoById(loggingSessionInfo, sku.item_id); } return(XMLGenerator.Serialize(item)); }
protected void sendUnexpectedPurchaseResponse(PurchaseInfo pi, SkuInfo si, CommerceError cError = null) { if (PurchaseResponse != null) { CommerceLog("sendUnexpectedPurchaseResponse: not null"); if (cError == null) { cError = new CommerceError(); } UnexpectedPurchaseResponse(pi, si, cError); } else { CommerceLog("sendUnexpectedPurchaseResponse: listner is null and not pointing to anything"); } }
/// <summary> /// 插入sku信息 /// </summary> /// <param name="skuInfo"></param> /// <param name="pTran"></param> public void InsertSku(SkuInfo skuInfo, IDbTransaction pTran) { #region string sql = "insert into t_sku " + " (sku_id " + " ,item_id " + " ,sku_prop_id1 " + " ,sku_prop_id2 " + " ,sku_prop_id3 " + " ,sku_prop_id4 " + " ,sku_prop_id5 " + " ,barcode " + " ,bat_id " + " ,status " + " ,create_user_id " + " ,create_time " + " ,modify_user_id " + " ,modify_time " + " ) " + " select a.* From ( select '" + skuInfo.sku_id + "' sku_id" + ", '" + skuInfo.item_id + "' item_id" + ", '" + skuInfo.prop_1_detail_id + "' sku_prop_id1" + ", '" + skuInfo.prop_2_detail_id + "' sku_prop_id2" + ", '" + skuInfo.prop_3_detail_id + "' sku_prop_id3" + ", '" + skuInfo.prop_4_detail_id + "' sku_prop_id4" + ", '" + skuInfo.prop_5_detail_id + "' sku_prop_id5" + ", '" + skuInfo.barcode + "' barcode" + ", '" + skuInfo.bat_id + "' bat_id" + ", '1' status" + ", '" + skuInfo.create_user_id + "' create_user_id" + ", '" + skuInfo.create_time + "' create_time" + ", '" + skuInfo.create_user_id + "' modify_user_id" + ", '" + skuInfo.create_time + "' modify_time" + " ) a " + " left join t_sku b on(a.sku_id = b.sku_id) where b.sku_id is null ;"; #endregion if (pTran != null) { this.SQLHelper.ExecuteNonQuery((SqlTransaction)pTran, CommandType.Text, sql.ToString(), null); } else { this.SQLHelper.ExecuteNonQuery(sql); } }
/// <summary> /// 删除单个sku /// </summary> /// add by donal 2014-10-11 17:37:37 public void DeleteSku(SkuInfo skuInfo, IDbTransaction pTran) { string sql = "update t_sku " + " set status= '-1' " + " ,modify_user_id = '" + skuInfo.create_user_id + "' " + " ,modify_time = '" + skuInfo.create_time + "'" + " ,if_flag = '0' " + " where t_sku.sku_id = '" + skuInfo.sku_id + "';"; if (pTran != null) { this.SQLHelper.ExecuteNonQuery((SqlTransaction)pTran, CommandType.Text, sql.ToString(), null); } else { this.SQLHelper.ExecuteNonQuery(sql); } }
public static Sku ToSku(SkuInfo sku) { var obj = new Sku(); obj.sku_id = sku.sku_id; obj.item_id = sku.item_id; obj.prop_1_detail_id = sku.prop_1_detail_id; obj.prop_1_detail_code = sku.prop_1_detail_code; obj.prop_1_detail_name = sku.prop_1_detail_name; obj.prop_2_detail_id = sku.prop_2_detail_id; obj.prop_2_detail_code = sku.prop_2_detail_code; obj.prop_2_detail_name = sku.prop_2_detail_name; obj.prop_3_detail_id = sku.prop_3_detail_id; obj.prop_3_detail_code = sku.prop_3_detail_code; obj.prop_3_detail_name = sku.prop_3_detail_name; obj.prop_4_detail_id = sku.prop_4_detail_id; obj.prop_4_detail_code = sku.prop_4_detail_code; obj.prop_4_detail_name = sku.prop_4_detail_name; obj.prop_5_detail_id = sku.prop_5_detail_id; obj.prop_5_detail_code = sku.prop_5_detail_code; obj.prop_5_detail_name = sku.prop_5_detail_name; obj.prop_1_id = sku.prop_1_id; obj.prop_1_code = sku.prop_1_code; obj.prop_1_name = sku.prop_1_name; obj.prop_2_id = sku.prop_2_id; obj.prop_2_code = sku.prop_2_code; obj.prop_2_name = sku.prop_2_name; obj.prop_3_id = sku.prop_3_id; obj.prop_3_code = sku.prop_3_code; obj.prop_3_name = sku.prop_3_name; obj.prop_4_id = sku.prop_4_id; obj.prop_4_code = sku.prop_4_code; obj.prop_4_name = sku.prop_4_name; obj.prop_5_id = sku.prop_5_id; obj.prop_5_code = sku.prop_5_code; obj.prop_5_name = sku.prop_5_name; obj.barcode = sku.barcode; obj.status = sku.status; obj.create_time = sku.create_time; obj.create_user_id = sku.create_user_id; obj.modify_time = sku.modify_time; obj.modify_user_id = sku.modify_user_id; return obj; }
/// <summary> /// 修改sku信息 /// </summary> /// <param name="skuInfo"></param> /// <param name="pTran"></param> public void UpdateSku(SkuInfo skuInfo, IDbTransaction pTran) { string sql = "update t_sku " + " set sku_prop_id1 = '" + skuInfo.prop_1_detail_id + "' " + " ,sku_prop_id2 = '" + skuInfo.prop_2_detail_id + "' " + " ,sku_prop_id3 = '" + skuInfo.prop_3_detail_id + "' " + " ,sku_prop_id4 = '" + skuInfo.prop_4_detail_id + "' " + " ,sku_prop_id5 = '" + skuInfo.prop_5_detail_id + "' " + " ,barcode = '" + skuInfo.barcode + "' " + " ,modify_user_id = '" + skuInfo.create_user_id + "' " + " ,modify_time = '" + skuInfo.create_time + "' " + " ,status = '1' " + " ,if_flag = '0' where sku_id = '" + skuInfo.sku_id + "'"; if (pTran != null) { this.SQLHelper.ExecuteNonQuery((SqlTransaction)pTran, CommandType.Text, sql.ToString(), null); } else { this.SQLHelper.ExecuteNonQuery(sql); } }
public UnexpectedPurchase(PurchaseInfo pi, SkuInfo si) { PI = pi; SI = si; }
/// <summary> /// 删除sku相关价格 /// </summary> /// <param name="skuInfo">sku对象</param> /// <returns></returns> public bool DeleteSkuPriceInfo(SkuInfo skuInfo) { return(skuPriceService.DeleteSkuPriceInfo(skuInfo)); }
/// <summary> /// 保存商品 /// </summary> public string SaveItemData() { var itemService = new ItemService(CurrentUserInfo); ItemInfo obj = new ItemInfo(); string content = string.Empty; string error = ""; var responseData = new ResponseData(); string key = string.Empty; string item_id = string.Empty; if (Request("item") != null && Request("item") != string.Empty) { key = Request("item").ToString().Trim(); } if (Request("item_id") != null && Request("item_id") != string.Empty) { item_id = Request("item_id").ToString().Trim(); } obj = key.DeserializeJSONTo <ItemInfo>(); if (item_id.Trim().Length == 0) { obj.Item_Id = Utils.NewGuid(); //user.UnitList = loggingSessionInfo.CurrentUserRole.UnitId; } else { obj.Item_Id = item_id; } if (obj.Item_Code == null || obj.Item_Code.Trim().Length == 0) { obj.Item_Code = itemService.GetGreatestItemCode(CurrentUserInfo); if (obj.Item_Code.Length == 0) { responseData.success = false; responseData.msg = "商品编码自动生成失败,请联系管理员。"; return(responseData.ToJSON()); } } else { if (!string.IsNullOrEmpty(obj.Item_Id)) { if (!itemService.IsExistItemCode(CurrentUserInfo, obj.Item_Code, obj.Item_Id)) { responseData.success = false; responseData.msg = "商品编码不能重复"; return(responseData.ToJSON()); } } } //操作类型 if (!string.IsNullOrWhiteSpace(Request("operation"))) { obj.OperationType = Request("operation").ToUpper().Trim(); } if (obj.Item_Name == null || obj.Item_Name.Trim().Length == 0) { responseData.success = false; responseData.msg = "商品名称不能为空"; return(responseData.ToJSON()); } if (obj.Item_Category_Id == null || obj.Item_Category_Id.Trim().Length == 0) { responseData.success = false; responseData.msg = "商品分类不能为空"; return(responseData.ToJSON()); } if (obj.SkuList != null && obj.SkuList.Count > 0)//在单个的时候都已经添加过了 { foreach (var tmpSku in obj.SkuList) { tmpSku.item_id = obj.Item_Id; if (tmpSku.sku_id == null || tmpSku.sku_id.Length == 0) { tmpSku.sku_id = Utils.NewGuid(); } //处理sku相关价格(jifeng.cao 20140224) foreach (var item in tmpSku.sku_price_list) { item.sku_id = tmpSku.sku_id; if (item.sku_price_id == null || item.sku_price_id.Length == 0) { item.sku_price_id = Utils.NewGuid(); } } } } else { //对于无SKU配置的客户,默认生成一个SKU SkuInfo skuInfo = new SkuInfo(); skuInfo.sku_id = Utils.NewGuid(); skuInfo.item_id = obj.Item_Id; item_id = skuInfo.sku_id; //skuInfo.barcode = skuInfo.item_code; //skuInfo.prop_1_detail_id = "--"; //skuInfo.prop_2_detail_id = "--"; //skuInfo.prop_3_detail_id = "--"; //skuInfo.prop_4_detail_id = "--"; //skuInfo.prop_5_detail_id = "--"; //skuInfo.status = "1"; //skuInfo.create_user_id = "System"; //skuInfo.create_time = DateTime.Now.ToString(); obj.SkuList.Add(skuInfo); } itemService.SetItemInfo(obj, out error); #region 生成二维码 /** * item_id = obj.Item_Id; * var wapentity = new WApplicationInterfaceBLL(this.CurrentUserInfo).QueryByEntity(new WApplicationInterfaceEntity * { * * CustomerId = this.CurrentUserInfo.ClientID, * IsDelete = 0 * * }, null).FirstOrDefault(); * * * var QRCodeId = Guid.NewGuid(); * if (!string.IsNullOrEmpty(obj.imageUrl)) * { * var QRCodeManagerentity = new WQRCodeManagerBLL(this.CurrentUserInfo).QueryByEntity(new WQRCodeManagerEntity * { * ObjectId = item_id * }, null).FirstOrDefault(); * if (QRCodeManagerentity != null) * { * QRCodeId = (Guid)QRCodeManagerentity.QRCodeId; * } * if (QRCodeManagerentity == null) * { * var wqrentity = new WQRCodeTypeBLL(this.CurrentUserInfo).QueryByEntity( * * new WQRCodeTypeEntity { TypeCode = "ItemQrCode" } * * , null).FirstOrDefault(); * * * * var WQRCodeManagerbll = new WQRCodeManagerBLL(this.CurrentUserInfo); * * * WQRCodeManagerbll.Create(new WQRCodeManagerEntity * { * QRCodeId = QRCodeId, * QRCode = obj.MaxWQRCod, * QRCodeTypeId = wqrentity.QRCodeTypeId, * IsUse = 1, * ObjectId = item_id, * CreateBy = this.CurrentUserInfo.UserID, * ApplicationId = wapentity.ApplicationId, * IsDelete = 0, * ImageUrl = obj.imageUrl, * CustomerId = this.CurrentUserInfo.ClientID * * }); * * } * } **/ #endregion #region 添加图文消息|文本信息 /* * var WKeywordReplyentity = new WKeywordReplyBLL(this.CurrentUserInfo).QueryByEntity(new WKeywordReplyEntity() * { * Keyword = QRCodeId.ToString() * * }, null).FirstOrDefault(); * * if (WKeywordReplyentity == null) * { * WKeywordReplyentity = new WKeywordReplyEntity(); * Guid ReplyId = Guid.NewGuid(); * WKeywordReplyentity.ReplyId = ReplyId.ToString(); * WKeywordReplyentity.Keyword = QRCodeId.ToString(); * WKeywordReplyentity.ApplicationId = wapentity.ApplicationId; * WKeywordReplyentity.KeywordType = 4; * WKeywordReplyentity.IsDelete = 0; * if (obj.ReplyType == "1") * { * WKeywordReplyentity.ReplyType = 1; * WKeywordReplyentity.Text = obj.Text; * } * else if (obj.ReplyType == "3") * { * WKeywordReplyentity.ReplyType = 3; * WMenuMTextMappingBLL MenuMTextMappingServer = new WMenuMTextMappingBLL(this.CurrentUserInfo); * foreach (var item in obj.listMenutextMapping) * { * WMenuMTextMappingEntity MappingEntity = new WMenuMTextMappingEntity(); * MappingEntity.MappingId = Guid.NewGuid(); * MappingEntity.MenuId = ReplyId.ToString(); * MappingEntity.TextId = item.TextId; * MappingEntity.DisplayIndex = item.DisplayIndex; * MappingEntity.CustomerId = this.CurrentUserInfo.ClientID; * MenuMTextMappingServer.Create(MappingEntity); * } * * } * new WKeywordReplyBLL(this.CurrentUserInfo).Create(WKeywordReplyentity); * } * else * { * WMenuMTextMappingBLL MenuMTextMappingServer = new WMenuMTextMappingBLL(this.CurrentUserInfo); * var MenuMTextMappinglist = MenuMTextMappingServer.QueryByEntity(new WMenuMTextMappingEntity * { * MenuId = WKeywordReplyentity.ReplyId, * CustomerId = this.CurrentUserInfo.ClientID, * IsDelete = 0 * }, null); * * if (MenuMTextMappinglist != null && MenuMTextMappinglist.Length > 0) * { * foreach (var item in MenuMTextMappinglist) * { * * MenuMTextMappingServer.Delete(new WMenuMTextMappingEntity * { * MappingId = item.MappingId * }, null); * } * } * WKeywordReplyentity.KeywordType = 4; * if (obj.ReplyType == "1") * { * WKeywordReplyentity.ReplyType = 1; * WKeywordReplyentity.Text = obj.Text; * * * } * else if (obj.ReplyType == "3") * { * WKeywordReplyentity.ReplyType = 3; * WKeywordReplyentity.Text = ""; * foreach (var item in obj.listMenutextMapping) * { * WMenuMTextMappingEntity MappingEntity = new WMenuMTextMappingEntity(); * MappingEntity.MappingId = Guid.NewGuid(); * MappingEntity.MenuId = WKeywordReplyentity.ReplyId; * MappingEntity.TextId = item.TextId; * MappingEntity.DisplayIndex = item.DisplayIndex; * MappingEntity.CustomerId = this.CurrentUserInfo.ClientID; * MenuMTextMappingServer.Create(MappingEntity); * } * } * new WKeywordReplyBLL(this.CurrentUserInfo).Update(WKeywordReplyentity); * } **/ #endregion responseData.success = true; responseData.msg = error; content = responseData.ToJSON(); return(content); }
public SkuInfo FetchSkuInfo(string rackSkuName) { SkuInfo skuInfo = null; SkuObject skuObject = null; try { var skuRefHandler = new SkuRefHandler(); skuObject = skuRefHandler.GetSkuDetails(rackSkuName); if (skuObject == null || skuObject.Results == null || !skuObject.Results.Any() || !string.IsNullOrEmpty(skuObject.Error)) { return(skuInfo); } } catch (Exception ex) { SendEmail.SendExoSkuMsAssetReportEmail(Constants.serviceAccountAlias, Constants.automationTeam, "FetchSkuInfo exception", ex.ToString()); return(skuInfo); } // Initialize the skuInfo object skuInfo = new SkuInfo(); foreach (var skuInfoResult in skuObject.Results) { if (skuInfoResult != null && skuInfoResult.Name != null && skuInfoResult.Name.Equals(rackSkuName, StringComparison.OrdinalIgnoreCase) && skuInfoResult.Items != null) { // Fill Servers var serverItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("Server", StringComparison.OrdinalIgnoreCase) && IsServer(sItem.SingleScanDetails)); if (serverItems != null && serverItems.Any()) { skuInfo.ServerSpec = new TechSpec(); skuInfo.ServerLayout = new List <PhysicalRackLayout>(); foreach (var serverItem in serverItems) { if (serverItem != null) { skuInfo.ServerSpec.QuantityPerRack += serverItem.Quantity; skuInfo.ServerSpec.DskuName = string.IsNullOrEmpty(skuInfo.ServerSpec.DskuName) ? (serverItem.DiscreteSkuName): (skuInfo.ServerSpec.DskuName + ";" + serverItem.DiscreteSkuName); skuInfo.ServerSpec.MsfNumber = serverItem.MsfPartNumberAx; skuInfo.ServerSpec.Model = serverItem.ModelName; if (serverItem.SingleScanDetails != null && serverItem.SingleScanDetails.Any()) { var singleScanDetails = serverItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.ServerLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } // Fill Chassis var chassisItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("Chassis", StringComparison.OrdinalIgnoreCase) && IsChassis(sItem.SingleScanDetails)); if (chassisItems != null && chassisItems.Any()) { skuInfo.ChassisSpec = new TechSpec(); skuInfo.ChassisLayout = new List <PhysicalRackLayout>(); foreach (var chassisItem in chassisItems) { if (chassisItem != null) { skuInfo.ChassisSpec.QuantityPerRack += chassisItem.Quantity; skuInfo.ChassisSpec.DskuName = string.IsNullOrEmpty(skuInfo.ChassisSpec.DskuName) ? (chassisItem.DiscreteSkuName) : (skuInfo.ChassisSpec.DskuName + ";" + chassisItem.DiscreteSkuName); skuInfo.ChassisSpec.MsfNumber = chassisItem.MsfPartNumberAx; skuInfo.ChassisSpec.Model = chassisItem.ModelName; if (chassisItem.SingleScanDetails != null && chassisItem.SingleScanDetails.Any()) { var singleScanDetails = chassisItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.ChassisLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } // Fill Chassis Manager var chassisManagerItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("Server", StringComparison.OrdinalIgnoreCase) && IsChassisManager(sItem.SingleScanDetails)); if (chassisManagerItems != null && chassisManagerItems.Any()) { skuInfo.ChassisManagerSpec = new TechSpec(); skuInfo.ChassisManagerLayout = new List <PhysicalRackLayout>(); foreach (var chassisManagerItem in chassisManagerItems) { if (chassisManagerItem != null) { skuInfo.ChassisManagerSpec.QuantityPerRack += chassisManagerItem.Quantity; skuInfo.ChassisManagerSpec.DskuName = string.IsNullOrEmpty(skuInfo.ChassisManagerSpec.DskuName) ? (chassisManagerItem.DiscreteSkuName) : (skuInfo.ChassisManagerSpec.DskuName + ";" + chassisManagerItem.DiscreteSkuName); skuInfo.ChassisManagerSpec.MsfNumber = chassisManagerItem.MsfPartNumberAx; skuInfo.ChassisManagerSpec.Model = chassisManagerItem.ModelName; if (chassisManagerItem.SingleScanDetails != null && chassisManagerItem.SingleScanDetails.Any()) { var singleScanDetails = chassisManagerItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.ChassisManagerLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } // Fill Rack var rackItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("Rack", StringComparison.OrdinalIgnoreCase) && IsRack(sItem.SingleScanDetails)); if (rackItems != null && rackItems.Any()) { skuInfo.RackSpec = new TechSpec(); skuInfo.RackLayout = new List <PhysicalRackLayout>(); foreach (var rackItem in rackItems) { if (rackItem != null) { skuInfo.RackSpec.QuantityPerRack += rackItem.Quantity; skuInfo.RackSpec.DskuName = string.IsNullOrEmpty(skuInfo.RackSpec.DskuName) ? (rackItem.DiscreteSkuName) : (skuInfo.RackSpec.DskuName + ";" + rackItem.DiscreteSkuName); skuInfo.RackSpec.MsfNumber = rackItem.MsfPartNumberAx; skuInfo.RackSpec.Model = rackItem.ModelName; if (rackItem.SingleScanDetails != null && rackItem.SingleScanDetails.Any()) { var singleScanDetails = rackItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.RackLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } // Fill UPS var upsItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && (sItem.AssetType.Equals("Server", StringComparison.OrdinalIgnoreCase) || sItem.AssetType.Equals("PowerStrip", StringComparison.OrdinalIgnoreCase)) && IsUps(sItem.SingleScanDetails)); if (upsItems != null && upsItems.Any()) { skuInfo.UpsSpec = new TechSpec(); skuInfo.UpsLayout = new List <PhysicalRackLayout>(); foreach (var upsItem in upsItems) { if (upsItem != null) { skuInfo.UpsSpec.QuantityPerRack += upsItem.Quantity; skuInfo.UpsSpec.DskuName = string.IsNullOrEmpty(skuInfo.UpsSpec.DskuName) ? (upsItem.DiscreteSkuName) : (skuInfo.UpsSpec.DskuName + ";" + upsItem.DiscreteSkuName); skuInfo.UpsSpec.MsfNumber = upsItem.MsfPartNumberAx; skuInfo.UpsSpec.Model = upsItem.ModelName; if (upsItem.SingleScanDetails != null && upsItem.SingleScanDetails.Any()) { var singleScanDetails = upsItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.UpsLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } // Fill ToR Switch var switchItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("NetDevice", StringComparison.OrdinalIgnoreCase) && IsSwitch(sItem.SingleScanDetails)); if (switchItems != null && switchItems.Any()) { skuInfo.SwitchSpec = new TechSpec(); skuInfo.SwitchLayout = new List <PhysicalRackLayout>(); foreach (var switchItem in switchItems) { if (switchItem != null) { skuInfo.SwitchSpec.QuantityPerRack += switchItem.Quantity; skuInfo.SwitchSpec.DskuName = string.IsNullOrEmpty(skuInfo.SwitchSpec.DskuName) ? (switchItem.DiscreteSkuName) : (skuInfo.SwitchSpec.DskuName + ";" + switchItem.DiscreteSkuName); skuInfo.SwitchSpec.MsfNumber = switchItem.MsfPartNumberAx; skuInfo.SwitchSpec.Model = switchItem.ModelName; if (switchItem.SingleScanDetails != null && switchItem.SingleScanDetails.Any()) { var singleScanDetails = switchItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.SwitchLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } // Fill Load Balancer var loadBalancerItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("NetDevice", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(sItem.DiscreteSkuNetDeviceType) && sItem.DiscreteSkuNetDeviceType.IndexOf("Load", StringComparison.OrdinalIgnoreCase) >= 0); if (loadBalancerItems != null && loadBalancerItems.Any()) { skuInfo.LoadBalancerSpec = new TechSpec(); skuInfo.LoadBalancerLayout = new List <PhysicalRackLayout>(); foreach (var loadBalancerItem in loadBalancerItems) { if (loadBalancerItem != null) { skuInfo.LoadBalancerSpec.QuantityPerRack += loadBalancerItem.Quantity; skuInfo.LoadBalancerSpec.DskuName = string.IsNullOrEmpty(skuInfo.LoadBalancerSpec.DskuName) ? (loadBalancerItem.DiscreteSkuName) : (skuInfo.LoadBalancerSpec.DskuName + ";" + loadBalancerItem.DiscreteSkuName); skuInfo.LoadBalancerSpec.MsfNumber = loadBalancerItem.MsfPartNumberAx; skuInfo.LoadBalancerSpec.Model = loadBalancerItem.ModelName; if (loadBalancerItem.SingleScanDetails != null && loadBalancerItem.SingleScanDetails.Any()) { var singleScanDetails = loadBalancerItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.LoadBalancerLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } // Fill ILO and DIGI var iloItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("NetDevice", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(sItem.DiscreteSkuNetDeviceType) && sItem.DiscreteSkuNetDeviceType.IndexOf("ILO", StringComparison.OrdinalIgnoreCase) >= 0 && IsIloSwitch(sItem.SingleScanDetails)); var digiItems = skuInfoResult.Items.Where(sItem => !string.IsNullOrEmpty(sItem.AssetType) && sItem.AssetType.Equals("NetDevice", StringComparison.OrdinalIgnoreCase) && !string.IsNullOrEmpty(sItem.Manufacturer) && sItem.Manufacturer.IndexOf("Digi", StringComparison.OrdinalIgnoreCase) >= 0 && IsDigiSwitch(sItem.SingleScanDetails)); iloItems = iloItems.Union(digiItems); if (iloItems != null && iloItems.Any()) { skuInfo.IloSpec = new TechSpec(); skuInfo.IloLayout = new List <PhysicalRackLayout>(); foreach (var iloItem in iloItems) { if (iloItem != null) { skuInfo.IloSpec.QuantityPerRack += iloItem.Quantity; skuInfo.IloSpec.DskuName = string.IsNullOrEmpty(skuInfo.IloSpec.DskuName) ? (iloItem.DiscreteSkuName) : (skuInfo.IloSpec.DskuName + ";" + iloItem.DiscreteSkuName); skuInfo.IloSpec.MsfNumber = iloItem.MsfPartNumberAx; skuInfo.IloSpec.Model = iloItem.ModelName; if (iloItem.SingleScanDetails != null && iloItem.SingleScanDetails.Any()) { var singleScanDetails = iloItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.IloLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } if (digiItems != null && digiItems.Any()) { skuInfo.DigiSpec = new TechSpec(); skuInfo.DigiLayout = new List <PhysicalRackLayout>(); foreach (var digiItem in digiItems) { if (digiItem != null) { skuInfo.DigiSpec.QuantityPerRack += digiItem.Quantity; skuInfo.DigiSpec.DskuName = string.IsNullOrEmpty(skuInfo.DigiSpec.DskuName) ? (digiItem.DiscreteSkuName) : (skuInfo.DigiSpec.DskuName + ";" + digiItem.DiscreteSkuName); skuInfo.DigiSpec.MsfNumber = digiItem.MsfPartNumberAx; skuInfo.DigiSpec.Model = digiItem.ModelName; if (digiItem.SingleScanDetails != null && digiItem.SingleScanDetails.Any()) { var singleScanDetails = digiItem.SingleScanDetails; foreach (var ssd in singleScanDetails) { if (ssd != null) { skuInfo.DigiLayout.Add(new PhysicalRackLayout { Slot = ssd.SlotNum, BinNumber = converToInt(ssd.BinNum) }); } } } } } } } } return(skuInfo); }
void ChangeTaxonomy(TaxonomyInfo currentTaxonomy, bool moveBlanks, Stack <EntityDataGridView.ChangeItem> undoHistory) { var waitkey = FrmWaitScreen.ShowMessage("Moving SKUs"); var newTaxonomy = NewValues.Tax; var changeId = Guid.NewGuid(); if (currentTaxonomy != null && !newTaxonomy.SchemaInfos.SelectMany(si => si.SchemaDatas).Any(sd => sd.Active) && currentTaxonomy.SchemaInfos.SelectMany(si => si.SchemaDatas).Any(sd => sd.Active)) { if (MessageBox.Show( @"The selected Destination node does not have an existing schema, do you wish it to be created from the Source Taxonomy?", @"Empty Schema", MessageBoxButtons.YesNo) == DialogResult.Yes) { FrmWaitScreen.UpdateMessage(waitkey, "Copying Schema"); var sourceSchemaDataList = currentTaxonomy.SchemaInfos.Where(si => si.SchemaData != null).Select(si => si.SchemaData).ToList(); CopySchema(sourceSchemaDataList, newTaxonomy); } } else if (currentTaxonomy != null && newTaxonomy.SchemaInfos.SelectMany(si => si.SchemaDatas).Any(sd => sd.Active) && currentTaxonomy.SchemaInfos.SelectMany(si => si.SchemaDatas).Any(sd => sd.Active)) { //Schema Append Process if (MessageBox.Show( string.Format("The selected destination node has an existing schema. Do you want to append additional schema attributes from the source node to the destination node? {0}{0}NOTE: Rank order of the appended schema attributes will be preserved and placed at the end of the existing schema.", Environment.NewLine), @"Append Schema", MessageBoxButtons.YesNo) == DialogResult.Yes) { FrmWaitScreen.UpdateMessage(waitkey, "Copying Schema"); var sourceAttributeList = currentTaxonomy.SchemaInfos.Where(si => si.SchemaData != null).Select( si => si.Attribute).Except ( newTaxonomy.SchemaInfos.Where(si => si.SchemaData != null).Select(si => si.Attribute) ).ToList(); var sourceSchemaDataList = currentTaxonomy.SchemaInfos.Where(si => sourceAttributeList.Contains(si.Attribute)).Select( si => si.SchemaData).ToList(); CopySchema(sourceSchemaDataList, newTaxonomy, true); } } int skuCount = 0; var resetTaxonomies = new List <TaxonomyInfo> { newTaxonomy }; var skus = GetSkus().Union(moveBlanks ? GetBlanks() : new List <Sku>()).ToList(); foreach (var sku in skus) { FrmWaitScreen.UpdateMessage(waitkey, string.Format("Moving SKUs ({0} of {1})", ++skuCount, skus.Count)); var currentSku = sku; // Make existing SkuInfos Inactive var oldSkuInfo = currentSku.SkuInfos.FirstOrDefault(si => si.Active); if (oldSkuInfo != null) { oldSkuInfo.Active = false; resetTaxonomies.Add(oldSkuInfo.TaxonomyInfo); } // Create a new SkuInfo var newSkuInfo = new SkuInfo { TaxonomyInfo = newTaxonomy }; currentSku.SkuInfos.Add(newSkuInfo); // Add these two to change history for Undo if (undoHistory != null) { undoHistory.Push(new EntityDataGridView.ChangeItem(oldSkuInfo, newSkuInfo, changeId)); } } resetTaxonomies.Distinct().ForEach(AryaTools.Instance.Forms.TreeForm.taxonomyTree.ResetSkuCount); FrmWaitScreen.HideMessage(waitkey); }