예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
            }
        }
예제 #3
0
 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;
 }
예제 #4
0
        /// <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);
        }
예제 #5
0
파일: SkuService.cs 프로젝트: radtek/crm
        /// <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);
        }
예제 #6
0
 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;
 }
예제 #7
0
        /// <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);
        }
예제 #8
0
        /// <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);
        }
예제 #9
0
        /// <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);
        }
예제 #10
0
        /// <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);
        }
예제 #11
0
    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");
     }
 }
예제 #13
0
 /// <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);
     }
 }
예제 #14
0
        /// <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);
            }
        }
예제 #15
0
 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;
 }
예제 #16
0
        /// <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;
 }
예제 #18
0
 /// <summary>
 /// 删除sku相关价格
 /// </summary>
 /// <param name="skuInfo">sku对象</param>
 /// <returns></returns>
 public bool DeleteSkuPriceInfo(SkuInfo skuInfo)
 {
     return(skuPriceService.DeleteSkuPriceInfo(skuInfo));
 }
예제 #19
0
        /// <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);
        }
예제 #21
0
        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);
        }