Exemplo n.º 1
0
        /// <summary>
        /// 删除
        /// </summary>
        public override void EntityDelete()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = EntityGet();

            rule.RDelete(entity);
        }
Exemplo n.º 2
0
        public async Task <HttpResponseMessage> LoadReservationTransObj([FromBody] int id)
        {
            try
            {
                var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);

                var reservation = await Rule.FindAsync(id);

                ReservationTransObj reservationTransObj = new ReservationTransObj();

                reservationTransObj.Reservation        = Mapper.Map <ReservationVM>(reservation);
                reservationTransObj.ReservationDetails = reservationTransObj.Reservation.ReservationDetails;


                for (int i = 0; i < reservationTransObj.ReservationDetails.Count; i++)
                {
                    ItemRule itemRule = new ItemRule();
                    reservationTransObj.ReservationDetails[i].Saze = Mapper.Map <SazeVM>(await itemRule.FindAsync(reservationTransObj.ReservationDetails[i].SazeID));
                }

                ReservationRule reservationRule = new ReservationRule();

                reservationTransObj.Reservation.Contact = Mapper.Map <ContactVM>(await reservationRule.FindAsync(reservation.ContactID));


                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = reservationTransObj }));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 删除
        /// </summary>
        public override void EntityDelete()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = EntityGet();

            entity.SelectByID();
        }
Exemplo n.º 4
0
        /// <summary>
        /// 绑定Grid
        /// </summary>
        public override void BindGrid()
        {
            string sql = string.Empty;// " AND ItemTypeID=" + SysString.ToDBString((int)EnumItemType.面料);

            string itemtypestr = "0";

            for (int i = 0; i < HTItemTypeIDA.Length; i++)
            {
                itemtypestr += ",";
                itemtypestr += HTItemTypeIDA[i];
            }
            sql = " AND ItemTypeID IN(" + itemtypestr + ")";

            if (ItemClassArray != "-1" && ItemClassArray != "")
            {
                sql += " AND ItemClassID IN(" + ItemClassArray + ")";
            }
            ItemRule rule = new ItemRule();

            DataTable dt = rule.RShowColor(sql + HTDataConditionStr, ProcessGrid.GetQueryField(gridView1).Replace("SelectFlag", "0 SelectFlag"));

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (list.Contains(SysConvert.ToString(dt.Rows[i]["ID"])))
                {
                    dt.Rows[i]["SelectFlag"] = 1;
                }
            }
            gridView1.GridControl.DataSource = dt;
            gridView1.GridControl.Show();
        }
Exemplo n.º 5
0
        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = EntityGet();

            rule.RAdd(entity);
            return(entity.ID);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = EntityGet();

            ItemDts[] entityDts = GetItemDts();
            rule.RUpdateYarn(entity, entityDts);
        }
Exemplo n.º 7
0
        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = EntityGet();

            ItemDts[] entityDts = GetItemDts();
            rule.RAddYarn(entity, entityDts);
            return(entity.ID);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            //ItemGB[] entityItemGB = GetItemGB();
            ItemCompositeDts[] entityItemCompositeDts = GetItemCompositeDts();
            //ItemLBDts[] entityItemLBDts = GetItemLBDts();
            //ItemColorDts[] entityItemColorDts = GetItemColorDts();
            rule.RUpdate(entity, entityItemCompositeDts);
        }
Exemplo n.º 9
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            try
            {
                if (HTDataID == 0)
                {
                    this.ShowMessage("面料数据没有保存,请检查!");
                    return;
                }
                ItemRule rule   = new ItemRule();
                Item     entity = new Item();
                entity.ID = HTDataID;
                entity.SelectByID();

                if (entity.GreyFabItemCode != "")
                {
                    this.ShowMessage("坯布信息已关联,请检查!");
                    return;
                }

                ItemRule p_rule   = new ItemRule();
                Item     p_entity = new Item();
                p_entity.ItemCode    = "G" + entity.ItemCode;
                p_entity.ItemName    = entity.ItemName;
                p_entity.ItemStd     = entity.ItemStd;
                p_entity.ItemModel   = entity.ItemModel;
                p_entity.ItemModelEn = entity.ItemModelEn;
                p_entity.UseableFlag = entity.UseableFlag;
                p_entity.MWeight     = entity.MWeight;
                p_entity.MWeight2    = entity.MWeight2;
                p_entity.FK          = entity.FK;
                p_entity.ItemUnit    = entity.ItemUnit;
                p_entity.ItemDate    = DateTime.Now.Date;

                p_entity.MWidth     = entity.MWidth;
                p_entity.Remark     = entity.Remark;
                p_entity.ItemTypeID = (int)EnumItemType.坯布;
                p_rule.RAdd(p_entity);

                entity.GreyFabItemCode = p_entity.ItemCode;
                rule.RUpdate(entity);
                txtGreyItemDes.Text     = Common.GetItemDesc(p_entity.ItemCode);
                txtGreyFabItemCode.Text = p_entity.ItemCode;



                this.ShowInfoMessage("坯布生成成功!");
            }
            catch (Exception E)
            {
                this.ShowMessage(E.Message);
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]         entityItemGB       = GetItemGB();
            ItemDts[]        entityItemDts      = GetItemDts();
            ItemLBDts[]      entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]   entityItemColorDts = GetItemColorDts();
            ItemCodeFacDts[] entityItemFacDts   = GetItemCodeFacDts();
            rule.RUpdate(entity, entityItemDts, entityItemColorDts, entityItemLBDts, null, null, entityItemFacDts);
        }
