internal static void SaveNoteSize(PNote note, Size size, System.Drawing.Size editSize)
 {
     try
     {
         note.NoteSize = size;
         note.EditSize = editSize;
         if (note.FromDB)
         {
             var sc = new SizeConverter();
             var scd = new System.Drawing.SizeConverter();
             var sb = new StringBuilder();
             sb.Append("UPDATE NOTES SET SIZE = '");
             sb.Append(sc.ConvertToString(null, PNStatic.CultureInvariant, note.NoteSize));
             sb.Append("', EDIT_SIZE = '");
             sb.Append(scd.ConvertToString(null, PNStatic.CultureInvariant, note.EditSize));
             sb.Append("' WHERE ID = '");
             sb.Append(note.ID);
             sb.Append("'");
             using (var oData = new SQLiteDataObject(PNData.ConnectionString))
             {
                 oData.Execute(sb.ToString());
             }
         }
     }
     catch (Exception ex)
     {
         PNStatic.LogException(ex);
     }
 }
        internal static bool SaveNewNote(PNote note)
        {
            try
            {
                var sb = new StringBuilder();
                note.DateSaved = DateTime.Now;

                sb.Append("INSERT INTO NOTES (ID, NAME, GROUP_ID, PREV_GROUP_ID, OPACITY, VISIBLE, FAVORITE, PROTECTED, COMPLETED, PRIORITY, PASSWORD_STRING, PINNED, TOPMOST, ROLLED, DOCK_STATUS, DOCK_ORDER, SEND_RECEIVE_STATUS, DATE_CREATED, DATE_SAVED, DATE_SENT, DATE_RECEIVED, DATE_DELETED, SIZE, LOCATION, EDIT_SIZE, REL_X, REL_Y, SENT_TO, RECEIVED_FROM, PIN_CLASS, PIN_TEXT, SCRAMBLED, RECEIVED_IP) VALUES('");
                sb.Append(note.ID);
                sb.Append("', '");
                sb.Append(note.Name.Replace("'", "''"));
                sb.Append("', ");
                sb.Append(note.GroupID);
                sb.Append(", ");
                sb.Append(note.GroupID);   //as prev png
                sb.Append(", ");
                sb.Append(note.Opacity.ToString(PNStatic.CultureInvariant));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.Visible));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.Favorite));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.Protected));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.Completed));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.Priority));
                sb.Append(", '");
                sb.Append(note.PasswordString.Replace("'", "''"));
                sb.Append("', ");
                sb.Append(Convert.ToInt32(note.Pinned));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.Topmost));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.Rolled));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.DockStatus));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.DockOrder));
                sb.Append(", ");
                sb.Append(Convert.ToInt32(note.SentReceived));
                sb.Append(", '");
                sb.Append(note.DateCreated.ToString(PNStrings.DATE_TIME_FORMAT, PNStatic.CultureInvariant).Replace("'", "''"));
                sb.Append("', '");
                sb.Append(note.DateSaved.ToString(PNStrings.DATE_TIME_FORMAT, PNStatic.CultureInvariant).Replace("'", "''"));
                sb.Append("', '");
                sb.Append(note.DateSent.ToString(PNStrings.DATE_TIME_FORMAT, PNStatic.CultureInvariant).Replace("'", "''"));
                sb.Append("', '");
                sb.Append(note.DateReceived.ToString(PNStrings.DATE_TIME_FORMAT, PNStatic.CultureInvariant).Replace("'", "''"));
                sb.Append("', '");
                sb.Append(note.DateDeleted.ToString(PNStrings.DATE_TIME_FORMAT, PNStatic.CultureInvariant).Replace("'", "''"));
                sb.Append("', '");
                var sc = new SizeConverter();
                sb.Append(sc.ConvertToString(null, PNStatic.CultureInvariant, note.NoteSize));
                sb.Append("', '");
                var pc = new PointConverter();
                sb.Append(pc.ConvertToString(null, PNStatic.CultureInvariant, note.NoteLocation));
                sb.Append("', '");
                var scd = new System.Drawing.SizeConverter();
                sb.Append(scd.ConvertToString(null, PNStatic.CultureInvariant, note.EditSize));
                sb.Append("', ");
                var factors = getRelationalFactors(note);
                sb.Append(factors[0].ToString(PNStatic.CultureInvariant));
                sb.Append(", ");
                sb.Append(factors[1].ToString(PNStatic.CultureInvariant));
                sb.Append(", '");
                sb.Append(note.SentTo.Replace("'", "''"));
                sb.Append("', '");
                sb.Append(note.ReceivedFrom.Replace("'", "''"));
                sb.Append("', '");
                sb.Append(note.PinClass);
                sb.Append("', '");
                sb.Append(note.PinText);
                sb.Append("', ");
                sb.Append(Convert.ToInt32(note.Scrambled));
                sb.Append(", '");
                sb.Append(note.ReceivedIp);
                sb.Append("'");
                sb.Append(")");
                using (var oData = new SQLiteDataObject(PNData.ConnectionString))
                {
                    oData.Execute(sb.ToString());
                }
                note.FromDB = true;
                if (note.Skinless != null)
                {
                    SaveNoteSkinless(note);
                }
                return true;
            }
            catch (Exception ex)
            {
                PNStatic.LogException(ex);
                return false;
            }
        }
