public void ProcessRequest(HttpContext context)
 {
     context.Response.ContentType = "text/plain";
     //判断Session,验证权限
     if (context.Session["User"] != null)
     {
         int id = -1,typeId=-1;
         int.TryParse(context.Request["id"],out id);
         string itemName = context.Request["name"], itemDesc = context.Request["desc"], author = context.Request["author"], imgPath = context.Request["imagePath"],type=context.Request["type"];
         int.TryParse(type , out typeId);
         if (typeId<=0||String.IsNullOrEmpty(itemName) || String.IsNullOrEmpty(imgPath))
         {
             return;
         }
         Model.Item item = new Model.Item() { ItemTypeId=typeId,ItemId=id,ItemName = itemName, ItemDesc = itemDesc, ItemAuthor = author, ItemImagePath = imgPath };
         if (new BLL.ItemBLL().Update(item))
         {
             context.Response.Write("true");
         }
         else
         {
             context.Response.Write("false");
         }
     }
 }
Beispiel #2
0
 protected void btnSave_Click(object sender, EventArgs e)
 {
     string strErr = "";
     if (txtName.Text.Trim().Length==0)
     {
         strErr += "指标不能为空!\\n";
     }
     if (txtValue.Text.Trim().Length==0)
     {
         strErr += "分值不能为空!\\n";
     }
     if (strErr!="")
     {
         Maticsoft.Common.MessageBox.Show(this, strErr);
     }
     int id = int.Parse(Request["id"]);
         item=bll.GetModel(id);
     item.Name=txtName.Text;
     item.Value=decimal.Parse( txtValue.Text);
     if (bll.Update(item))
     {
         Maticsoft.Common.MessageBox.ShowAndRedirect(this, "修改成功", "ItemList.aspx");
     }
     else
     {
         Maticsoft.Common.MessageBox.Show(this, "修改失败!");
     }
 }
 public void ProcessRequest(HttpContext context)
 {
     context.Response.ContentType = "text/plain";
     //判断Session,验证权限
     if (context.Session["User"] != null)
     {
         string itemName = context.Request["name"], itemDesc = context.Request["desc"], author = context.Request["author"], imgPath = context.Request["imagePath"],type=context.Request["type"];
         int nType = -1;
         int.TryParse(type, out nType);
         //构建路径
         //string path = DateTime.Now.ToString("yyyyMM\\/") + Guid.NewGuid().ToString() + ".html";
         string path = DateTime.Now.ToString("yyyyMM\\/") + DateTime.Now.ToString("yyyyMMddHHmmssfff")+".html";
         //
         string virtualPath = "/works/" + path;
         if (nType<=0|String.IsNullOrEmpty(itemName) || String.IsNullOrEmpty(imgPath) || String.IsNullOrEmpty(path))
         {
             return;
         }
         Model.Item item = new Model.Item() { ItemName = itemName, ItemDesc = itemDesc,ItemTypeId=nType, ItemAuthor = author, ItemPath = virtualPath, PublishTime = DateTime.Now, ItemImagePath = imgPath };
         if (new BLL.ItemBLL().Add(item))
         {
             context.Response.Write("true");
         }
         else
         {
             context.Response.Write("false");
         }
     }
     else
     {
         context.Response.Write("no permission");
     }
 }
Beispiel #4
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         int id = int.Parse(Request["id"]);
         item = bll.GetModel(id);
         txtName.Text = item.Name;
         txtValue.Text = item.Value.ToString();
     }
 }
        public List<Model.BrowseCategory> populateList(List<Model.Item> inputList)
        {
            List<Model.BrowseCategory> browseCategories = new List<Model.BrowseCategory>();
            Model.BrowseCategory currBrowseCategory = null;
            List<Model.Item> currCategoryResults = null;
            Model.Item bItem = null;

            // - loop through the 1 - 10 number set - or use ifDigit
            for (int k = 0; k < 10; k++) //loop through the alphabet
            {
                currBrowseCategory = new Model.BrowseCategory((k + 1).ToString()); //increment by 1 because no category starts with 0
                currCategoryResults = inputList.Where(Item => Item.name.StartsWith((k + 1).ToString())).ToList(); //get a list of the current group

                foreach (Model.Item i in currCategoryResults) //loop through returned list for the specific category
                {
                    bItem = new Model.Item(i.name, i.ItemSQL); //create a new specific item to be added to the specific category list
                    currBrowseCategory.AddItem(bItem); //add the item to the specific category list
                }
                if (currBrowseCategory.Items.Count > 0) //if there is at least one result
                {
                    browseCategories.Add(currBrowseCategory);
                }
            }

            char alphabetLooper = 'A';
            for (int k = 0; k < 26; k++) //loop through the alphabet
            {
                currBrowseCategory = new Model.BrowseCategory(alphabetLooper.ToString());
                currCategoryResults = inputList.Where(Item => Item.name.StartsWith(alphabetLooper.ToString())).ToList(); //get a list of the current group
                bItem = null;

                foreach (Model.Item i in currCategoryResults) //loop through returned list for the specific category
                {
                    bItem = new Model.Item(i.name, i.ItemSQL); //create a new specific item to be added to the specific category list
                    currBrowseCategory.AddItem(bItem); //add the item to the specific category list
                }
                if (currBrowseCategory.Items.Count > 0) //if there is at least one result
                {
                    browseCategories.Add(currBrowseCategory);
                }
                alphabetLooper++; //go to next alphabet letter
            }

            return browseCategories;
        }
 /// <summary>
 /// Select a single result using the passed in value to formulate a query.
 /// </summary>
 /// <param name="statement"></param>
 /// <returns></returns>
 public Model.Item Select(String statement)
 {
     Open();
     Model.Item result = null;
     try
     {
         SqliteCommand cmd = new SqliteCommand(statement, db);
         SqliteDataReader reader = cmd.ExecuteReader();  //all rows exist in this object only right now
         
         while (reader.Read())
         {
             //value 0 = id
             //value 1 = name
             //value 2 = html
             result = new Model.Item((int)reader.GetValue(0), (string)reader.GetValue(1), (string)reader.GetValue(2));
         }
     }
     catch (SqliteExecutionException ee)
     {
         System.Windows.MessageBox.Show("Error while querying Database: \n" + ee.Message + "\n" + ee.StackTrace);
     }
     catch (SqliteSyntaxException se)
     {
         System.Windows.MessageBox.Show("Error while querying Database: \n" + se.Message + "\n" + se.StackTrace);
     }
     catch (ArgumentException ae)
     {
         System.Windows.MessageBox.Show("Error while adding value to list: \n" + ae.Message + "\n" + ae.StackTrace);
     }
     finally
     {
         Close();
     }
     
     return result;
 }
 public SingleItemViewModel(Model.Item item)
 {
     _item = item;
 }
Beispiel #8
0
 internal String(Model.Item Item, PropertyTypes.String Type)
     : base(Item, Type)
 {
 }
Beispiel #9
0
 internal Sequence(Model.Item Item, PropertyTypes.Sequence Type)
     : base(Item, Type)
 {
 }
Beispiel #10
0
 internal Item(Transaction Transaction, String Name, Model.Item Item)
     : base(Transaction, Name, Item)
 {
     this.Result = null;
 }
Beispiel #11
0
 internal List(Model.Item Item, PropertyTypes.List Type)
     : base(Item, Type)
 {
     this.PropertyChanged += List_PropertyChanged;
 }
Beispiel #12
0
        /// <summary>
        /// Sort through quick search results and create list of items
        /// Items are grouped by acquired date and item type
        /// Each item contains a list of strips
        /// Strips are grouped by strip id
        /// Each strip contains a list of assets
        /// Assets inherit from test_docing_Panel.Models.Feature
        /// </summary>
        public static List <Model.AcquiredDateGroup> ProcessQuickSearchResults(QuickSearchResult result)
        {
            //group results
            List <Model.AcquiredDateGroup> groupedResults = new List <Model.AcquiredDateGroup>();

            Feature[] features = result.features;
            foreach (Feature feature in features)
            {
                Model.AcquiredDateGroup acquiredDateGroup = null;
                DateTime acquired          = feature.properties.acquired;
                DateTime acquired_day      = acquired.Date;
                int      acquiredDateIndex = groupedResults.FindIndex(i => i.acquired == acquired_day);
                if (acquiredDateIndex < 0)
                {
                    acquiredDateGroup = new Model.AcquiredDateGroup
                    {
                        acquired = acquired_day,
                        items    = new List <Model.Item>()
                    };
                    groupedResults.Add(acquiredDateGroup);
                }
                else
                {
                    acquiredDateGroup = groupedResults[acquiredDateIndex];
                }
                string            itemType = feature.properties.item_type;
                Model.Item        item     = null;
                List <Model.Item> items    = acquiredDateGroup.items;
                int index = items.FindIndex(i => i.itemType == itemType);
                if (index < 0)
                {
                    item = new Model.Item
                    {
                        itemType = itemType,
                        acquired = acquired,
                        strips   = new List <Model.Strip>(),
                        parent   = acquiredDateGroup
                    };
                    items.Add(item);
                }
                else
                {
                    item = items[index];
                }
                Model.Strip        strip   = null;
                List <Model.Strip> strips  = item.strips;
                string             stripId = feature.properties.strip_id;
                int stripIndex             = strips.FindIndex(s => s.stripId == stripId);
                if (stripIndex < 0)
                {
                    strip = new Model.Strip
                    {
                        stripId  = stripId,
                        acquired = acquired,
                        parent   = item,
                        assets   = new List <Model.Asset>()
                    };
                    strips.Add(strip);
                }
                else
                {
                    strip = strips[stripIndex];
                }
                List <Model.Asset> assets = strip.assets;
                Model.Asset        asset  = new Model.Asset
                {
                    parent       = strip,
                    properties   = feature.properties,
                    id           = feature.id,
                    type         = feature.type,
                    _links       = feature._links,
                    _permissions = feature._permissions,
                    geometry     = feature.geometry
                };
                asset.setFootprintVertices();
                asset.setFootprintSymbol();
                asset.setPolygon();
                asset.determineParentPermissions();
                assets.Add(asset);
            }

            //sort the collections
            if (groupedResults.Count > 0)
            {
                foreach (Model.AcquiredDateGroup group in groupedResults)
                {
                    group.items = group.items.OrderBy(itemGroup => itemGroup.itemType).ToList();
                    foreach (Model.Item item in group.items)
                    {
                        item.strips = item.strips.OrderByDescending(strip => strip.acquired).ToList();
                        foreach (Model.Strip strip in item.strips)
                        {
                            strip.assets = strip.assets.OrderByDescending(asset => asset.properties.acquired).ToList();
                        }
                    }
                }
                groupedResults = groupedResults.OrderByDescending(group => group.acquired).ToList();
            }

            return(groupedResults);
        }
Beispiel #13
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            Model.Item item = this.DataContext as Model.Item;

            item.Buy();
        }
Beispiel #14
0
 internal Item(Model.Item Item, PropertyTypes.Item Type)
     : base(Item, Type)
 {
 }
Beispiel #15
0
 internal Foreign(Model.Item Item, PropertyTypes.Foreign Type)
     : base(Item, Type)
 {
 }
