Пример #1
0
        private void DataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Delete)
            {
                var dataGrid = (DataGrid)sender;

                if (dataGrid.SelectedItems.Count > 0)
                {
                    NetObject netObject   = (NetObject)dataGrid.SelectedItems[0];
                    int       recipientId = 0;
                    if (netObject.GetType() == typeof(Project))
                    {
                        recipientId = 12;
                    }
                    else if (netObject.GetType() == typeof(Todo))
                    {
                        recipientId = 10;
                    }
                    else
                    {
                        throw new Exception("Unknown New Type");
                    }

                    DataItemDeleted data = new DataItemDeleted()
                    {
                        PK   = netObject.pId,
                        Type = netObject.GetType().ToString()
                    };

                    tornado14Observer.Send(new Package(SENDERID, recipientId, (int)EventMapping.DataItemDeleted_19, Method.DELETE, XmlSerializationHelper.Serialize(data)));
                }
            }
        }
Пример #2
0
        private void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            NetObject netObject = (NetObject)e.Row.Item;

            if (netObject != null && e.Column.SortMemberPath != null)
            {
                int recipientId = 0;
                if (e.Row.Item.GetType() == typeof(Project))
                {
                    recipientId = 12;
                }
                else if (e.Row.Item.GetType() == typeof(Todo))
                {
                    recipientId = 10;
                }
                else
                {
                    throw new Exception("Unknown New Type");
                }
                DataItemChanged data = new DataItemChanged()
                {
                    PK           = netObject.pId,
                    PropertyName = e.Column.SortMemberPath,
                    Value        = ((TextBox)e.EditingElement).Text,
                    Type         = netObject.GetType().ToString()
                };

                tornado14Observer.Send(new Package(SENDERID, recipientId, (int)EventMapping.DataItemChanged_13, Method.PUT, XmlSerializationHelper.Serialize(data)));
            }
            else
            {
                throw new Exception("Todo or Property Name is Empty.");
            }
        }
Пример #3
0
        private void DataGrid_CurrentCellChanged(object sender, EventArgs e)
        {
            DataGrid  grid = (DataGrid)sender;
            NetObject selectedNetObject = null;

            if (grid.CurrentCell.Item.GetType() == typeof(Project))
            {
                selectedNetObject = selectedProject;
            }
            else if (grid.CurrentCell.Item.GetType() == typeof(Todo))
            {
                selectedNetObject = selectedTodo;
            }
            else
            {
                return;
            }

            if (selectedNetObject == null || selectedNetObject.pId != ((NetObject)grid.CurrentCell.Item).pId)
            {
                NetObject netObject = (NetObject)grid.CurrentCell.Item;
                if (netObject.pId != Guid.Empty)
                {
                    CurrentItemChanged data = new CurrentItemChanged()
                    {
                        PK   = netObject.pId,
                        Type = netObject.GetType().ToString()
                    };

                    tornado14Observer.Send(new Package(SENDERID, 12, (int)EventMapping.CurrentItemChanged_15, Method.PUT, XmlSerializationHelper.Serialize(data)));
                    if (selectedTodo != null)
                    {
                        todoViewSource.View.Refresh();
                        todoViewSource.View.MoveCurrentTo(selectedTodo.pId);
                    }
                }
                selectedNetObject = (NetObject)grid.CurrentCell.Item;
            }
        }
Пример #4
0
        private void DataGrid_InitializingNewItem(object sender, InitializingNewItemEventArgs e)
        {
            if (e.NewItem != null)
            {
                int       recipientId = 0;
                NetObject netObject   = (NetObject)e.NewItem;
                netObject.pId = Guid.NewGuid();

                List <NetObject> objectList = new List <NetObject>();
                if (e.NewItem.GetType() == typeof(Project))
                {
                    objectList  = ProjectList.ToList <NetObject>();
                    recipientId = 12;
                }
                else if (e.NewItem.GetType() == typeof(Todo))
                {
                    objectList = TodoList.ToList <NetObject>();
                    ((Todo)e.NewItem).ProjectPid = selectedProject.pId;
                    recipientId = 10;
                }
                else
                {
                    throw new Exception("Unknown New Type");
                }

                int    maxCount = 0;
                string prefix   = "";

                foreach (NetObject p in objectList)
                {
                    try
                    {
                        string[] idSplit = p.Id.Split('-');
                        int      value   = int.Parse(idSplit[1]);
                        if (maxCount < value)
                        {
                            maxCount = value;
                            if (idSplit[0].Length > 0)
                            {
                                prefix = idSplit[0] + "-";
                            }
                        }
                    }
                    catch (Exception ex) { }
                }
                maxCount++;
                string newId = string.Format("{0}{1}", prefix, maxCount);

                ((NetObject)e.NewItem).Id = newId;
                DataItemAdded data = new DataItemAdded()
                {
                    PK   = netObject.pId,
                    Id   = newId,
                    Type = netObject.GetType().ToString()
                };

                tornado14Observer.Send(new Package(SENDERID, recipientId, (int)EventMapping.DataItemAdded_18, Method.POST, XmlSerializationHelper.Serialize(data)));

                if (e.NewItem.GetType() == typeof(Todo))
                {
                    DataItemChanged dataChanged = new DataItemChanged()
                    {
                        PK           = netObject.pId,
                        PropertyName = "ProjectPid",
                        Type         = typeof(Todo).ToString(),
                        Value        = selectedProject.pId
                    };

                    tornado14Observer.Send(new Package(SENDERID, recipientId, (int)EventMapping.DataItemChanged_13, Method.PUT, XmlSerializationHelper.Serialize(dataChanged)));
                }
            }
        }
Пример #5
0
        public void ThreatData()
        {
            NetObject[] pending = null;

            lock (this.PendingDataLocker)
            {
                pending = this.PendingData.ToArray();
                this.PendingData.Clear();
            }

            Parallel.For(0, pending.Length, i => //for(int i = 0; i < pending.Length; i++)
            {
                NetObject nobj = pending[i];

                if (nobj.GetType() == typeof(NetPing))
                {
                    if (!FirstPingReceived)
                    {
                        FirstPingReceived = true;

                        //send auth on first data received.

                        new NetPlayer(Player.LocalPlayer).Send(Client.Client);
                    }
                }

                else if (nobj is NetChunk nchunk)
                {
                    World.GetOrCreateChunk(nchunk);
                }

                else if (nobj is NetPlayer nplay)
                {
                    Player existingP = Player.Find(nplay.Nickname);

                    if (existingP == null)
                    {
                        PlayerEntity existingE = (PlayerEntity)Entity.Get(EGuid.UniqueFromString(nplay.Nickname));
                        existingP = new Player(nplay.Nickname);

                        if (existingE != null)
                        {
                            existingP.Entity = existingE;
                        }
                        else
                        {
                            existingP.CreateEntity(new WObject(nplay.Nickname));
                        }

                        //existingP.CreateNonLocalElements();
                    }
                }

                else if (nobj is NetEntity nent)
                {
                    Entity ent = nent.Parse();

                    //todo if not netplayer....
                }

                else if (nobj is NetCamera ncam)
                {
                    Player.LocalPlayer.CameraAngles = ncam.Angles;
                }

                pending[i].Delete();
            });
        }