コード例 #1
0
ファイル: MemoInfo.cs プロジェクト: rajeshwarn/MochaNote
        internal static MemoInfoCollection LoadRemovedMemoInfos(SqlServerAccessor accessor)
        {
            var ret = default(MemoInfoCollection);

            try {
                var xml = accessor.LoadTextDataValue("RemovedMemoInfo");
                if (xml != null)
                {
                    var serializer = new DataContractSerializer(typeof(MemoInfoCollection));
                    using (var xmlReader = new StringReader(xml))
                        using (var reader = XmlReader.Create(xmlReader)) {
                            ret = serializer.ReadObject(reader) as MemoInfoCollection;
                        }
                }
            } catch (Exception e) {
                Logger.Warn("RemovedMemoinfos load failed", e);
            }

            if (ret == null)
            {
                ret = new MemoInfoCollection();
            }

            return(ret);
        }
コード例 #2
0
        internal static string GetMemoInfosPassword(MemoInfoCollection memoInfos, string defaultPassword)
        {
            if (memoInfos.Count == 0)
            {
                return(defaultPassword);
            }
            else if (memoInfos.Count == 1)
            {
                return(GetHash(memoInfos[0].MemoId));
            }
            else if (memoInfos.Count == 2)
            {
                return(GetHash(memoInfos[0].MemoId + memoInfos[1].MemoId));
            }
            else
            {
                /// memoInfos.Count >= 3

                var rand = new Random(memoInfos.Count);
                var buf  = new StringBuilder();
                for (int i = 0; i < 3; ++i)
                {
                    var r    = rand.Next(memoInfos.Count);
                    var info = memoInfos[r];
                    buf.Append(info.MemoId);
                }

                return(GetHash(buf.ToString()));
            }
        }
コード例 #3
0
ファイル: MemoInfo.cs プロジェクト: rajeshwarn/MochaNote
        internal static void SaveRemovedMemoInfos(MemoInfoCollection removedMemoInfos, SqlServerAccessor accessor)
        {
            var buf = new StringBuilder();

            using (var writer = XmlWriter.Create(buf)) {
                var serializer = new DataContractSerializer(typeof(MemoInfoCollection));
                serializer.WriteObject(writer, removedMemoInfos);
            }

            var xml = buf.ToString();

            if (accessor.IsTextDataExists("RemovedMemoInfo"))
            {
                accessor.UpdateTextData("RemovedMemoInfo", xml);
            }
            else
            {
                accessor.InsertTextData("RemovedMemoInfo", xml);
            }
        }