Beispiel #16
0
        /// <summary>
        /// Method for drawing the backpack
        /// </summary>
        private void DrawBackpack()
        {
            //For item stats
            Vector2 pos = new Vector2();

            Model.Item statsItem = null;

            //Backpack rectangle
            Rectangle backpackRect = new Rectangle(0, 0, GetTexture(Texture.BACKPACK).Width, GetTexture(Texture.BACKPACK).Height);
            Rectangle closeCross   = GetCloseButton(_player.BackPack.Position.X, _player.BackPack.Position.Y, Texture.BACKPACK);

            if (_player.BackPack.IsOpen)
            {
                _spriteBatch.Draw(GetTexture(Texture.BACKPACK), new Vector2(_player.BackPack.Position.X, _player.BackPack.Position.Y), backpackRect, Color.White);

                if (_inputHandler.MouseIsOver(new Rectangle((int)_player.BackPack.Position.X, (int)_player.BackPack.Position.Y, GetTexture(Texture.BACKPACK).Bounds.Width, GetTexture(Texture.BACKPACK).Bounds.Height)))
                {
                    _inputHandler.MouseIsOverInterface = true;
                }

                if (_inputHandler.DidGetTargetedByLeftClick(closeCross))
                {
                    _player.BackPack.IsOpen = false;
                }
            }

            //Rectangle for items within the backpack
            Rectangle itemRect = new Rectangle(0, 0, 32, 32);
            int       x        = 12;
            int       y        = 45;

            foreach (Model.Item item in _player.BackPack.BackpackItems)
            {
                //Bugfix. Doesnt show if the objectlayer items is not drawn
                item.ThisItem.Bounds.X = (int)_player.BackPack.Position.X + _camera.GetScreenRectangle.X + x;
                item.ThisItem.Bounds.Y = (int)_player.BackPack.Position.Y + _camera.GetScreenRectangle.Y + y;

                Vector2 itemPosition = new Vector2(_player.BackPack.Position.X + x, _player.BackPack.Position.Y + y);

                //If backpack is open
                if (_player.BackPack.IsOpen)
                {
                    if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                    {
                        _player.BackpackTarget = item;
                    }

                    //If type is Armor
                    if (item.GetType() == Model.GameModel.ARMOR)
                    {
                        if (item.Type == Model.Armor.HEAD_ARMOR)
                        {
                            _spriteBatch.Draw(GetTexture(Texture.HEADARMOR), itemPosition, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                    //If type is Questitem.
                    else if (item.GetType() == Model.GameModel.QUEST_ITEM)
                    {
                        if (item.Type == Model.QuestItem.ENEMY_HEAD)
                        {
                            _spriteBatch.Draw(GetTexture(Texture.BOSS_HEAD), itemPosition, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                }

                //Itemplacement in backpack
                x += 50;

                if (x >= GetTexture(Texture.BACKPACK).Width)
                {
                    y += 50;
                    x  = 0;
                }

                //If cursor is hovering item
                if (_inputHandler.MouseIsOver(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    pos       = itemPosition;
                    statsItem = item;
                }
            }

            //If player is hovering an item and the backpack is open
            if (statsItem != null && _player.BackPack.IsOpen)
            {
                _common.DrawItemStats(statsItem, pos);
            }

            //Removes the item from the backpack and drops it on the ground @ rightclick
            if (_player.BackPack.IsOpen)
            {
                for (int i = 0; i < _player.BackPack.BackpackItems.Count; i++)
                {
                    if (_inputHandler.DidGetTargetedByRightClick(_camera.VisualizeRectangle(_player.BackPack.BackpackItems[i].ThisItem.Bounds)) && _player.BackPack.BackpackItems[i].GetType() != Model.GameModel.QUEST_ITEM)
                    {
                        _player.BackPack.BackpackItems[i].ThisItem.Bounds = _player.ThisUnit.Bounds;
                        _worldItems.Add(_player.BackPack.BackpackItems[i]);
                        _player.BackPack.BackpackItems.Remove(_player.BackPack.BackpackItems[i]);
                    }
                }
            }
        }
Beispiel #17
0
 internal Image(Model.Item Item, PropertyTypes.Image Type)
     : base(Item, Type)
 {
 }
Beispiel #18
0
        /// <summary>
        /// Method for drawing of the CharacterPanel
        /// </summary>
        private void DrawCharacterPanel()
        {
            Vector2 pos      = new Vector2();
            Vector2 panelPos = new Vector2(_player.CharPanel.Position.X, _player.CharPanel.Position.Y);

            Model.Item statsItem = null;

            Rectangle charPanelRect = new Rectangle(0, 0, GetTexture(Texture.CHAR_PANEL_BG).Width, GetTexture(Texture.CHAR_PANEL_BG).Height);
            Rectangle closeCross    = GetCloseButton(_player.CharPanel.Position.X, _player.CharPanel.Position.Y, Texture.CHAR_PANEL_BG);

            if (_player.CharPanel.IsOpen)
            {
                _spriteBatch.Draw(GetTexture(Texture.CHAR_PANEL_BG), panelPos, charPanelRect, Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Health: +" + _player.TotalHp.ToString(), panelPos + new Vector2(80, 70), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Mana: +" + _player.TotalMana.ToString(), panelPos + new Vector2(80, 85), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Damage: +10", panelPos + new Vector2(80, 100), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Crit: 10%", panelPos + new Vector2(80, 115), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Armor: +" + _player.Armor.ToString(), panelPos + new Vector2(80, 130), Color.White);
                _spriteBatch.DrawString(_common.SpriteFontSegoe, "Resist: +" + _player.Resist.ToString(), panelPos + new Vector2(80, 145), Color.White);

                if (_inputHandler.MouseIsOver(new Rectangle((int)_player.CharPanel.Position.X, (int)_player.CharPanel.Position.Y, GetTexture(Texture.CHAR_PANEL_BG).Bounds.Width, GetTexture(Texture.CHAR_PANEL_BG).Bounds.Height)))
                {
                    _inputHandler.MouseIsOverInterface = true;
                }
                if (_inputHandler.DidGetTargetedByLeftClick(closeCross))
                {
                    _player.CharPanel.IsOpen = false;
                }
            }

            Vector2   position = new Vector2(_player.CharPanel.Position.X + 13, _player.CharPanel.Position.Y + 39);
            Rectangle itemRect = new Rectangle(0, 0, 32, 32);

            #region Ritar Equippade Items
            foreach (Model.Item item in _player.CharPanel.EquipedItems)
            {
                item.ThisItem.Bounds.X = (int)_player.CharPanel.Position.X + _camera.GetScreenRectangle.X + 10;
                item.ThisItem.Bounds.Y = (int)_player.CharPanel.Position.Y + _camera.GetScreenRectangle.Y + 25;

                if (_player.CharPanel.IsOpen)
                {
                    if (_inputHandler.DidGetTargetedByLeftClick(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                    {
                        _player.CharPanelTarget = item;
                    }

                    if (item.GetType() == Model.GameModel.ARMOR)
                    {
                        Model.Armor Armor = item as Model.Armor;

                        if (Armor.Type == Model.Armor.HEAD_ARMOR)
                        {
                            _spriteBatch.Draw(GetTexture(Texture.HEADARMOR), position, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                }
                //Checks if the ccursor is hovering the item
                if (_inputHandler.MouseIsOver(_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    pos       = position;
                    statsItem = item;
                }
            }
            #endregion

            if (statsItem != null && _player.CharPanel.IsOpen)
            {
                _common.DrawItemStats(statsItem, pos);
            }
        }
Beispiel #19
0
 public LootBox(Model.Vec2Double position, Model.Vec2Double size, Model.Item item)
 {
     this.Position = position;
     this.Size     = size;
     this.Item     = item;
 }
Beispiel #20
0
        /// <summary>
        /// Adiciona item ao pedido, controla o estoque e atualiza os totais.
        /// </summary>
        private void AddItem()
        {
            if (collection.Lookup(nomeProduto()[0]) > 0 && String.IsNullOrEmpty(PedidoModalItens.NomeProduto))
            {
                var        itemId = collection.Lookup(nomeProduto()[0]);
                Model.Item item   = _mItem.FindById(itemId).WhereFalse("excluir").Where("tipo", "Produtos").FirstOrDefault <Model.Item>();

                if (ModoRapAva == 0)
                {
                    Medidas.SelectedItem = item.Medida;
                }

                double QuantidadeTxt          = Validation.ConvertToDouble(Quantidade.Text);
                double DescontoReaisTxt       = Validation.ConvertToDouble(DescontoReais.Text);
                double DescontoPorcentagemTxt = Validation.ConvertToDouble(DescontoPorcentagem.Text);
                string MedidaTxt = Medidas.Text;
                double PriceTxt  = Validation.ConvertToDouble(Preco.Text);

                #region Controle de estoque
                var controlarEstoque = IniFile.Read("ControlarEstoque", "Comercial");
                if (!string.IsNullOrEmpty(controlarEstoque) && controlarEstoque == "True")
                {
                    if (item.EstoqueAtual <= 0)
                    {
                        Alert.Message("Opps", "Você está sem estoque desse produto.", Alert.AlertType.warning);
                        return;
                    }
                }

                if (PriceTxt == 0)
                {
                    if (DescontoReaisTxt > item.ValorVenda || DescontoReaisTxt > item.Limite_Desconto || DescontoPorcentagemTxt > 101)
                    {
                        Alert.Message("Opps", "Não é permitido dar um desconto maior que o valor do item.", Alert.AlertType.warning);
                        return;
                    }
                }

                if (PriceTxt > 0)
                {
                    if (DescontoReaisTxt > PriceTxt || DescontoPorcentagemTxt >= 101)
                    {
                        Alert.Message("Opps", "Não é permitido dar um desconto maior que o valor do item.", Alert.AlertType.warning);
                        return;
                    }
                }

                double LimiteDescontoIni = 0;
                if (!String.IsNullOrEmpty(IniFile.Read("LimiteDesconto", "Comercial")))
                {
                    LimiteDescontoIni = Validation.ConvertToDouble(IniFile.Read("LimiteDesconto", "Comercial"));
                }

                if (item.Limite_Desconto != 0)
                {
                    if (DescontoReaisTxt > item.Limite_Desconto)
                    {
                        Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning);
                        return;
                    }

                    if (PriceTxt > 0)
                    {
                        var porcentagemValor = (PriceTxt / 100 * DescontoPorcentagemTxt);
                        if (porcentagemValor > item.Limite_Desconto)
                        {
                            Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning);
                            return;
                        }
                    }

                    if (PriceTxt == 0)
                    {
                        var porcentagemValor = (item.ValorVenda / 100 * DescontoPorcentagemTxt);
                        if (porcentagemValor > item.Limite_Desconto)
                        {
                            Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning);
                            return;
                        }
                    }
                }
                else
                {
                    if (LimiteDescontoIni != 0)
                    {
                        if (DescontoReaisTxt > LimiteDescontoIni)
                        {
                            Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning);
                            return;
                        }

                        if (PriceTxt == 0)
                        {
                            var porcentagemValor = (item.ValorVenda / 100 * DescontoPorcentagemTxt);
                            if (porcentagemValor > LimiteDescontoIni)
                            {
                                Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning);
                                return;
                            }
                        }

                        if (PriceTxt > 0)
                        {
                            var porcentagemValor = (PriceTxt / 100 * DescontoPorcentagemTxt);
                            if (porcentagemValor > LimiteDescontoIni)
                            {
                                Alert.Message("Opps", "Não é permitido dar um desconto maior que o permitido.", Alert.AlertType.warning);
                                return;
                            }
                        }
                    }
                }
                #endregion

                var pedidoItem = new Model.PedidoItem();
                pedidoItem.SetId(0)
                .SetTipo("Produtos")
                .SetPedidoId(_mNota.id_pedido)
                .SetAdicionalNomePdt(nomeProduto()[1])
                .SetItem(item)
                .SetQuantidade(QuantidadeTxt)
                .SetMedida(MedidaTxt)
                .SetDescontoReal(DescontoReaisTxt);

                if (!pedidoItem.SetValorVenda(PriceTxt))
                {
                    if (ModoRapAva == 0)
                    {
                        AlterarModo();
                        ModoRapAvaConfig = 1;
                    }

                    Preco.Select();
                    Preco.Focus();
                    return;
                }

                pedidoItem.SetDescontoPorcentagens(DescontoPorcentagemTxt);
                pedidoItem.SomarTotal();
                pedidoItem.Save(pedidoItem);

                if (item.Tipo == "Produtos")
                {
                    new Controller.Imposto().SetImposto(pedidoItem.GetLastId());

                    // Class Estoque -> Se for igual 'Compras', adiciona a quantidade no estoque do Item, se não Remove a quantidade do estoque do Item
                    if (Home.pedidoPage == "Compras" || Home.pedidoPage == "Devoluções")
                    {
                        new Controller.Estoque(pedidoItem.GetLastId(), Home.pedidoPage, "Adicionar Produto").Add().Item();
                    }
                    else
                    {
                        new Controller.Estoque(pedidoItem.GetLastId(), Home.pedidoPage, "Adicionar Produto").Remove().Item();
                    }
                }

                new Controller.Imposto().SetImposto(pedidoItem.GetLastId());

                // Carrega a Grid com o Item adicionado acima.
                GetDataTableItens(GridListaProdutos, _mNota.id_pedido);

                // Atualiza o total do pedido, e os totais da tela
                LoadTotais();

                // Limpa os campos
                ClearForms();

                // Verifica se modo é avançado e altera para modo simples, apenas se modo simples for padrão
                if (ModoRapAva == 1 && ModoRapAvaConfig == 1)
                {
                    AlterarModo();
                    ModoRapAvaConfig = 0;
                }

                BuscarProduto.Select();
            }
        }
Beispiel #21
0
        internal void Update(Model.Item Item, Transaction Transaction)
        {
            if (Transaction != null)
            {
                switch (this.Action)
                {
                case Model.Item.Actions.Create:
                    Transaction.Add("add", Item);
                    break;

                case Model.Item.Actions.Read:
                case Model.Item.Actions.Update:

                    switch (this.Locked)
                    {
                    case Model.Item.Locks.None:
                        this.Lock();
                        this.Action = Model.Item.Actions.Update;
                        Transaction.Add("update", Item);
                        break;

                    case Model.Item.Locks.User:
                        this.Action = Model.Item.Actions.Update;
                        Transaction.Add("update", Item);
                        break;

                    case Model.Item.Locks.OtherUser:
                        throw new Exceptions.ServerException("Item Locked by another User");
                    }

                    break;

                case Model.Item.Actions.Delete:

                    if (this.State != Model.Item.States.Deleted)
                    {
                        switch (this.Locked)
                        {
                        case Model.Item.Locks.None:
                            this.Lock();
                            this.Action = Model.Item.Actions.Update;
                            Transaction.Add("update", Item);
                            break;

                        case Model.Item.Locks.User:
                            this.Action = Model.Item.Actions.Update;
                            Transaction.Add("update", Item);
                            break;

                        case Model.Item.Locks.OtherUser:
                            throw new Exceptions.ServerException("Item Locked by another User");
                        }
                    }
                    else
                    {
                        throw new Exceptions.ArgumentException("Not able to Update a Deleted Item");
                    }

                    break;
                }
            }
            else
            {
                throw new Exceptions.ArgumentException("Transaction must not be null");
            }
        }
        //Metod för utritning av karaktärspanelen
        private void DrawCharacterPanel()
        {
            Vector2 pos      = new Vector2();
            Vector2 panelPos = new Vector2(m_player.CharPanel.Position.X, m_player.CharPanel.Position.Y);

            Model.Item statsItem = null;

            Rectangle charPanelRect = new Rectangle(0, 0, m_textures[CHAR_PANEL_BG].Width, m_textures[CHAR_PANEL_BG].Height);
            Rectangle closeCross    = GetCloseButton(m_player.CharPanel.Position.X, m_player.CharPanel.Position.Y, CHAR_PANEL_BG);

            if (m_player.CharPanel.IsOpen)
            {
                m_spriteBatch.Draw(m_textures[CHAR_PANEL_BG], panelPos, charPanelRect, Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Health: +" + m_player.TotalHp.ToString(), panelPos + new Vector2(80, 70), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Mana: +" + m_player.TotalMana.ToString(), panelPos + new Vector2(80, 85), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Damage: +10", panelPos + new Vector2(80, 100), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Crit: 10%", panelPos + new Vector2(80, 115), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Armor: +" + m_player.Armor.ToString(), panelPos + new Vector2(80, 130), Color.White);
                m_spriteBatch.DrawString(m_spriteFontSegoe, "Resist: +" + m_player.Resist.ToString(), panelPos + new Vector2(80, 145), Color.White);

                if (m_inputHandler.MouseIsOver(new Rectangle((int)m_player.CharPanel.Position.X, (int)m_player.CharPanel.Position.Y, m_textures[CHAR_PANEL_BG].Bounds.Width, m_textures[CHAR_PANEL_BG].Bounds.Height)))
                {
                    m_inputHandler.MouseIsOverInterface = true;
                }
                if (m_inputHandler.DidGetTargetedByLeftClick(closeCross))
                {
                    m_player.CharPanel.IsOpen = false;
                }
            }

            Vector2   position = new Vector2(m_player.CharPanel.Position.X + 13, m_player.CharPanel.Position.Y + 39);
            Rectangle itemRect = new Rectangle(0, 0, 32, 32);

            #region Ritar Equippade Items
            foreach (Model.Item item in m_player.CharPanel.EquipedItems)
            {
                item.ThisItem.Bounds.X = (int)m_player.CharPanel.Position.X + m_camera.GetScreenRectangle.X + 10;
                item.ThisItem.Bounds.Y = (int)m_player.CharPanel.Position.Y + m_camera.GetScreenRectangle.Y + 25;

                if (m_player.CharPanel.IsOpen)
                {
                    if (m_inputHandler.DidGetTargetedByLeftClick(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                    {
                        m_player.CharPanelTarget = item;
                    }
                    if (item.GetType() == Model.GameModel.ARMOR)
                    {
                        Model.Armor Armor = item as Model.Armor;

                        if (Armor.Type == Model.Armor.HEAD_ARMOR)
                        {
                            m_spriteBatch.Draw(m_textures[HEADARMOR], position, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                }
                //Kollar om spelaren har musen över ett item. isf så ska stats visas.
                if (m_inputHandler.MouseIsOver(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    pos       = position;
                    statsItem = item;
                }
            }
            #endregion

            if (statsItem != null && m_player.CharPanel.IsOpen)
            {
                DrawItemStats(statsItem, pos);
            }
        }
Beispiel #23
0
 public FormEventArgs(Model.Item Item)
     : base()
 {
     this.Item = Item;
 }
Beispiel #24
0
        private void SaveButton_Click(object sender, EventArgs e)
        {
            int er = 0;

            ep.Clear();
            if (categoryComboBox.Text == "")
            {
                er++;
                ep.SetError(categoryComboBox, "Required");
            }
            if (companyComboBox.Text == "")
            {
                er++;
                ep.SetError(companyComboBox, "Required");
            }
            if (itemNameTextBox.Text == "")
            {
                er++;
                ep.SetError(itemNameTextBox, "Required");
            }
            if (recorderTextBox.Text == "")
            {
                er++;
                ep.SetError(recorderTextBox, "Required");
            }
            if (er > 0)
            {
                return;
            }

            Model.Item item = new Model.Item();
            item.CategoryId   = Convert.ToInt64(categoryComboBox.SelectedValue);
            item.CompanyId    = Convert.ToInt64(companyComboBox.SelectedValue);
            item.Name         = itemNameTextBox.Text;
            item.ReorderLabel = Convert.ToInt32(recorderTextBox.Text);

            string QueryDuplicate = @"SELECT COUNT(*) FROM Items where Name='" + item.Name
                                    + "' and CategoryId='" + item.CategoryId + "' and CompanyId='" + item.CompanyId + "' ";

            SqlCommand     commandDuplicateCheck = new SqlCommand(QueryDuplicate, _con);
            DataTable      ds = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(commandDuplicateCheck);

            da.Fill(ds);
            if (ds.Rows[0][0].ToString() == "1")
            {
                string msg = "Duplicate Entry not Allowed.";
                MessageBox.Show(msg);
            }
            else
            {
                bool isAdded = _itemManager.Add(item);
                if (isAdded)
                {
                    MessageBox.Show("Successfully Added. ");
                    itemNameTextBox.Clear();
                    recorderTextBox.Clear();
                }
                else
                {
                    MessageBox.Show("Sorry! Added Failed.");
                }
            }
        }
Beispiel #25
0
 internal Decimal(Model.Item Item, PropertyTypes.Decimal Type)
     : base(Item, Type)
 {
 }
Beispiel #26
0
 public void Add(Model.Item item)
 {
     Add(new UI.CircularItem(item));
 }
Beispiel #27
0
 internal FormattedText(Model.Item Item, PropertyTypes.FormattedText Type)
     : base(Item, Type)
 {
 }
Beispiel #28
0
 private void Lv_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     Model.Item item = lv.SelectedItem as Model.Item;
     _shopElementInformation.DataContext = item;
     shopView.columSelect = ColumSelect.INFO;
 }
Beispiel #29
0
        private void Eventos()
        {
            KeyDown   += KeyDowns;
            KeyPreview = true;
            Masks.SetToUpper(this);

            Shown += (s, e) =>
            {
                ToolHelp.Show("Descreva seu serviço... Lembre-se de utilizar as características do serviço.",
                              pictureBox5, ToolHelp.ToolTipIcon.Info, "Ajuda!");

                if (idSelecionado > 0)
                {
                    LoadData();
                }
                else
                {
                    _modelItem = new Model.Item
                    {
                        Tipo = "Serviços",
                        Id   = 0
                    };
                    if (_modelItem.Save(_modelItem, false))
                    {
                        idSelecionado = _modelItem.GetLastId();
                        LoadData();
                    }
                    else
                    {
                        Alert.Message("Opss", "Erro ao criar.", Alert.AlertType.error);
                        Close();
                    }
                }

                Refresh();
            };

            label6.Click  += (s, e) => Close();
            btnExit.Click += (s, e) =>
            {
                var dataProd = _modelItem.Query().Where("id", idSelecionado)
                               .Where("atualizado", "01.01.0001, 00:00:00.000").FirstOrDefault();
                if (dataProd != null)
                {
                    var result = AlertOptions.Message("Atenção!", "Esse serviço não foi editado, deseja deletar?",
                                                      AlertBig.AlertType.info, AlertBig.AlertBtn.YesNo);
                    if (result)
                    {
                        var data = _modelItem.Remove(idSelecionado);
                        if (data)
                        {
                            Close();
                        }
                    }

                    nome.Focus();
                }

                Close();
            };

            btnSalvar.Click  += (s, e) => Save();
            btnRemover.Click += (s, e) =>
            {
                var result = AlertOptions.Message("Atenção!", "Você está prestes a deletar um serviço, continuar?",
                                                  AlertBig.AlertType.warning, AlertBig.AlertBtn.YesNo);
                if (!result)
                {
                    return;
                }

                var data = _modelItem.Remove(idSelecionado);
                if (data)
                {
                    Close();
                }
            };

            valorcompra.TextChanged += (s, e) =>
            {
                var txt = (TextBox)s;
                Masks.MaskPrice(ref txt);
            };

            valorvenda.TextChanged += (s, e) =>
            {
                var txt = (TextBox)s;
                Masks.MaskPrice(ref txt);
            };

            nome.KeyPress += (s, e) => Masks.MaskMaxLength(s, e, 100);

            btnHelp.Click += (s, e) => Support.OpenLinkBrowser(Configs.LinkAjuda);
        }
Beispiel #30
0
		private void GameMainThread()
		{
			Packet.Packet packet = null;
			while (State >= State.Begun)
			{
				lock (IdleLock)
				{
					packet = Network.Read();
					if (packet == null)
					{
						IsIdle = true;
						Monitor.Wait(IdleLock);
						continue;
					}
				}

				if (packet is Packet.Server.KeyPacket)
				{
					var _packet = packet as Packet.Server.KeyPacket;
					Network.Crypt(_packet.Key);
				}
				else if (packet is Packet.Server.CharSelectInfo)
				{
					var _packet = packet as Packet.Server.CharSelectInfo;
					State = State.Lobby;

					if (Connected != null && _packet.List != null)
						Connected(_packet.List);
				}
				else if (packet is Packet.Server.CharMoveToLocation)
				{
					var _packet = packet as Packet.Server.CharMoveToLocation;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Destination = _packet.Destination;
						creature.MoveTarget = 0;
						if (_packet.Position == _packet.Destination)
						{
							creature.IsMoving = false;
							if (FinishMoving != null)
								FinishMoving(creature);
						}
						else
						{
							creature.IsMoving = true;
							creature.LastMoveTime = System.DateTime.Now;
							if (StartMoving != null)
								StartMoving(creature);
						}
					}
					else
					{
						Logger.Warn("Creature not found");
					}
				}
				else if (packet is Packet.Server.CharInfo)
				{
					var _packet = packet as Packet.Server.CharInfo;
					var character = World[_packet.ObjectId] as Model.OtherPlayer;
					if (character == null)
						World.Add(character = new Model.OtherPlayer()
						{
							ObjectId = _packet.ObjectId
						});

					// mapping Packet => CharInfo
					character.Position = _packet.Position;
					character.Heading = _packet.Heading;
					character.ObjectId = _packet.ObjectId;
					character.Name = _packet.Name;
					character.Race = _packet.Race;
					character.Gender = _packet.Gender;
					character.ClassId = _packet.Class;
					character.Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear,
						Head = _packet.Head,
						RightHand = _packet.RightHand,
						LeftHand = _packet.LeftHand,
						Gloves = _packet.Gloves,
						Chest = _packet.Chest,
						Legs = _packet.Legs,
						Feet = _packet.Feet,
						Back = _packet.Back,
						BothHand = _packet.BothHand,
						Hair = _packet.Hair,
					};
					character.InPvP = _packet.IsPvP;
					character.Karma = _packet.Karma;
					character.MAtkSpd = _packet.MAttackSpeed;
					character.PAtkSpd = _packet.PAttackSpeed;
					character.RunSpd = _packet.RunSpeed;
					character.WalkSpd = _packet.WalkSpeed;
					character.SwimRunSpd = _packet.SwimRunSpeed;
					character.SwimWalkSpd = _packet.SwimWalkSpeed;
					character.FlRunSpd = _packet.FlRunSpeed;
					character.FlWalkSpd = _packet.FlWalkSpeed;
					character.FlyRunSpd = _packet.FlyRunSpeed;
					character.FlyWalkSpd = _packet.FlyWalkSpeed;
					character.MoveSpdMult = _packet.MoveSpeedMult;
					character.AtkSpdMult = _packet.AttackSpeedMult;
					character.CollisionRadius = _packet.CollisionRadius;
					character.CollisionHeight = _packet.CollisionHeight;
					character.HairStyle = _packet.HairSytle;
					character.HairColor = _packet.HairColor;
					character.FaceType = _packet.FaceType;
					character.Title = _packet.Title;
					character.ClanId = _packet.ClanId;
					character.ClanCrestId = _packet.ClanCrestId;
					character.AllyId = _packet.AllyId;
					character.AllyCrestId = _packet.AllyCrestId;
					//ch_inf.SiegeFlags = cip.SiegeFlags;
					character.IsSitting = !_packet.IsStanding;
					character.IsRunning = _packet.IsRunning;
					character.IsInCombat = _packet.IsInCombat;
					character.IsAlikeDead = _packet.IsAlikeDead;
					character.IsInvisible = _packet.IsInvisible;
					character.MountType = _packet.MountType;
					character.PrivateStore = _packet.PrivateStore;
					character.Cubics = _packet.Cubics.Cast<int>().ToList<int>();
					character.IsFindParty = _packet.IsFindParty;
					character.AbnormalEffects = _packet.AbnormalEffects;
					character.RecLeft = _packet.RecommendLeft;
					character.RecAmount = _packet.RecommendAmount;
					character.MaxCp = _packet.MaxCp;
					character.Cp = _packet.Cp;
					character.Enchant = _packet.EnchantAmount;
					character.TeamCircle = _packet.TeamCircle;
					character.LargeCrestId = _packet.ClanLargeCrestId;
					character.IsHeroIcon = _packet.IsHeroIcon;
					character.IsHeroGlow = _packet.IsHeroGlow;
					character.IsFishing = _packet.IsFishing;
					character.Fish = _packet.Fish;
					character.NameColor = _packet.NameColor;

					if (CreatureInfo != null)
						CreatureInfo(character);
				}
				else if (packet is Packet.Server.UserInfo)
				{
					var _packet = packet as Packet.Server.UserInfo;
					Model.Player me = World.Me;
					if (me == null)
						World.Add(World.Me = me = new Model.Player());

					// mapping Packet => Model.Player
					me.Name = _packet.Name;
					me.Title = _packet.Title;
					me.Heading = _packet.Heading;
					me.ObjectId = _packet.ObjectId;
					me.NameColor = _packet.NameColor;
					me.Race = _packet.Race;
					me.ClassId = _packet.ClassId;
					me.BaseClassId = _packet.BaseClassId;
					me.Gender = _packet.Gender;
					me.MountType = _packet.MountType;
					me.PrivateStore = _packet.PrivateStore;
					me.ClanId = _packet.ClanId;
					me.ClanCrestId = _packet.ClanCrestId;
					me.AllyId = _packet.AllyId;
					me.AllyCrestId = _packet.AllyCrestId;
					me.LargeCrestId = _packet.LargeCrestId;
					me.MoveSpdMult = _packet.MoveSpdMult;
					me.AtkSpdMult = _packet.AtkSpdMult;
					me.CollisionRadius = _packet.CollisionRadius;
					me.CollisionHeight = _packet.CollisionHeight;
					me.HairStyle = _packet.HairStyle;
					me.HairColor = _packet.HairColor;
					me.FaceType = _packet.FaceType;
					me.Level = _packet.Level;
					me.MaxHp = _packet.MaxHp;
					me.Hp = _packet.Hp;
					me.MaxMp = _packet.MaxMp;
					me.Mp = _packet.Mp;
					me.MaxCp = _packet.MaxCp;
					me.Cp = _packet.Cp;
					me.Xp = _packet.Xp;
					me.Sp = _packet.Sp;
					me.Load = _packet.Load;
					me.MaxLoad = _packet.MaxLoad;
					me.PvP = _packet.PvP;
					me.Pk = _packet.Pk;
					me.PAtk = _packet.PAtk;
					me.PAtkSpd = _packet.PAtkSpd;
					me.PDef = _packet.PDef;
					me.Evasion = _packet.Evasion;
					me.Accuracy = _packet.Accuracy;
					me.Focus = _packet.Focus;
					me.MAtk = _packet.MAtk;
					me.MAtkSpd = _packet.MAtkSpd;
					me.MDef = _packet.MDef;
					me.Karma = _packet.Karma;
					me.RunSpd = _packet.RunSpd;
					me.WalkSpd = _packet.WalkSpd;
					me.SwimRunSpd = _packet.SwimRunSpd;
					me.SwimWalkSpd = _packet.SwimWalkSpd;
					me.FlRunSpd = _packet.FlRunSpd;
					me.FlWalkSpd = _packet.FlWalkSpd;
					me.FlyRunSpd = _packet.FlyRunSpd;
					me.FlyWalkSpd = _packet.FlyWalkSpd;
					me.InPvP = _packet.InPvP;
					me.IsFishing = _packet.IsFishing;
					me.IsHeroIcon = _packet.IsHeroIcon;
					me.IsHeroGlow = _packet.IsHeroGlow;
					me.IsFindParty = _packet.IsFindParty;
					me.IsClanLeader = _packet.IsClanLeader;
					me.HasDwarfCraft = _packet.HasDwarfCraft;
					me.Position = _packet.Position;
					me.Fish = _packet.Fish;
					me.INT = _packet.INT;
					me.STR = _packet.STR;
					me.CON = _packet.CON;
					me.MEN = _packet.MEN;
					me.DEX = _packet.DEX;
					me.WIT = _packet.WIT;

					((Model.Character)me).Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear.ItemId,
						RightEaring = _packet.RightEaring.ItemId,
						LeftEaring = _packet.LeftEaring.ItemId,
						Neck = _packet.Neck.ItemId,
						RightFinger = _packet.RightFinger.ItemId,
						LeftFinger = _packet.LeftFinger.ItemId,
						Head = _packet.Head.ItemId,
						RightHand = _packet.RightHand.ItemId,
						LeftHand = _packet.LeftHand.ItemId,
						Gloves = _packet.Gloves.ItemId,
						Chest = _packet.Chest.ItemId,
						Legs = _packet.Legs.ItemId,
						Feet = _packet.Feet.ItemId,
						Back = _packet.Back.ItemId,
						BothHand = _packet.BothHand.ItemId,
						Hair = _packet.Hair.ItemId,
					};

					me.Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear.ObjectId,
						RightEaring = _packet.RightEaring.ObjectId,
						LeftEaring = _packet.LeftEaring.ObjectId,
						Neck = _packet.Neck.ObjectId,
						RightFinger = _packet.RightFinger.ObjectId,
						LeftFinger = _packet.LeftFinger.ObjectId,
						Head = _packet.Head.ObjectId,
						RightHand = _packet.RightHand.ObjectId,
						LeftHand = _packet.LeftHand.ObjectId,
						Gloves = _packet.Gloves.ObjectId,
						Chest = _packet.Chest.ObjectId,
						Legs = _packet.Legs.ObjectId,
						Feet = _packet.Feet.ObjectId,
						Back = _packet.Back.ObjectId,
						BothHand = _packet.BothHand.ObjectId,
						Hair = _packet.Hair.ObjectId,
					};

					me.RecLeft = _packet.RecLeft;
					me.RecAmount = _packet.RecAmount;
					me.InventoryLimit = _packet.InventoryLimit;
					me.SpecialEffects = _packet.SpecialEffects;
					me.AbnormalEffects = _packet.AbnormalEffects;
					me.AccessLevel = _packet.AccessLevel;
					me.Enchant = _packet.Enchant;
					me.TeamCircle = _packet.TeamCircle;
					me.Cubics = _packet.Cubics;

					if (!World.Contains(World.Me.ObjectId))
						World.Add(World.Me);

					// Run event
					if (CreatureInfo != null)
						CreatureInfo(World.Me);
				}
				else if (packet is Packet.Server.Attack)
				{
					var _packet = packet as Packet.Server.Attack;
					int attackerId = _packet.AttackerId;
					int targetId = _packet.Hits[0].TargetId;

					//lets check who is attacking what and set things as needed
					var creature = World[attackerId] as Model.Creature;
					if (creature != null)
					{
						if (creature.TargetId == 0)
							creature.TargetId = targetId;
						creature.IsInCombat = true;

						if (Attack != null)
							Attack(creature);
					}
				}
				else if (packet is Packet.Server.Die)
				{
					var _packet = packet as Packet.Server.Die;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Destination = creature.Position;
						creature.IsAlikeDead = true;
						creature.IsMoving = false;

						var npc = creature as Model.Npc;
						if (npc != null)
							npc.IsSpoiled = _packet.IsSpoiled;

						if (Die != null)
							Die(creature, creature == World.Me ?
								(Lineage.ReturnPoint?)_packet.Points : null);
					}
				}
				else if (packet is Packet.Server.Revive)
				{
					var _packet = packet as Packet.Server.Revive;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.IsAlikeDead = false;

						if (Revive != null)
							Revive(creature);
					}
				}
				else if (packet is Packet.Server.SpawnItem)
				{
					var _packet = packet as Packet.Server.SpawnItem;
					var item = World[_packet.ObjectId] as Model.Item;
					if (item == null)
						World.Add(item = new Model.Item()
						{
							ObjectId = _packet.ObjectId
						});

					item.ItemId = _packet.ItemId;
					item.Count = _packet.Count;
					item.Position = _packet.Position;
					item.IsStackable = _packet.IsStackable;

					if (ItemInfo != null)
						ItemInfo(item);
				}
				else if (packet is Packet.Server.DropItem)
				{
					var _packet = packet as Packet.Server.DropItem;
					var item = World[_packet.ObjectId] as Model.Item;
					if (item == null)
						World.Add(item = new Model.Item()
						{
							ObjectId = _packet.ObjectId
						});

					item.DroppedBy = _packet.DroppedBy;
					item.ItemId = _packet.ItemId;
					item.Position = _packet.Position;
					item.IsStackable =_packet.IsStackable;
					item.Count = _packet.Count;

					if (ItemInfo != null)
						ItemInfo(item);
				}
				else if (packet is Packet.Server.GetItem)
				{
					var _packet = packet as Packet.Server.GetItem;
					var item = World[_packet.ObjectId] as Model.Item;
					var creature = World[_packet.PlayerId] as Model.Creature;

					if (item != null)
					{
						if (Pickup != null)
							Pickup(item, creature, _packet.Position);

						if (creature != World.Me)
							World.Remove(item);
					}
				}
				else if (packet is Packet.Server.StatusUpdate)
				{
					var _packet = packet as Packet.Server.StatusUpdate;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						var me = World.Me;

						foreach (var pair in _packet.Attributes)
						{
							int key = pair.Key;
							int value = pair.Value;
							switch (key) // ToDo enum
							{
								case 0x01: creature.Level = value; break;
								case 0x02: me.Xp = value; break;
								case 0x03: me.STR = value; break;
								case 0x04: me.DEX = value; break;
								case 0x05: me.CON = value; break;
								case 0x06: me.INT = value; break;
								case 0x07: me.WIT = value; break;
								case 0x08: me.MEN = value; break;
								case 0x09: creature.Hp = value; break;
								case 0x0A: creature.MaxHp = value; break;
								case 0x0B: creature.Mp = value; break;
								case 0x0C: creature.MaxMp = value; break;
								case 0x0D: me.Sp = value; break;
								case 0x0E: me.Load = value; break;
								case 0x0F: me.MaxLoad = value; break;
								case 0x11: me.PAtk = value; break;
								case 0x12: creature.PAtkSpd = value; break;
								case 0x13: me.PDef = value; break;
								case 0x14: me.Evasion = value; break;
								case 0x15: me.Accuracy = value; break;
								case 0x16: me.Focus = value; break;
								case 0x17: me.MAtk = value; break;
								case 0x18: creature.MAtkSpd = value; break;
								case 0x19: me.MDef = value; break;
								case 0x1A: ((Model.Character)creature).InPvP = value != 0; break;
								case 0x1B: ((Model.Character)creature).Karma = value; break;
								case 0x21: creature.Cp = value; break;
								case 0x22: creature.MaxCp = value; break;
							}
						}

						if (CreatureUpdate != null)
							CreatureUpdate(creature);
					}
				}
				else if (packet is Packet.Server.NpcHtmlMessage)
				{
					var _packet = packet as Packet.Server.NpcHtmlMessage;
					//NPC_Chat.Npc_Chat(hmp.MessageId, hmp.Content);
				}
				else if (packet is Packet.Server.DeleteObject)
				{
					var _packet = packet as Packet.Server.DeleteObject;
					Model.Object obj = World[_packet.ObjectId];
					if (obj != null)
					{
						World.Remove(obj);

						if (ObjectRemoved != null)
							ObjectRemoved(obj);
					}
					else
						Logger.Warn("Object Removed, but not found");
				}
				else if (packet is Packet.Server.CharSelected)
				{
					var _packet = packet as Packet.Server.CharSelected;
					Model.Player me = World.Me;
					if (me == null)
						World.Add(World.Me = me = new Model.Player());

					// mapping Packet => Model.Player
					me.Name = _packet.Name;
					me.Title = _packet.Title;
					me.ObjectId = _packet.ObjectId;
					me.SessionId = _packet.SessionId;
					me.Position = _packet.Position;
					me.Gender = _packet.Gender;
					me.Race = _packet.Race;
					me.BaseClassId = _packet.BaseClassId;
					me.Hp = _packet.Hp;
					me.Mp = _packet.Mp;
					me.Sp = _packet.Sp;
					me.Xp = _packet.Xp;
					me.Level = _packet.Level;
					me.Karma = _packet.Karma;
					me.INT = _packet.INT;
					me.STR = _packet.STR;
					me.CON = _packet.CON;
					me.MEN = _packet.MEN;
					me.DEX = _packet.DEX;
					me.WIT = _packet.WIT;

					((Model.Character)me).Equipment = new Model.Equipment()
					{
						Underwear = _packet.Underwear.ItemId,
						RightEaring = _packet.RightEaring.ItemId,
						LeftEaring = _packet.LeftEaring.ItemId,
						Neck = _packet.Neck.ItemId,
						RightFinger = _packet.RightFinger.ItemId,
						LeftFinger = _packet.LeftFinger.ItemId,
						Head = _packet.Head.ItemId,
						RightHand = _packet.RightHand.ItemId,
						LeftHand = _packet.LeftHand.ItemId,
						Gloves = _packet.Gloves.ItemId,
						Chest = _packet.Chest.ItemId,
						Legs = _packet.Legs.ItemId,
						Feet = _packet.Feet.ItemId,
						Back = _packet.Back.ItemId,
						BothHand = _packet.BothHand.ItemId,
						Hair = _packet.Hair.ItemId
					};

					me.Equipment.Underwear = _packet.Underwear.ObjectId;
					me.Equipment.RightEaring = _packet.RightEaring.ObjectId;
					me.Equipment.LeftEaring = _packet.LeftEaring.ObjectId;
					me.Equipment.Neck = _packet.Neck.ObjectId;
					me.Equipment.RightFinger = _packet.RightFinger.ObjectId;
					me.Equipment.LeftFinger = _packet.LeftFinger.ObjectId;
					me.Equipment.Head = _packet.Head.ObjectId;
					me.Equipment.RightHand = _packet.RightHand.ObjectId;
					me.Equipment.LeftHand = _packet.LeftHand.ObjectId;
					me.Equipment.Gloves = _packet.Gloves.ObjectId;
					me.Equipment.Chest = _packet.Chest.ObjectId;
					me.Equipment.Legs = _packet.Legs.ObjectId;
					me.Equipment.Feet = _packet.Feet.ObjectId;
					me.Equipment.Back = _packet.Back.ObjectId;
					me.Equipment.BothHand = _packet.BothHand.ObjectId;
					me.Equipment.Hair = _packet.Hair.ObjectId;
					me.ClanId = _packet.ClanId;
					me.IsActive = _packet.IsActive;

					State = State.World;

					MoveThread.Start();

					RefreshManorList();
					RefreshQuestList();

					Network.Send(new Packet.Client.EnterWorld());

					RefreshSkillList();

					if (EnterWorld != null)
						EnterWorld();
				}
				else if (packet is Packet.Server.NpcInfo)
				{
					var _packet = packet as Packet.Server.NpcInfo;
					var npc = World[_packet.ObjectId] as Model.Npc;
					if (npc == null)
						World.Add(npc = new Model.Npc()
						{
							ObjectId = _packet.ObjectId
						});

					npc.NpcId = _packet.NpcId;
					npc.ObjectId = _packet.ObjectId;
					npc.Heading = _packet.Heading;
					npc.Name = _packet.Name;
					npc.Title = _packet.Title;
					npc.Position = _packet.Position;

					npc.MAtkSpd = _packet.MAtkSpd;
					npc.PAtkSpd = _packet.PAtkSpd;

					npc.RunSpd = _packet.RunSpd;
					npc.WalkSpd = _packet.WalkSpd;
					npc.SwimRunSpd = _packet.SwimRunSpd;
					npc.SwimWalkSpd = _packet.SwimWalkSpd;
					npc.FlRunSpd = _packet.FlRunSpd;
					npc.FlWalkSpd = _packet.FlWalkSpd;
					npc.FlyRunSpd = _packet.FlyRunSpd;
					npc.FlyWalkSpd = _packet.FlyWalkSpd;

					npc.RightHand = _packet.RightHand;
					npc.BothHand = _packet.BothHand;
					npc.LeftHand = _packet.LeftHand;

					npc.MoveSpdMult = _packet.MoveSpdMult;
					npc.AtkSpdMult = _packet.AtkSpdMult;
					npc.CollisionRadius = _packet.CollisionRadius;
					npc.CollisionHeight = _packet.CollisionHeight;

					npc.IsAttackable = _packet.IsAttackable;
					npc.IsSummoned = _packet.IsSummoned;
					npc.IsAlikeDead = _packet.IsAlikeDead;
					npc.IsInCombat = _packet.IsInCombat;
					npc.IsRunning = _packet.IsRunning;
					npc.IsShowName = _packet.IsShowName;

					if (CreatureInfo != null)
						CreatureInfo(npc);
				}
				else if (packet is Packet.Server.ItemList)
				{
					var _packet = packet as Packet.Server.ItemList;
					var items = new List<Tuple<Model.Item, ItemUpdate>>();
					foreach (var _item in _packet.Items)
					{
						var item = World[_item.ObjectId] as Model.Item;
						if (item == null)
							World.Add(item = new Model.Item()
							{
								ObjectId = _item.ObjectId
							});

						item.ObjectId = _item.ObjectId;
						item.ItemId = _item.ItemId;
						item.Count = _item.Count;
						item.Slot = _item.Slot;
						item.Enchant = _item.Enchant;
						item.IsEquipped = _item.IsEquipped;
						item.Type1 = _item.Type1;
						item.Type2 = _item.Type2;
						item.Type3 = _item.Type3;
						item.Type4 = _item.Type4;

						items.Add(new Tuple<Model.Item, ItemUpdate>(item, ItemUpdate.Append));
					}

					if (InventoryRefresh != null)
						InventoryRefresh(items);
				}
				else if (packet is Packet.Server.Sunrise)
				{
					var _packet = packet as Packet.Server.Sunrise;
					if (ChangeTime != null)
						ChangeTime(Lineage.DayTime.Night, null);
				}
				else if (packet is Packet.Server.Sunset)
				{
					var _packet = packet as Packet.Server.Sunset;
					if (ChangeTime != null)
						ChangeTime(Lineage.DayTime.Day, null);
				}
				else if (packet is Packet.Server.ActionFailed)
				{
					if (ActionFailed != null)
						ActionFailed();
				}
				else if (packet is Packet.Server.InventoryUpdate)
				{
					var _packet = packet as Packet.Server.InventoryUpdate;
					var items = new List<Tuple<Model.Item, ItemUpdate>>();
					foreach (var _item in _packet.Items)
					{
						var item = World[_item.ObjectId] as Model.Item;
						if (_item.Change == (int)ItemUpdate.Append ||
							_item.Change == (int)ItemUpdate.Modify)
						{
							if (item == null)
								World.Add(item = new Model.Item()
								{
									ObjectId = _item.ObjectId
								});

							item.ItemId = _item.ItemId;
							item.Count = _item.Count;
							item.Slot = _item.Slot;
							item.Enchant = _item.Enchant;
							item.IsEquipped = _item.IsEquipped;
							item.Type1 = _item.Type1;
							item.Type2 = _item.Type2;
							item.Type3 = _item.Type3;
							item.Type4 = _item.Type4;
						}

						// Если Drop, удалять объект нельзя
						// Тут ничего не делаем т.к. нахождение в инвентаре отслеживается по position, а та уже установлена

						items.Add(new Tuple<Model.Item, ItemUpdate>(item, (ItemUpdate)_item.Change));
					}

					if (InventoryUpdate != null)
						InventoryUpdate(items);
				}
				else if (packet is Packet.Server.TeleportToLocation)
				{
					var _packet = packet as Packet.Server.TeleportToLocation;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Position = _packet.Position;
						if (creature.ObjectId == World.Me.ObjectId)
						{
							var me = World.Me;
							lock (World)
							{
								World.Clear();
								World.Add(me);
							}

							Network.Send(new Packet.Client.ValidatePosition()
							{
								Position = World.Me.Position,
								Angle = World.Me.Heading
							});

							Network.Send(new Packet.Client.Appearing());
						}

						if (Teleported != null)
							Teleported(creature);
					}
				}
				else if (packet is Packet.Server.TargetSelected)
				{
					var _packet = packet as Packet.Server.TargetSelected;
					var creature = World[_packet.ObjectId] as Model.Creature;
					var target = World[_packet.TargetId] as Model.Creature;

					if (creature != null && target != null)
						if (creature.TargetId != target.ObjectId)
						{
							creature.TargetId = target.ObjectId;

							if (TargetChanged != null)
								TargetChanged(creature, target);
						}
				}
				else if (packet is Packet.Server.TargetUnselected)
				{
					var _packet = packet as Packet.Server.TargetUnselected;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.TargetId = 0; // ToDo Target = null?

						if (TargetChanged != null)
							TargetChanged(creature, null);
					}
				}
				else if (packet is Packet.Server.AutoAttackStart)
				{
					var _packet = packet as Packet.Server.AutoAttackStart;
					var creature = World[_packet.TargetId] as Model.Creature;
					if (creature != null)
						creature.IsInCombat = true;
				}
				else if (packet is Packet.Server.AutoAttackStop)
				{
					var _packet = packet as Packet.Server.AutoAttackStop;
					var creature = World[_packet.TargetId] as Model.Creature;
					if (creature != null)
						creature.IsInCombat = false;
				}
				else if (packet is Packet.Server.SocialAction)
				{
					var _packet = packet as Packet.Server.SocialAction;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null && UsedSocialAction != null)
						UsedSocialAction(creature, _packet.Action);
				}
				else if (packet is Packet.Server.ChangeMoveType)
				{
					var _packet = packet as Packet.Server.ChangeMoveType;
					var character = World[_packet.ObjectId] as Model.Character;
					if (character != null)
						character.IsRunning = _packet.MoveType == Lineage.MoveType.Run;
				}
				else if (packet is Packet.Server.ChangeWaitType)
				{
					var _packet = packet as Packet.Server.ChangeWaitType;
					var character = World[_packet.ObjectId] as Model.Character;
					if (character != null)
						character.IsSitting = _packet.WaitType == Lineage.WaitType.Sit;
				}
				else if (packet is Packet.Server.AskJoinPledge)
				{
					var _packet = packet as Packet.Server.AskJoinPledge;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (QuestionAsked != null && creature != null)
						QuestionAsked(Lineage.Question.JoinClan, creature.Name, _packet.ClanName);
					else if (creature == null)
						Logger.Warn("Join a clan question author is not found.");
				}
				else if (packet is Packet.Server.AskJoinParty)
				{
					var _packet = packet as Packet.Server.AskJoinParty;
					if (QuestionAsked != null)
						QuestionAsked(Lineage.Question.JoinParty, _packet.LeaderName, _packet.PartyLoot.ToString());
				}
				else if (packet is Packet.Server.ShortcutInit)
				{
					var _packet = packet as Packet.Server.ShortcutInit;
					foreach (Model.Shortcut shortcut in _packet.List)
						World.Shortcut[shortcut.Page, shortcut.Slot] = shortcut;
				}
				else if (packet is Packet.Server.StopMove)
				{
					var _packet = packet as Packet.Server.StopMove;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Position = _packet.Position;
						creature.Heading = _packet.Heading;
						creature.IsMoving = false;
					}
				}
				else if (packet is Packet.Server.MagicSkillUser)
				{
					var _packet = packet as Packet.Server.MagicSkillUser;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Casting = new Model.Casting()
						{
							SkillId = _packet.SkillId,
							SkillLevel = _packet.SkillLevel,
							Start = DateTime.Now,
							Length = _packet.CastTime
						};

						if (creature == World.Me)
						{
							var skills = World.Me.Skills;
							lock (skills)
								if (skills.ContainsKey(_packet.SkillId))
								{
									var skill = skills[_packet.SkillId];

									if (_packet.ReuseDelay > TimeSpan.Zero)
									{
										skill.IsReady = false;

										if (skill.Reuse != null)
											skill.Reuse.Dispose();

										skill.Reuse = new System.Timers.Timer(_packet.ReuseDelay.TotalMilliseconds) { AutoReset = false };
										skill.Reuse.Elapsed += (object sender, System.Timers.ElapsedEventArgs args) =>
										{
											skill.IsReady = true;
											if (SkillReused != null)
												SkillReused(skill);
										};

										skill.Reuse.Start();
									}
								}
								else
									Logger.Warn(string.Format("Skill #{0} not found, but got in MagicSkillUser packet", _packet.SkillId));
						}

						if (SkillStarted != null)
							SkillStarted(creature);
					}
				}
				else if (packet is Packet.Server.MagicSkillCanceld)
				{
					var _packet = packet as Packet.Server.MagicSkillCanceld;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						if (SkillCanceled != null)
							SkillCanceled(creature);

						creature.Casting = null;
					}
				}
				else if (packet is Packet.Server.CreatureSay)
				{
					var _packet = packet as Packet.Server.CreatureSay;
					if (ChatMessage != null)
					{
						Model.Creature author = World[_packet.ObjectId] as Model.Creature;
						ChatMessage(_packet.Type, _packet.Message, _packet.Author, author);
					}
				}
				else if (packet is Packet.Server.PartySmallWindowAll)
				{
					var _packet = packet as Packet.Server.PartySmallWindowAll;
					var party = World.Party = new Model.Party()
					{
						Loot = _packet.Loot
					};

					foreach (var _member in _packet.Members)
					{
						var member = World[_member.ObjectId] as Model.Character;
						if (member == null)
							World.Add(member = new Model.OtherPlayer()
							{
								ObjectId = _member.ObjectId
							});

						lock (party.Members)
							party.Members.Add(member);
						if (member.ObjectId == _packet.LeaderId)
							party.Leader = member;

						member.Name = _member.Name;
						member.Cp = _member.Cp;
						member.MaxCp = _member.MaxCp;
						member.Hp = _member.Hp;
						member.MaxHp = _member.MaxHp;
						member.Mp = _member.Mp;
						member.MaxMp = _member.MaxMp;
						member.Level = _member.Level;
						member.ClassId = _member.Class;
					}

					lock (party.Members)
						party.Members.Add(World.Me);

					if (PartyInfo != null)
						PartyInfo(null);
				}
				else if (packet is Packet.Server.PartySmallWindowAdd)
				{
					var _packet = packet as Packet.Server.PartySmallWindowAdd;
					var member = World[_packet.ObjectId] as Model.Character;
					if (member == null)
						World.Add(member = new Model.OtherPlayer()
						{
							ObjectId = _packet.ObjectId
						});

					var party = World.Party;
					lock (party.Members)
						party.Members.Add(member);

					member.Name = _packet.Name;
					member.Cp = _packet.Cp;
					member.MaxCp = _packet.MaxCp;
					member.Hp = _packet.Hp;
					member.MaxHp = _packet.MaxHp;
					member.Mp = _packet.Mp;
					member.MaxMp = _packet.MaxMp;
					member.Level = _packet.Level;
					member.ClassId = _packet.Class;

					if (PartyAppend != null)
						PartyAppend(party, member);
				}
				else if (packet is Packet.Server.PartySmallWindowDeleteAll)
				{
					var _packet = packet as Packet.Server.PartySmallWindowDeleteAll;
					World.Party = null;

					if (PartyInfo != null)
						PartyInfo(null);
				}
				else if (packet is Packet.Server.PartySmallWindowDelete)
				{
					var _packet = packet as Packet.Server.PartySmallWindowDelete;
					var party = World.Party;
					var member = World[_packet.ObjectId] as Model.Character;
					if (member != null)
					{
						lock (party.Members)
							party.Members.Remove(member);

						if (PartyDelete != null)
							PartyDelete(party, member);
					}
				}
				else if (packet is Packet.Server.PartySmallWindowUpdate)
				{
					var _packet = packet as Packet.Server.PartySmallWindowUpdate;
					var member = World[_packet.ObjectId] as Model.Character;
					if (member != null)
					{
						member.Name = _packet.Name;
						member.Cp = _packet.Cp;
						member.MaxCp = _packet.MaxCp;
						member.Hp = _packet.Hp;
						member.MaxHp = _packet.MaxHp;
						member.Mp = _packet.Mp;
						member.MaxMp = _packet.MaxMp;
						member.Level = _packet.Level;
						member.ClassId = _packet.Class;

						if (PartyUpdate != null)
							PartyUpdate(World.Party, member);
					}
				}
				else if (packet is Packet.Server.PledgeShowMemberListAll)
				{
					var _packet = packet as Packet.Server.PledgeShowMemberListAll;
					Model.Ally ally = !_packet.InAlly ? null : new Model.Ally()
					{
						Id = _packet.AllyId,
						Name = _packet.AllyName,
						CrestId = _packet.AllyCrestId
					};

					Model.Clan clan = new Model.Clan()
					{
						Id = _packet.ClanId,
						Level = _packet.ClanLevel,
						CrestId = _packet.ClanCrestId,
						AllyId = _packet.InAlly ? _packet.AllyId : 0,
						Name = _packet.ClanName,
						Leader = _packet.LeaderName,
						InWar = _packet.InWar,
						HasCastle = _packet.HasCastle,
						HasClanhall = _packet.HasClanhall
					};

					clan.Members = new Model.ClanMember[_packet.Members.Length];
					for (int i = 0; i < _packet.Members.Length; i++)
					{
						clan.Members[i].ObjectId = _packet.Members[i].ObjectId;
						clan.Members[i].Name = _packet.Members[i].Name;
						clan.Members[i].Level = _packet.Members[i].Level;
						clan.Members[i].ClassId = _packet.Members[i].ClassId;
						clan.Members[i].IsOnline = _packet.Members[i].IsOnline;
					}

					if (ClanInfo != null)
						ClanInfo(clan, ally);
				}
				else if (packet is Packet.Server.SkillList)
				{
					var _packet = packet as Packet.Server.SkillList;
					var skills = World.Me.Skills;
					var list = new List<Model.Skill>();
					lock (skills)
						foreach (Packet.Server.SkillList.SkillItem _skill in _packet.List)
						{
							Model.Skill skill = null;
							if (skills.ContainsKey(_skill.Id))
								skill = skills[_skill.Id];
							else
								skills.Add(_skill.Id, skill = new Model.Skill());

							skill.SkillId = _skill.Id;
							skill.Level = _skill.Level;
							skill.IsActive = _skill.Active;
						}

					if (SkillList != null)
						SkillList(list);
				}
				else if (packet is Packet.Server.RestartResponse)
				{
					var _packet = packet as Packet.Server.RestartResponse;
					if (_packet.Reason == Packet.Server.RestartResponse.reason.Ok)
					{
						State = State.Lobby;
						if (Restarted != null)
							Restarted();
					}
					else
						throw new NotImplementedException();
				}
				else if (packet is Packet.Server.MoveToPawn)
				{
					var _packet = packet as Packet.Server.MoveToPawn;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.IsMoving = true;
						creature.MoveTarget = _packet.TargetId;
						creature.LastMoveTime = System.DateTime.Now;
					}
				}
				else if (packet is Packet.Server.ValidateLocation)
				{
					var _packet = packet as Packet.Server.ValidateLocation;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Heading = _packet.Heading;
						creature.Position = new Library.Point(
							_packet.PositionX,
							_packet.PositionY,
							_packet.PositionZ
						);
					}
				}
				else if (packet is Packet.Server.SystemMessage)
				{
					var _packet = packet as Packet.Server.SystemMessage;

					if (_packet.MessageId == 46) //TODO MAGIC CONST
					{
						//use skill 
						//changing of bot state based on successful skill done elsewhere now
					}

					//Todo Spoiling failed / Spoiling condition has activated catch

					const int already_spoiled = 357; //TODO MAGIC CONST
					const int spoil_landed = 612; //TODO MAGIC CONST
					var npc = World[World.Me.TargetId] as Model.Npc;
					if (npc != null && (_packet.MessageId == already_spoiled || _packet.MessageId == spoil_landed))
						npc.IsSpoiled = true;

					//
					object[] arguments = new object[_packet.Arguments.Length];
					for (int i = 0; i < _packet.Arguments.Length; i++)
					{
						object argument = null;
						var pair = _packet.Arguments[i];
						switch (pair.Key)
						{
							case Packet.Server.SystemMessage.type.Text: argument = (string)pair.Value; break;
							case Packet.Server.SystemMessage.type.Number: argument = ((int)pair.Value).ToString(); break;
							case Packet.Server.SystemMessage.type.NpcName: argument = new Model.Npc() { NpcId = (int)pair.Value }; break;
							case Packet.Server.SystemMessage.type.ItemName: argument = new Model.Item() { ItemId = (int)pair.Value }; break;
							case Packet.Server.SystemMessage.type.SkillName: argument = new Model.Skill() { SkillId = (int)pair.Value }; break;
						}
						arguments[i] = argument;
					}

					//
					if (SystemMessage != null)
						SystemMessage(_packet.MessageId, arguments);
				}
				else if (packet is Packet.Server.PledgeCrest)
				{
					var _packet = packet as Packet.Server.PledgeCrest;
					//throw new NotImplementedException();
					//ToDo: Crests.Get_ClanCrest(buffe);
				}
				else if (packet is Packet.Server.ValidateLocationInVehicle)
				{
					var _packet = packet as Packet.Server.ValidateLocationInVehicle;
					var creature = World[_packet.ObjectId] as Model.Creature;
					if (creature != null)
					{
						creature.Heading = _packet.Heading;
						creature.Position = new Library.Point(
							_packet.PositionX,
							_packet.PositionY,
							_packet.PositionZ
						);
					}
				}
				else if (packet is Packet.Server.MagicSkillLaunched)
				{
					var _packet = packet as Packet.Server.MagicSkillLaunched;
					var creature = World[_packet.ObjectId] as Model.Creature;

					if (creature != null)
					{
						if (SkillLaunched != null)
							SkillLaunched(creature);

						creature.Casting = null;
					}
				}
				else if (packet is Packet.Server.AskJoinFriend)
				{
					var _packet = packet as Packet.Server.AskJoinFriend;
					if (QuestionAsked != null)
						QuestionAsked(Lineage.Question.JoinFriend, _packet.PlayerName, null);
				}
				else if (packet is Packet.Server.Logout)
				{
					var _packet = packet as Packet.Server.Logout;
					Abort();

					if (LoggedOut != null)
						LoggedOut();
				}
				else if (packet is Packet.Server.PledgeInfo)
				{
					var _packet = packet as Packet.Server.PledgeInfo;
					lock (World.Clans)
					{
						Model.Clan clan = null;
						if (World.Clans.ContainsKey(_packet.ClanId))
							clan = World.Clans[_packet.ClanId];
						else
							World.Clans.Add(_packet.ClanId, clan = new Model.Clan());

						clan.Name = _packet.ClanName;
						clan.Ally = _packet.AllyName;
					}

					// Crests.Get_ClanCrest(buffe);
				}
				else if (packet is Packet.Server.PledgeShowInfoUpdate)
				{
					var _packet = packet as Packet.Server.PledgeShowInfoUpdate;
					Model.Clan clan = null;
					lock (World.Clans)
						if (World.Clans.ContainsKey(_packet.ClanId))
							clan = World.Clans[_packet.ClanId];
						else
							World.Clans.Add(_packet.ClanId, clan = new Model.Clan());

					clan.Id = _packet.ClanId;
					clan.CrestId = _packet.CrestId;
					clan.Level = _packet.ClanLevel;
					clan.HasCastle = _packet.HasCastle;
					clan.HasClanhall = _packet.HasClanhall;

					if (ClanUpdate != null)
						ClanUpdate(clan);
				}
				else if (packet is Packet.Server.MyTargetSelected)
				{
					var _packet = packet as Packet.Server.MyTargetSelected;
					var me = World.Me;
					var target = World[me.TargetId] as Model.Creature;
					if (target != null)
						target.NameColor = _packet.TargetColor;
					if (me.TargetId != _packet.ObjectId)
					{
						target = World[_packet.ObjectId] as Model.Creature;
						if (target != null && TargetChanged != null)
							TargetChanged(me, target);
					}
				}
				else if (packet is Packet.Server.PartyMemberPosition)
				{
					var _packet = packet as Packet.Server.PartyMemberPosition;
					foreach (var _member in _packet.Members)
					{
						var member = World[_member.ObjectId] as Model.Creature;
						if (member != null)
							member.Position = _member.Position;
					}
				}
				else if (packet is Packet.Server.AskJoinAlly)
				{
					var _packet = packet as Packet.Server.AskJoinAlly;
					if (QuestionAsked != null)
						QuestionAsked(Lineage.Question.JoinAlly, _packet.AllyName, null);
				}
				else if (packet is Packet.Server.AllyCrest)
				{
					var _packet = packet as Packet.Server.AllyCrest;
					//throw new NotImplementedException();
					//ToDo: Crests.Get_AllyCrest(buffe);
				}
				else if (packet is Packet.Server.HennaInfo)
				{
					var _packet = packet as Packet.Server.HennaInfo;
					var me = World.Me;
					me.INT = _packet.INT;
					me.STR = _packet.STR;
					me.CON = _packet.CON;
					me.MEN = _packet.MEN;
					me.DEX = _packet.DEX;
					me.WIT = _packet.WIT;
					me.Symbols = new int[_packet.Symbols.Length];
					for (int i = 0; i < me.Symbols.Length; i++)
						me.Symbols[i] = _packet.Symbols[i];

					if (HennaInfo != null)
						HennaInfo(me.Symbols);
				}
				else if (packet is Packet.Server.SignsSky)
				{
					var _packet = packet as Packet.Server.SignsSky;
					if (ChangeTime != null)
						ChangeTime(null, _packet.Sky);
				}
				else if (packet is Packet.Server.GameGuardVerfy)
				{
					var _packet = packet as Packet.Server.GameGuardVerfy;
					Network.Send(new Packet.Client.GameGuardReply());
				}
				else if (packet is Packet.Server.FriendRecvMsg)
				{
					var _packet = packet as Packet.Server.FriendRecvMsg;
					if (ChatMessage != null)
						ChatMessage(Lineage.Channel.Friend, _packet.Message, _packet.Sender, null);
				}
			}

			Dispose();
		}
        //Metod för utritning av backpack
        private void DrawBackpack()
        {
            //För Itemstats
            Vector2 pos = new Vector2();

            Model.Item statsItem = null;

            //Skapar en rektangel för backpacken.
            Rectangle backpackRect = new Rectangle(0, 0, m_textures[BACKPACK].Width, m_textures[BACKPACK].Height);
            Rectangle closeCross   = GetCloseButton(m_player.BackPack.Position.X, m_player.BackPack.Position.Y, BACKPACK);

            //Kollar det här så objektens position hela tiden uppdateras.
            if (m_player.BackPack.IsOpen)
            {
                m_spriteBatch.Draw(m_textures[BACKPACK], new Vector2(m_player.BackPack.Position.X, m_player.BackPack.Position.Y), backpackRect, Color.White);

                if (m_inputHandler.MouseIsOver(new Rectangle((int)m_player.BackPack.Position.X, (int)m_player.BackPack.Position.Y, m_textures[BACKPACK].Bounds.Width, m_textures[BACKPACK].Bounds.Height)))
                {
                    m_inputHandler.MouseIsOverInterface = true;
                }
                if (m_inputHandler.DidGetTargetedByLeftClick(closeCross))
                {
                    m_player.BackPack.IsOpen = false;
                }
            }

            //Skapar en rektangel för item i backpacken.
            Rectangle itemRect = new Rectangle(0, 0, 32, 32);
            int       x        = 12;
            int       y        = 45;

            foreach (Model.Item item in m_player.BackPack.BackpackItems)
            {
                ////Om inte detta körs så blir det lite buggat. inget man ser om man inte ritar ut objektlagret items.
                item.ThisItem.Bounds.X = (int)m_player.BackPack.Position.X + m_camera.GetScreenRectangle.X + x;
                item.ThisItem.Bounds.Y = (int)m_player.BackPack.Position.Y + m_camera.GetScreenRectangle.Y + y;

                Vector2 itemPosition = new Vector2(m_player.BackPack.Position.X + x, m_player.BackPack.Position.Y + y);

                //Kontrollerar att backpacken är öppen.
                if (m_player.BackPack.IsOpen)
                {
                    if (m_inputHandler.DidGetTargetedByLeftClick(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                    {
                        m_player.BackpackTarget = item;
                    }

                    //Om typen är en armor.
                    if (item.GetType() == Model.GameModel.ARMOR)
                    {
                        if (item.Type == Model.Armor.HEAD_ARMOR)
                        {
                            m_spriteBatch.Draw(m_textures[HEADARMOR], itemPosition, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                    //Om typen är ett questitem.
                    else if (item.GetType() == Model.GameModel.QUEST_ITEM)
                    {
                        if (item.Type == Model.QuestItem.ENEMY_HEAD)
                        {
                            m_spriteBatch.Draw(m_textures[BOSS_HEAD], itemPosition, itemRect, Color.White, 0f, Vector2.Zero, 1.5f, SpriteEffects.None, 0f);
                        }
                    }
                }

                //Itemplacering i bagen
                x += 50;

                if (x >= m_textures[BACKPACK].Width)
                {
                    y += 50;
                    x  = 0;
                }

                //Kollar om spelaren har musen över ett item. isf så ska stats visas.
                if (m_inputHandler.MouseIsOver(m_camera.VisualizeRectangle(item.ThisItem.Bounds)))
                {
                    pos       = itemPosition;
                    statsItem = item;
                }
            }

            //Om spelaren håller över ett item (kollas i foreachloopen) och backpacken är öppen ritas stats ut.
            if (statsItem != null && m_player.BackPack.IsOpen)
            {
                DrawItemStats(statsItem, pos);
            }

            //Försöker ta bort ett objekt från backpacken och lägga på marken om spealren högerklickar på item i backpacken.
            if (m_player.BackPack.IsOpen)
            {
                for (int i = 0; i < m_player.BackPack.BackpackItems.Count; i++)
                {
                    if (m_inputHandler.DidGetTargetedByRightClick(m_camera.VisualizeRectangle(m_player.BackPack.BackpackItems[i].ThisItem.Bounds)) && m_player.BackPack.BackpackItems[i].GetType() != Model.GameModel.QUEST_ITEM)
                    {
                        m_player.BackPack.BackpackItems[i].ThisItem.Bounds = m_player.ThisUnit.Bounds;
                        m_worldItems.Add(m_player.BackPack.BackpackItems[i]);
                        m_player.BackPack.BackpackItems.Remove(m_player.BackPack.BackpackItems[i]);
                    }
                }
            }
        }
Beispiel #32
0
 internal Federated(Model.Item Item, PropertyTypes.Federated Type)
     : base(Item, Type)
 {
 }
Beispiel #33
0
        private void frmGood_Load(object sender, EventArgs e)
        {
            // Init source
            // Trong các hàm cms gọi lại load -> gán lại về null
            // để bộ dọn rác tự dọn rồi khởi tạo lại
            if (dtTemp != null)
            {
                dtTemp = null;
            }
            if (bsTemp != null)
            {
                bsTemp = null;
            }
            dtTemp = new DataTable();
            bsTemp = new BindingSource();

            // Ý tưởng cả đoạn dưới:
            //- Lấy dữ liệu vào data table
            //- Gán data table cho bindingsource
            //- Gán bindingsource cho datagridview.datasource
            //** làm quanh vậy để làm gì?
            //** vì không làm thế méo lọc được :v

            // Get data
            if (myItemList != null)
            {
                myItemList = null;
            }
            myItemList = new List <Model.Item>();
            string strCmd = "select * from KHO_LK";

            Connector.readItemData(strCmd, myItemList);

            // Set data table column
            for (int i = 0; i < strColName.Length; i++)
            {
                dtTemp.Columns.Add(strColName[i]);
            }

            // Reset tổng số linh kiện về 0
            totalExist = 0;

            // Set data to data table
            for (int i = 0; i < myItemList.Count; i++)
            {
                Model.Item u = myItemList[i];
                totalExist += u.ExistNumber;
                dtTemp.Rows.Add(i + 1, u.IdString, u.Name, u.LabelName, u.ExistNumber, u.Solve);
            }

            // Set source
            bsTemp.DataSource  = dtTemp;
            dgvData.DataSource = bsTemp.DataSource;

            // Set view for data grid view
            for (int i = 0; i < strHeader.Length; i++)
            {
                dgvData.Columns[i].Width      = (dgvData.Width / 100) * size[i];
                dgvData.Columns[i].HeaderText = strHeader[i];
            }

            // Set font, chế độ chọn theo hàng
            dgvData.DefaultCellStyle.Font = new Font("Segoe UI", 12);
            dgvData.SelectionMode         = DataGridViewSelectionMode.FullRowSelect;


            // Set dữ liệu tổng cho kho
            string strCmd1 = "select count(*) from loai_lk";

            totalType         = Connector.getNumber(strCmd1);
            lbTotalExist.Text = totalExist.ToString();
            lbTotalType.Text  = totalType.ToString();


            isLoaded = true;
        }
Beispiel #34
0
        internal static List <Model.Item> GenerateItemList(Model.Item item1, Model.Item item2, Model.Item item3)
        {
            List <Model.Item> ret = new List <Model.Item>();

            ret.Add(item1);
            ret.Add(item2);
            ret.Add(item3);

            return(ret);
        }
        public async Task <AddOrderPayload> AddOrderAsync(AddOrderInput input,
                                                          [ScopedService] ApplicationDbContext dbContext)
        {
            // Check that there are quantities
            if (!input.Items.Any())
            {
                Error error = new("No items to order", "1010");
                throw new QueryException(error);
            }

            // Check the quantities are valid
            if (input.Items.Any(item => item.Quantity < 1 || item.Quantity > 99))
            {
                Error error = new ("Invalid order item quantity", "1011");
                throw new QueryException(error);
            }

            // Check that the items provided exist in the db
            var itemIds = input.Items.Select(item => item.ItemId).ToList();

            Model.Item[]? dbItems = await dbContext.Items
                                    .Where(i => itemIds.Contains(i.Id)).ToArrayAsync();

            if (dbItems.Length != input.Items.Count())
            {
                Error error = new("Invalid order item id", "1012");
                throw new QueryException(error);
            }

            // Create the order object.
            var orderId = Guid.NewGuid();

            Model.Order order = new Model.Order
            {
                Id                   = orderId,
                Name                 = input.Name,
                Address1             = input.Address1,
                Address2             = input.Address2,
                Town                 = input.Town,
                Postcode             = input.Postcode,
                Phone                = input.Phone,
                Email                = input.Email,
                DeliveryInstructions = input.DeliveryInstructions,
                OwnerId              = input.OwnerId,
                CreatedAt            = DateTime.Now
            };

            await dbContext.Orders.AddAsync(order);


            IEnumerable <OrderItemInput> items = input.Items;

            // Now add the order items
            foreach ((Guid itemId, var quantity) in items)
            {
                // Get a snapshot of the item when ordered
                Model.Item dbItem = dbItems.First(item => item.Id == itemId);

                OrderItem orderItem = new OrderItem
                {
                    OrderId     = orderId,
                    ItemId      = itemId,
                    Quantity    = quantity,
                    Name        = dbItem?.Name,
                    Description = dbItem?.Description
                };

                await dbContext.OrderItems.AddAsync(orderItem);
            }

            await dbContext.SaveChangesAsync();

            return(new AddOrderPayload(order));
        }
Beispiel #36
0
 internal Float(Model.Item Item, PropertyTypes.Float Type)
     : base(Item, Type)
 {
 }
        public bool Add(Model.Item item)
        {
            bool isAdded = itemRepository.Add(item);

            return(isAdded);
        }
Beispiel #38
0
        private void Save()
        {
            foreach (var item in ListProducts)
            {
                _modelItem = _modelItem.FindById(item).FirstOrDefault <Model.Item>();
                if (!string.IsNullOrEmpty(valorcompra.Text))
                {
                    _modelItem.ValorCompra = Validation.ConvertToDouble(valorcompra.Text);
                }

                if (!string.IsNullOrEmpty(valorvenda.Text))
                {
                    _modelItem.ValorVenda = Validation.ConvertToDouble(valorvenda.Text);
                }

                if (!string.IsNullOrEmpty(Medidas.Text))
                {
                    _modelItem.Medida = Medidas.Text;
                }

                if (!string.IsNullOrEmpty(cest.Text))
                {
                    _modelItem.Cest = cest.Text;
                }

                if (!string.IsNullOrEmpty(ncm.Text))
                {
                    _modelItem.Ncm = ncm.Text;
                }

                if (!string.IsNullOrEmpty(aliq_federal.Text))
                {
                    _modelItem.AliqFederal = Validation.ConvertToDouble(aliq_federal.Text);
                }

                if (!string.IsNullOrEmpty(aliq_estadual.Text))
                {
                    _modelItem.AliqEstadual = Validation.ConvertToDouble(aliq_estadual.Text);
                }

                if (!string.IsNullOrEmpty(aliq_municipal.Text))
                {
                    _modelItem.AliqMunicipal = Validation.ConvertToDouble(aliq_municipal.Text);
                }

                if (!string.IsNullOrEmpty(txtLimiteDesconto.Text))
                {
                    _modelItem.Limite_Desconto = Validation.ConvertToDouble(txtLimiteDesconto.Text);
                }

                _modelItem.Categoriaid = Validation.ConvertToInt32(Categorias.SelectedValue);
                _modelItem.Fornecedor  = Validation.ConvertToInt32(Fornecedor.SelectedValue);

                if (ImpostoNFE.SelectedValue != null)
                {
                    _modelItem.Impostoid = (int)ImpostoNFE.SelectedValue;
                }
                else
                {
                    _modelItem.Impostoid = 0;
                }

                if (ImpostoCFE.SelectedValue != null)
                {
                    _modelItem.Impostoidcfe = (int)ImpostoCFE.SelectedValue;
                }
                else
                {
                    _modelItem.Impostoidcfe = 0;
                }

                if (Origens.SelectedValue != null)
                {
                    _modelItem.Origem = Origens.SelectedValue.ToString();
                }

                _modelItem.Save(_modelItem, false);
            }

            ListProducts = null;
            Close();
        }