Exemplo n.º 11
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]             entityItemGB       = GetItemGB();
            ItemDts[]            entityItemDts      = GetItemDts();
            ItemLBDts[]          entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]       entityItemColorDts = GetItemColorDts();
            ItemGreyFabReplace[] entitygfr          = GetEntityGreyFabReplace();
            rule.RUpdate(entity, entityItemDts, entityItemColorDts, entityItemLBDts, null, entitygfr);
        }
Exemplo n.º 12
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]               entityItemGB       = GetItemGB();
            ItemDts[]              entityItemDts      = GetItemDts();
            ItemLBDts[]            entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]         entityItemColorDts = GetItemColorDts();
            ItemCheckStandardPhy[] entitycspdts       = GetItemCheckStandardPhy();
            rule.RUpdate(entity, entityItemDts, entityItemColorDts, entityItemLBDts, entitycspdts);
        }
Exemplo n.º 13
0
        //public bool CheckCorrectItemDts()
        //{
        //    decimal Percentage = 0;
        //    int Num = 0;
        //    for (int i = 0; i < gridView2.RowCount; i++)
        //    {
        //        if (SysConvert.ToString(gridView2.GetRowCellValue(i, "DtsItemCode")) != string.Empty)
        //        {
        //            Percentage += SysConvert.ToDecimal(gridView2.GetRowCellValue(i, "Percentage"));
        //            Num++;
        //        }
        //    }
        //    if (Num > 0)
        //    {
        //        if (Percentage != 100 && Percentage != 200)
        //        {
        //            return false;
        //        }
        //    }
        //    return true;
        //}

        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            //ItemGB[] entityItemGB = GetItemGB();
            ItemCompositeDts[] entityItemCompositeDts = GetItemCompositeDts();
            //ItemLBDts[] entityItemLBDts = GetItemLBDts();
            //ItemColorDts[] entityItemColorDts = GetItemColorDts();
            rule.RAdd(entity, entityItemCompositeDts);
            return(entity.ID);
        }
Exemplo n.º 14
0
        /// <summary>
        /// 删除
        /// </summary>
        public override void EntityDelete()
        {
            ItemRule rule = new ItemRule();

            Item entity = EntityGet();
            //if (rule.IsCanDelect(entity.ItemCode))
            //{
            //    rule.RDelete(entity);
            //}
            //else
            //    ShowMessage("该原料在出入库报表中,不可删除!");
        }
Exemplo n.º 15
0
        //public bool CheckCorrectItemDts()
        //{
        //    decimal Percentage = 0;
        //    int Num = 0;
        //    for (int i = 0; i < gridView2.RowCount; i++)
        //    {
        //        if (SysConvert.ToString(gridView2.GetRowCellValue(i, "DtsItemCode")) != string.Empty)
        //        {
        //            Percentage += SysConvert.ToDecimal(gridView2.GetRowCellValue(i, "Percentage"));
        //            Num++;
        //        }
        //    }
        //    if (Num > 0)
        //    {
        //        if (Percentage != 100 && Percentage != 200)
        //        {
        //            return false;
        //        }
        //    }
        //    return true;
        //}

        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]               entityItemGB       = GetItemGB();
            ItemDts[]              entityItemDts      = GetItemDts();
            ItemLBDts[]            entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]         entityItemColorDts = GetItemColorDts();
            ItemCheckStandardPhy[] entitycspdts       = GetItemCheckStandardPhy();
            rule.RAdd(entity, entityItemDts, entityItemColorDts, entityItemLBDts, entitycspdts);
            return(entity.ID);
        }
