Пример #1
0
        private void Handler(ContentSaveResultPacket contentSaveResultPacket)
        {
            // Do something based on the result
            if (contentSaveResultPacket.RequestResult == RequestResult.Failed)
                ShowMessageBox("An unexpected error occured while saving. Please try again. (The server rejected the request.)", "Server Response");

            // Fetch a new, clean list
            RequestContentList();

            Enabled = true;
        }
 public static new Packet FromNetBuffer(NetIncomingMessage incomingMessage)
 {
     var type = (RequestResult)incomingMessage.ReadByte();
     var packet = new ContentSaveResultPacket(type);
     return packet;
 }
Пример #3
0
        private void Handler(ContentSaveRequestPacket contentSaveRequestPacket)
        {
            var result = RequestResult.Succesful;

            var locked = !_contentLockManager.HasLock(contentSaveRequestPacket.Sender, contentSaveRequestPacket.ContentObject.Id,
                                                contentSaveRequestPacket.ContentType);
            if (!locked)
            {
                try
                {

                    // Create our context and use it
                    using (var context = new ServerContext())
                    {
                        switch (contentSaveRequestPacket.ContentType)
                        {
                            case ContentType.Item:
                                var item =
                                    context.ItemTemplates.Attach(contentSaveRequestPacket.ContentObject as ItemTemplate);
                                context.Entry(item).State = EntityState.Modified;
                                context.SaveChanges();
                                break;
                            case ContentType.Skill:
                                var skill =
                                    context.SkillTemplates.Attach(
                                        contentSaveRequestPacket.ContentObject as SkillTemplate);
                                context.Entry(skill).State = EntityState.Modified;
                                context.SaveChanges();
                                break;
                            case ContentType.Map:
                                var map = context.MapTemplates.Attach(contentSaveRequestPacket.ContentObject as MapTemplate);
                                context.Entry(map).State = EntityState.Modified;
                                context.SaveChanges();
                                break;

                            default:
                                result = RequestResult.Failed;
                                return;
                        }
                    }

                }
                catch (Exception exception)
                {
                    // Log the error and eat it
                    Logger.Instance.Log(Level.Error,
                                        "The content of type " + contentSaveRequestPacket.ContentType +
                                        " failed to save: " + exception);
                    result = RequestResult.Failed;
                }
            }
            else
            {
                // If it's locked, it's considered a failure
                result = RequestResult.Failed;
            }

            // Send the result either way back to the client
            var packet = new ContentSaveResultPacket(result);
            ClientNetworkManager.Instance.SendPacket(packet, contentSaveRequestPacket.Sender);
        }