示例#1
0
        public static ClientDialog LoadClientDialog(IReader reader)
        {
            var cd = new ClientDialog();

            cd.Read(reader);

            return(cd);
        }
示例#2
0
        public static void AppendSrvDialog(string filePath, IEnumerable <Message> msgs)
        {
            Assert(msgs != null);

            using (FileLocker.Lock(filePath))
            {
                ClientDialog clDlg  = ReadSrvDialog(filePath);
                var          newDlg = new ClientDialog(clDlg.ClientID, clDlg.ClientStatus, clDlg.Messages.Concat(msgs));

                WriteSrvDialog(filePath, newDlg);
            }
        }
示例#3
0
        public static void AppendSrvDialog(string filePath, Message msg)
        {
            Assert(msg != null);

            using (FileLocker.Lock(filePath))
            {
                ClientDialog clDlg  = ReadSrvDialog(filePath);
                var          newDlg = new ClientDialog(clDlg.ClientID, clDlg.ClientStatus, clDlg.Messages.Add(msg));

                WriteSrvDialog(filePath, newDlg);
            }
        }
示例#4
0
        public static void WriteSrvDialog(string filePath, ClientDialog clDlg)
        {
            Assert(clDlg != null);

            using (FileLocker.Lock(filePath))
                using (FileStream fs = File.Create(filePath))
                {
                    var writer = new RawDataWriter(fs, Encoding.UTF8);

                    writer.Write(SrvDialogSignature);
                    clDlg.Write(writer);
                }
        }
示例#5
0
        public static ClientDialog ReadSrvDialog(string filePath)
        {
            using (FileLocker.Lock(filePath))
                using (FileStream fs = File.OpenRead(filePath))
                {
                    var    reader = new RawDataReader(fs, Encoding.UTF8);
                    byte[] sign   = SrvDialogSignature;

                    foreach (byte b in sign)
                    {
                        if (reader.ReadByte() != b)
                        {
                            throw new CorruptedFileException(filePath);
                        }
                    }

                    return(ClientDialog.LoadClientDialog(reader));
                }
        }