Exemplo n.º 16
0
        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]         entityItemGB       = GetItemGB();
            ItemDts[]        entityItemDts      = GetItemDts();
            ItemLBDts[]      entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]   entityItemColorDts = GetItemColorDts();
            ItemCodeFacDts[] entityItemFacDts   = GetItemCodeFacDts();
            rule.RAdd(entity, entityItemDts, entityItemColorDts, entityItemLBDts, null, null, entityItemFacDts);
            return(entity.ID);
        }
Exemplo n.º 17
0
        /// <summary>
        /// 绑定数据
        /// </summary>
        private void BindGrid()
        {
            string cstr = " AND ItemTypeID=" + SysString.ToDBString(SaveItemTypeID);

            if (SaveItemClassID != 0)
            {
                cstr += " AND ItemClassID=" + SysString.ToDBString(SaveItemClassID);
            }
            cstr += conditionstr;
            ItemRule rule = new ItemRule();
            //gridView1.GridControl.DataSource = rule.RShowView(cstr + " ORDER BY ItemCode", ProcessGrid.GetQueryField(gridView1));
            //gridView1.GridControl.Show();
        }
Exemplo n.º 18
0
        /// <summary>
        /// 绑定Grid
        /// </summary>
        public override void BindGrid()
        {
            string sql = " AND ItemTypeID=" + SysString.ToDBString((int)EnumItemType.半成品);

            if (ItemClassArray != "-1" && ItemClassArray != "")
            {
                sql += " AND ItemClassID IN(" + ItemClassArray + ")";
            }
            ItemRule rule = new ItemRule();

            gridView1.GridControl.DataSource = rule.RShowView(sql + HTDataConditionStr, ProcessGrid.GetQueryField(gridView1));
            gridView1.GridControl.Show();
        }
Exemplo n.º 19
0
        //public bool CheckCorrectItemDts()
        //{
        //    decimal Percentage = 0;
        //    int Num = 0;
        //    for (int i = 0; i < gridView2.RowCount; i++)
        //    {
        //        if (SysConvert.ToString(gridView2.GetRowCellValue(i, "DtsItemCode")) != string.Empty)
        //        {
        //            Percentage += SysConvert.ToDecimal(gridView2.GetRowCellValue(i, "Percentage"));
        //            Num++;
        //        }
        //    }
        //    if (Num > 0)
        //    {
        //        if (Percentage != 100 && Percentage != 200)
        //        {
        //            return false;
        //        }
        //    }
        //    return true;
        //}

        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]             entityItemGB       = GetItemGB();
            ItemDts[]            entityItemDts      = GetItemDts();
            ItemLBDts[]          entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]       entityItemColorDts = GetItemColorDts();
            ItemGreyFabReplace[] entitygfr          = GetEntityGreyFabReplace();
            rule.RAdd(entity, entityItemDts, entityItemColorDts, entityItemLBDts, null, entitygfr);
            return(entity.ID);
        }
Exemplo n.º 20
0
 /// <summary>
 /// 同步物料信息
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public void btnSameItem_Click(object sender, EventArgs e)
 {
     try
     {
         this.BaseFocusLabel.Focus();
         string   ItemCode = SysConvert.ToString(gridView1.GetRowCellValue(gridView1.FocusedRowHandle, "ItemCode"));
         ItemRule rule     = new ItemRule();
         //rule.RSame(ItemCode);
     }
     catch (Exception E)
     {
         this.ShowMessage(E.Message);
     }
 }
Exemplo n.º 21
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            //ItemGB[] entityItemGB = GetItemGB();
            //ItemDts[] entityItemDts = GetItemDts();
            //ItemLBDts[] entityItemLBDts = GetItemLBDts();
            ItemColorDts[] entityItemColorDts = GetItemColorDts();
            //ItemGreyFabReplace[] entitygfr = GetEntityGreyFabReplace();
            ItemAdd[] entityItemAdd = GetItemAdd();
            ItemPic[] entityPic     = GetItemPic();
            rule.RUpdate(entity, entityItemColorDts, entityItemAdd, entityPic, 1);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 绑定Grid
        /// </summary>
        public override void BindGrid()
        {
            string sql = " AND ItemTypeID=" + SysString.ToDBString((int)EnumItemType.面料);

            if (ItemClassArray != "-1" && ItemClassArray != "")
            {
                sql += " AND ItemClassID IN(" + ItemClassArray + ")";
            }
            ItemRule  rule = new ItemRule();
            DataTable dt   = rule.RShow(sql + HTDataConditionStr + " ORDER BY ItemCode DESC", ProcessGrid.GetQueryField(gridView1).Replace(",GBPic2", ""));//GBPic2 重新单独处理获得;

            BindProcPicture(dt);
            gridView1.GridControl.DataSource = dt;
            gridView1.GridControl.Show();
        }