Beispiel #3
0
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            var str = value as string;
            if (str != null)
            {
                var note = new PNote();
                var values = str.Split(DEL_NOTE);
                if (values.Length == Enum.GetValues(typeof(Fields)).Length)
                {
                    string[] arr;
                    var dtc = new DateTimeConverter();
                    var szc = new SizeConverter();
                    var scd = new System.Drawing.SizeConverter();
                    var ptc = new PointConverter();
                    var scv = new ScheduleConverter();
                    var skc = new SkinlessConverter();

                    note.Changed = Convert.ToBoolean(values[(int)Fields.Changed]);
                    note.Completed = Convert.ToBoolean(values[(int)Fields.Completed]);
                    note.CustomOpacity = Convert.ToBoolean(values[(int)Fields.CustomOpacity]);
                    var dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateCreated]);
                    if (dateFromString != null)
                        note.DateCreated = (DateTime)dateFromString;
                    dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateDeleted]);
                    if (dateFromString != null)
                        note.DateDeleted = (DateTime)dateFromString;
                    dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateReceived]);
                    if (dateFromString != null)
                        note.DateReceived = (DateTime)dateFromString;
                    dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateSaved]);
                    if (dateFromString != null)
                        note.DateSaved = (DateTime)dateFromString;
                    dateFromString = dtc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.DateSent]);
                    if (dateFromString != null)
                        note.DateSent = (DateTime)dateFromString;
                    note.DockStatus = (DockStatus)Convert.ToInt32(values[(int)Fields.DockStatus]);
                    var sizeFromString = scd.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.EditSize]);
                    if (sizeFromString != null)
                        note.EditSize = (Size)sizeFromString;
                    note.Favorite = Convert.ToBoolean(values[(int)Fields.Favorite]);
                    note.FromDB = Convert.ToBoolean(values[(int)Fields.FromDB]);
                    note.GroupID = Convert.ToInt32(values[(int)Fields.GroupID]);
                    note.ID = values[(int)Fields.ID];
                    var temp = values[(int)Fields.LinkedNotes];
                    if (temp != "")
                    {
                        arr = temp.Split(DEL_INNER);
                        foreach (var s in arr)
                        {
                            note.LinkedNotes.Add(s);
                        }
                    }
                    note.Name = values[(int)Fields.Name];
                    var convertFromString = ptc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.NoteLocation]);
                    if (convertFromString != null)
                        note.NoteLocation = (Point)convertFromString;
                    var fromString = szc.ConvertFromString(null, PNStatic.CultureInvariant, values[(int)Fields.NoteSize]);
                    if (fromString != null)
                        note.NoteSize = (System.Windows.Size)fromString;
                    note.Opacity = Convert.ToDouble(values[(int)Fields.Opacity], PNStatic.CultureInvariant);
                    note.PasswordString = values[(int)Fields.PasswordString];
                    note.Pinned = Convert.ToBoolean(values[(int)Fields.Pinned]);
                    note.PrevGroupID = Convert.ToInt32(values[(int)Fields.PrevGroupID]);
                    note.Priority = Convert.ToBoolean(values[(int)Fields.Priority]);
                    note.Protected = Convert.ToBoolean(values[(int)Fields.Protected]);
                    note.ReceivedFrom = values[(int)Fields.ReceivedFrom];
                    note.Rolled = Convert.ToBoolean(values[(int)Fields.Rolled]);
                    note.Schedule = (PNNoteSchedule)scv.ConvertFromString(values[(int)Fields.Schedule]);
                    note.SentReceived = (SendReceiveStatus)Convert.ToInt32(values[(int)Fields.SentReceived]);
                    note.SentTo = values[(int)Fields.SentTo];
                    temp = values[(int)Fields.SkinName];
                    if (temp != PNSkinDetails.NO_SKIN && temp != "")
                    {
                        // TODO - get skin properties
                    }
                    note.Skinless = (PNSkinlessDetails)skc.ConvertFromString(values[(int)Fields.Skinless]);
                    temp = values[(int)Fields.Tags];
                    if (temp != "")
                    {
                        arr = temp.Split(DEL_INNER);
                        foreach (var s in arr)
                        {
                            note.Tags.Add(s);
                        }
                    }
                    note.Topmost = Convert.ToBoolean(values[(int)Fields.Topmost]);
                    note.Visible = Convert.ToBoolean(values[(int)Fields.Visible]);
                    note.XFactor = Convert.ToDouble(values[(int)Fields.XFactor], PNStatic.CultureInvariant);
                    note.YFactor = Convert.ToDouble(values[(int)Fields.YFactor], PNStatic.CultureInvariant);
                    note.PinClass = values[(int)Fields.PinClass];
                    note.PinText = values[(int)Fields.PinText];
                }
                return note;
            }
            return base.ConvertFrom(context, culture, value);
        }
        internal static bool LoadNoteProperties(PNote note, DataRow r)
        {
            try
            {
                var sc = new SizeConverter();
                var scd = new System.Drawing.SizeConverter();
                var pc = new PointConverter();

                note.FromDB = true;
                note.ID = (string)r["ID"];
                note.Name = (string)r["NAME"];
                note.GroupID = (int)r["GROUP_ID"];
                note.PrevGroupID = (int)r["PREV_GROUP_ID"];
                note.Opacity = (double)r["OPACITY"];
                note.Visible = (bool)r["VISIBLE"];
                note.Favorite = (bool)r["FAVORITE"];
                note.Protected = (bool)r["PROTECTED"];
                note.Completed = (bool)r["COMPLETED"];
                note.Priority = (bool)r["PRIORITY"];
                note.PasswordString = (string)r["PASSWORD_STRING"];
                note.Pinned = (bool)r["PINNED"];
                note.Topmost = (bool)r["TOPMOST"];
                note.Rolled = (bool)r["ROLLED"];
                note.DockStatus = (DockStatus)r["DOCK_STATUS"];
                note.DockOrder = (int)r["DOCK_ORDER"];
                note.SentReceived = (SendReceiveStatus)r["SEND_RECEIVE_STATUS"];
                note.DateCreated = DateTime.Parse((string)r["DATE_CREATED"], PNStatic.CultureInvariant);
                note.DateSaved = DateTime.Parse((string)r["DATE_SAVED"], PNStatic.CultureInvariant);
                note.DateSent = DateTime.Parse((string)r["DATE_SENT"], PNStatic.CultureInvariant);
                note.DateReceived = DateTime.Parse((string)r["DATE_RECEIVED"], PNStatic.CultureInvariant);
                note.DateDeleted = DateTime.Parse((string)r["DATE_DELETED"], PNStatic.CultureInvariant);
                var convertFromString = sc.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["SIZE"]);
                if (convertFromString != null)
                    note.NoteSize = (Size)convertFromString;
                convertFromString = pc.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["LOCATION"]);
                if (convertFromString != null)
                    note.NoteLocation = (Point)convertFromString;
                convertFromString = scd.ConvertFromString(null, PNStatic.CultureInvariant, (string)r["EDIT_SIZE"]);
                if (convertFromString != null)
                    note.EditSize = (System.Drawing.Size)convertFromString;
                note.XFactor = (double)r["REL_X"];
                note.YFactor = (double)r["REL_Y"];
                note.SentTo = (string)r["SENT_TO"];
                note.ReceivedFrom = (string)r["RECEIVED_FROM"];
                note.ReceivedIp = !PNData.IsDBNull(r["RECEIVED_IP"]) ? (string) r["RECEIVED_IP"] : "";
                note.PinClass = (string)r["PIN_CLASS"];
                note.PinText = (string)r["PIN_TEXT"];
                note.Scrambled = !PNData.IsDBNull(r["SCRAMBLED"]) && (bool)r["SCRAMBLED"];
                note.Thumbnail = !PNData.IsDBNull(r["THUMBNAIL"]) && (bool)r["THUMBNAIL"];

                return loadNoteSchedule(note);
            }
            catch (Exception ex)
            {
                PNStatic.LogException(ex);
                return false;
            }
        }
