Beispiel #1
0
        public void Read(out ILoanSettings loan, ILoanStorageMetadata loanStorageMetadata)
        {
            if (null == FileList || 0 == FileList.Count)
            {
                throw new ApplicationException("FileList not loaded");
            }

            var file = FileList.FirstOrDefault(t => loanStorageMetadata.Id == t.Id);

            if (null == file)
            {
                throw new ArgumentOutOfRangeException(nameof(loanStorageMetadata), String.Format("File with Id: {0} not found", loanStorageMetadata.Id));
            }

            var fullPath = Path.Combine(Repository, file.Name + ".xml");

            var fi = new FileInfo(fullPath);
            var fs = fi.OpenRead();

            using (var st = new StreamReader(fs))
            {
                var t1 = st.ReadToEnd();

                LoanSettings t2;

                if (XmlUtils.TryParse(t1, out t2))
                {
                    loan = t2;
                    return;
                }
            }

            throw new ArgumentException("Unable to read Loan");
        }
Beispiel #2
0
        public void Create(out ILoanStorageMetadata loanStorageMetadata, ILoanStorage loan)
        {
            var filename = loan.LoanStorageMetadata.Name + ".xml";
            var fullPath = System.IO.Path.Combine(Repository, filename);

            Console.WriteLine("Create: '{0}'   ", fullPath);
            var fi = new FileInfo(fullPath);

            if (fi.Exists)
            {
                throw new ArgumentException(String.Format("File '{0}' exists", fi.FullName));
            }

            var fs = fi.OpenWrite();

            using (var sw = new StreamWriter(fs, new UTF8Encoding(false)))
            {
                sw.WriteLine(loan.LoanSettings.SerializeToXmlUtf8());
            }

            this.LoadFileList();
            loanStorageMetadata = FileList.First(t => t.Name.Equals(loan.LoanStorageMetadata.Name));
        }