Exemplo n.º 23
0
        //public bool CheckCorrectItemDts()
        //{
        //    decimal Percentage = 0;
        //    int Num = 0;
        //    for (int i = 0; i < gridView2.RowCount; i++)
        //    {
        //        if (SysConvert.ToString(gridView2.GetRowCellValue(i, "DtsItemCode")) != string.Empty)
        //        {
        //            Percentage += SysConvert.ToDecimal(gridView2.GetRowCellValue(i, "Percentage"));
        //            Num++;
        //        }
        //    }
        //    if (Num > 0)
        //    {
        //        if (Percentage != 100 && Percentage != 200)
        //        {
        //            return false;
        //        }
        //    }
        //    return true;
        //}

        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            //ItemGB[] entityItemGB = GetItemGB();
            //ItemDts[] entityItemDts = GetItemDts();
            //ItemLBDts[] entityItemLBDts = GetItemLBDts();
            ItemColorDts[] entityItemColorDts = GetItemColorDts();
            //ItemGreyFabReplace[] entitygfr = GetEntityGreyFabReplace();
            ItemAdd[]        entityItemAdd    = GetItemAdd();
            ItemPic[]        entityPic        = GetItemPic();
            ItemCodeFacDts[] entityItemFacDts = GetItemCodeFacDts();
            rule.RAdd(entity, entityItemColorDts, entityItemAdd, entityPic, entityItemFacDts, 1);
            return(entity.ID);
        }
Exemplo n.º 24
0
        /// <summary>
        /// 绑定数据
        /// </summary>
        private void BindGrid()
        {
            string selfcon = "";

            if (SaveItemTypeID != 0)
            {
                selfcon = " AND ItemTypeID=" + SysString.ToDBString(SaveItemTypeID);
            }
            if (SaveItemClassID != 0)
            {
                selfcon += " AND ItemClassID=" + SysString.ToDBString(SaveItemClassID);
            }
            ItemRule rule = new ItemRule();

            gridView1.GridControl.DataSource = rule.RShowView(selfcon + conditionstr, ProcessGrid.GetQueryField(gridView1));
            gridView1.GridControl.Show();
        }
Exemplo n.º 25
0
        /// <summary>
        /// 修改
        /// </summary>
        public override void EntityUpdate()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]         entityItemGB       = GetItemGB();
            ItemDts[]        entityItemDts      = GetItemDts();
            ItemLBDts[]      entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]   entityItemColorDts = GetItemColorDts();
            ItemCodeFacDts[] entityItemFacDts   = GetItemCodeFacDts();

            if (entityItemFacDts.Length != 0)//主供应商信息
            {
                entity.VendorID = entityItemFacDts[0].VendorID;
            }

            rule.RUpdate(entity, entityItemDts, entityItemColorDts, entityItemLBDts, null, null, entityItemFacDts);
        }
Exemplo n.º 26
0
        /// <summary>
        /// 新增
        /// </summary>
        public override int EntityAdd()
        {
            ItemRule rule   = new ItemRule();
            Item     entity = GetItem();

            ItemGB[]         entityItemGB       = GetItemGB();
            ItemDts[]        entityItemDts      = GetItemDts();
            ItemLBDts[]      entityItemLBDts    = GetItemLBDts();
            ItemColorDts[]   entityItemColorDts = GetItemColorDts();
            ItemCodeFacDts[] entityItemFacDts   = GetItemCodeFacDts();

            if (entityItemFacDts.Length != 0)//主供应商信息
            {
                entity.VendorID = entityItemFacDts[0].VendorID;
            }

            rule.RAdd(entity, entityItemDts, entityItemColorDts, entityItemLBDts, null, null, entityItemFacDts);
            return(entity.ID);
        }