Beispiel #5
0
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            if (destinationType != typeof (string)) return base.ConvertTo(context, culture, value, destinationType);
            var note = value as PNote;
            if (note == null) return "";
            var bt = new StringBuilder();
            var dtc = new DateTimeConverter();
            var szc = new SizeConverter();
            var scd = new System.Drawing.SizeConverter();
            var ptc = new PointConverter();
            var scv = new ScheduleConverter();
            var skc = new SkinlessConverter();
            var sb = new StringBuilder();

            sb.Append(note.Changed);
            sb.Append(DEL_NOTE);
            sb.Append(note.Completed);
            sb.Append(DEL_NOTE);
            sb.Append(note.CustomOpacity);
            sb.Append(DEL_NOTE);
            sb.Append(dtc.ConvertToString(null, PNStatic.CultureInvariant, note.DateCreated));
            sb.Append(DEL_NOTE);
            sb.Append(dtc.ConvertToString(null, PNStatic.CultureInvariant, note.DateDeleted));
            sb.Append(DEL_NOTE);
            sb.Append(dtc.ConvertToString(null, PNStatic.CultureInvariant, note.DateReceived));
            sb.Append(DEL_NOTE);
            sb.Append(dtc.ConvertToString(null, PNStatic.CultureInvariant, note.DateSaved));
            sb.Append(DEL_NOTE);
            sb.Append(dtc.ConvertToString(null, PNStatic.CultureInvariant, note.DateSent));
            sb.Append(DEL_NOTE);
            sb.Append((int)note.DockStatus);
            sb.Append(DEL_NOTE);
            sb.Append(scd.ConvertToString(null, PNStatic.CultureInvariant, note.EditSize));
            sb.Append(DEL_NOTE);
            sb.Append(note.Favorite);
            sb.Append(DEL_NOTE);
            sb.Append(note.FromDB);
            sb.Append(DEL_NOTE);
            sb.Append(note.GroupID);
            sb.Append(DEL_NOTE);
            sb.Append(note.ID);
            sb.Append(DEL_NOTE);
            foreach (var s in note.LinkedNotes)
            {
                bt.Append(s);
                bt.Append(DEL_INNER);
            }
            if (bt.Length > 0)
                bt.Length -= 1;
            sb.Append(bt);
            sb.Append(DEL_NOTE);
            sb.Append(note.Name);
            sb.Append(DEL_NOTE);
            sb.Append(ptc.ConvertToString(null, PNStatic.CultureInvariant, note.NoteLocation));
            sb.Append(DEL_NOTE);
            sb.Append(szc.ConvertToString(null, PNStatic.CultureInvariant, note.NoteSize));
            sb.Append(DEL_NOTE);
            sb.Append(note.Opacity.ToString(PNStatic.CultureInvariant));
            sb.Append(DEL_NOTE);
            sb.Append(note.PasswordString);
            sb.Append(DEL_NOTE);
            sb.Append(note.Pinned);
            sb.Append(DEL_NOTE);
            sb.Append(note.PrevGroupID);
            sb.Append(DEL_NOTE);
            sb.Append(note.Priority);
            sb.Append(DEL_NOTE);
            sb.Append(note.Protected);
            sb.Append(DEL_NOTE);
            sb.Append(note.ReceivedFrom);
            sb.Append(DEL_NOTE);
            sb.Append(note.Rolled);
            sb.Append(DEL_NOTE);
            sb.Append(scv.ConvertToString(note.Schedule));
            sb.Append(DEL_NOTE);
            sb.Append((int)note.SentReceived);
            sb.Append(DEL_NOTE);
            sb.Append(note.SentTo);
            sb.Append(DEL_NOTE);
            sb.Append(note.Skin != null ? note.Skin.SkinName : "");
            sb.Append(DEL_NOTE);
            sb.Append(note.Skinless != null ? skc.ConvertToString(note.Skinless) : "");
            sb.Append(DEL_NOTE);
            bt = new StringBuilder();
            foreach (var s in note.Tags)
            {
                bt.Append(s);
                bt.Append(DEL_INNER);
            }
            if (bt.Length > 0)
                bt.Length -= 1;
            sb.Append(bt);
            sb.Append(DEL_NOTE);
            sb.Append(note.Topmost);
            sb.Append(DEL_NOTE);
            sb.Append(note.Visible);
            sb.Append(DEL_NOTE);
            sb.Append(note.XFactor.ToString(PNStatic.CultureInvariant));
            sb.Append(DEL_NOTE);
            sb.Append(note.YFactor.ToString(PNStatic.CultureInvariant));
            sb.Append(DEL_NOTE);
            sb.Append(note.PinClass);
            sb.Append(DEL_NOTE);
            sb.Append(note.PinText);
            return sb.ToString();
        }