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; }
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); }