Exemplo n.º 27
0
        public async Task <HttpResponseMessage> LoadInvoiceTransObj([FromBody] int id)
        {
            try
            {
                var organId = Convert.ToInt32(SecurityManager.CurrentUserContext.OrganizationId);

                var invoice = await Rule.FindAsync(id);

                InvoiceTransObj invoiceTransObj = new InvoiceTransObj();

                invoiceTransObj.invoice      = Mapper.Map <InvoiceVM>(invoice);
                invoiceTransObj.invoiceItems = invoiceTransObj.invoice.InvoiceItems;
                //invoiceTransObj.payments =  await transactionRule.GetAllByInvoiceIdAsync(id,true,false);
                PayRecevieRule payRecevieRule = new PayRecevieRule();
                invoiceTransObj.tempPayments = await payRecevieRule.GetTempPaymentsByInvoiceIdAsync(id);

                for (int i = 0; i < invoiceTransObj.invoiceItems.Count; i++)
                {
                    ItemRule itemRule = new ItemRule();
                    invoiceTransObj.invoiceItems[i].Item = Mapper.Map <ItemVM>(await itemRule.FindAsync(invoiceTransObj.invoiceItems[i].ItemId));
                }

                ContactRule contactRule = new ContactRule();
                invoiceTransObj.invoice.Contact = Mapper.Map <ContactVM>(await contactRule.FindAsync(invoice.ContactId));
                CashRule cashRule = new CashRule();
                var      cashes   = await cashRule.GetAllByOrganIdAsync(Convert.ToInt32(organId));

                invoiceTransObj.cashes = Mapper.Map <List <CashVM> >(cashes);

                BankRule bankRule = new BankRule();
                var      banks    = await bankRule.GetAllByOrganIdAsync(Convert.ToInt32(organId));

                invoiceTransObj.banks = Mapper.Map <List <BankVM> >(banks);


                return(Request.CreateResponse(HttpStatusCode.OK, new { resultCode = ZhivarEnums.ResultCode.Successful, data = invoiceTransObj }));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Exemplo n.º 28
0
        public LisbethRetainerRules(JObject lisbethSettings)
        {
            RulesByIndex = new Dictionary <int, HashSet <ItemRule> >();
            JToken retainerSettings = lisbethSettings["Retainers"];

            if (retainerSettings == null)
            {
                AutoRetainerSort.LogCritical("No retainers found in Lisbeth's settings!");
                return;
            }

            foreach (JToken retainerInfo in retainerSettings)
            {
                int index = retainerInfo["Index"]?.ToObject <int>() ?? 0;
                RulesByIndex.Add(index, new HashSet <ItemRule>());
                var    ruleSet      = RulesByIndex[index];
                JToken currentRules = retainerInfo["Rules"];
                if (currentRules == null)
                {
                    AutoRetainerSort.LogCritical("RetainerInfo didn't contain any rules array!");
                    return;
                }

                foreach (JToken rule in currentRules)
                {
                    ItemRule itemRule = rule.ToObject <ItemRule>();
                    if (itemRule == null)
                    {
                        JToken itemIdToken = rule["Item"];
                        AutoRetainerSort.LogCritical(itemIdToken == null ? "Couldn't parse rule! ID is null?" : $"Couldn't parse rule for ID {itemIdToken.ToObject<uint>().ToString()}");
                        continue;
                    }

                    ruleSet.Add(itemRule);
                }
            }
        }
Exemplo n.º 29
0
        private bool MatchAdvanced(ItemRule rule, LootObject item)
        {
            bool result = false;
            bool[] tumbler = {false,false,false,false,false};
            List<int> ands = new List<int>();

            try
            {
                for(int i = 0; i < rule.Advanced.Count; i ++)
                {
                    if(rule.Advanced[i].keylink == 1) {ands.Add(i);}

                    if(rule.Advanced[i].keytype == 0)
                    {
                        switch(rule.Advanced[i].keycompare)
                        {
                            case 0:
                                if(item.DValue((DoubleValueKey)rule.Advanced[i].key) == rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 1:
                                if(item.DValue((DoubleValueKey)rule.Advanced[i].key) != rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 2:
                                if(item.DValue((DoubleValueKey)rule.Advanced[i].key) >= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 3:
                                if(item.DValue((DoubleValueKey)rule.Advanced[i].key) <= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                        }
                    }
                    else if(rule.Advanced[i].keytype == 1)
                    {
                        switch(rule.Advanced[i].keycompare)
                        {
                            case 0:
                                if(item.LValue((LongValueKey)rule.Advanced[i].key) == rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 1:
                                if(item.LValue((LongValueKey)rule.Advanced[i].key) != rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 2:
                                if(item.LValue((LongValueKey)rule.Advanced[i].key) >= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 3:
                                if(item.LValue((LongValueKey)rule.Advanced[i].key) <= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                        }
                    }
                }

                switch(rule.Advanced.Count)
                {
                    case 1:  //2 ^ 0 == 1
                        if(tumbler[0]) {result = true;}
                        break;
                    case 2:  //2 ^ 1 == 2
                        if(rule.Advanced[0].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1]) {result = true;}
                        }
                        break;
                    case 3:  //2 ^ 2 == 4
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1] && tumbler[2]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2]) {result = true;}
                        }
                        break;
                    case 4:  //2 ^ 3 == 8
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2]) || tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2] || tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1)
                        {
                            if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2] || tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2]) || tumbler[3]) {result = true;}
                        }
                        break;
                    case 5:  //2 ^ 4 == 16
                        // 0 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3] && tumbler[4]) {result = true;}
                        }

                        // 1 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2]) || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3] && tumbler[4])) {result = true;}
                        }

                        // 2 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2]) || tumbler[3] || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2] || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2]) || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3]) ||  tumbler[4]) {result = true;}
                        }

                        // 3 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2] || tumbler[3] || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2]) || tumbler[3] || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2] || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;}
                        }

                        // 4 Or
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2] || tumbler[3] || tumbler[4]) {result = true;}
                        }

                        break;
                }
            }catch(Exception ex){LogError(ex);}
            return result;
        }
Exemplo n.º 30
0
        private void FillItemRules()
        {
            List<int> CombineIntList = new List<int>();

            try
            {
                ItemRulesList.Clear();

                var ruleslistenabled = from rules in mPrioritizedRulesList
                    where rules.Element("Enabled").Value == "true"
                    select rules;

                foreach(var XRule in ruleslistenabled)
                {
                    ItemRule tRule = new ItemRule();

                    if(!Int32.TryParse((XRule.Element("Priority").Value), out tRule.RulePriority)){tRule.RulePriority = 999;}

                    tRule.RuleAppliesTo = _ConvertCommaStringToIntList((string)XRule.Element("AppliesToFlag").Value).Sum();

                    tRule.RuleName = (string)XRule.Element("Name").Value;

                    if(!Int32.TryParse(XRule.Element("ArcaneLore").Value, out tRule.RuleArcaneLore)){tRule.RuleArcaneLore = -1;}
                    if(!Double.TryParse(XRule.Element("Work").Value, out tRule.RuleWork)){tRule.RuleWork = -1;}
                    if(!Int32.TryParse(XRule.Element("WieldSkill").Value, out tRule.RuleWieldSkill)) {tRule.RuleWieldSkill = 0;}
                    if(!Int32.TryParse(XRule.Element("MasteryType").Value, out tRule.RuleMastery)){tRule.RuleMastery = 0;}
                    if(!Int32.TryParse(XRule.Element("GearScore").Value, out tRule.GearScore)){tRule.GearScore = -1;}
                    if(!Int32.TryParse(XRule.Element("WieldLevel").Value, out tRule.RuleWieldLevel)) {tRule.RuleWieldLevel = -1;}
                    if(!Int32.TryParse((XRule.Element("NumSpells").Value), out tRule.RuleSpellNumber)){tRule.RuleSpellNumber = -1;}

                    tRule.RuleDamageTypes = _ConvertCommaStringToIntList((string)XRule.Element("DamageType").Value).Sum();
                    tRule.WieldRequirements = _ConvertCommaStringsToWREVist((string)XRule.Element("WieldEnabled").Value, (string)XRule.Element("ReqSkill").Value);
                    tRule.RuleArmorTypes = _ConvertCommaStringToIntList((string)XRule.Element("ArmorType").Value);
                    tRule.RuleSlots = _ConvertCommaStringToIntList((string)XRule.Element("Slots").Value).Sum();
                    tRule.RuleArmorSet = _ConvertCommaStringToIntList((string)XRule.Element("ArmorSet").Value);
                    tRule.RuleSpells = _ConvertCommaStringToIntList((string)XRule.Element("Spells").Value);

                    if(((string)XRule.Element("Advanced").Value).StartsWith("true"))
                    {
                        tRule.AdvSettings = true;
                        tRule.Advanced = _ConvertAdvStringToAdvanced((string)XRule.Element("Advanced").Value);
                    }
                    else
                    {
                        tRule.AdvSettings = false;
                    }

                    ItemRulesList.Add(tRule);
                }

            } catch(Exception ex){LogError(ex);}
        }