Пример #1
0
        private void DeleteChangeHistory(long contextid, ChangeHistoryType type)
        {
            var items = db.changeHistoryItems.Where(x => x.changeID == contextid);

            db.changeHistoryItems.DeleteAllOnSubmit(items);
            var entry = db.changeHistories.Where(x => x.contextID == contextid && x.historyType == type.ToString()).SingleOrDefault();

            if (entry == null)
            {
                return;
            }
            db.changeHistories.DeleteOnSubmit(entry);
        }
Пример #2
0
        public static string ToDocumentType(this ChangeHistoryType type)
        {
            switch (type)
            {
            case ChangeHistoryType.PRODUCT:
                return("Product");

            case ChangeHistoryType.CONTACT:
                return("Contact");

            case ChangeHistoryType.INVOICE:
                return("Invoice");

            case ChangeHistoryType.ORDERS:
                return("Purchase Order");

            default:
                return("");
            }
        }
Пример #3
0
        public void AddChangeHistory(long changer, long contextID, ChangeHistoryType changeType, Dictionary <string, Pair <object, object> > difference)
        {
            string[] ignoredFields = new[]
            {
                "amountDue",
                "orderTotal",
                "subTotalString",
                "subTotal",
                "orderItems"
            };

            var change =
                db.changeHistories.SingleOrDefault(x => x.contextID == contextID && x.historyType == changeType.ToString());

            if (change == null)
            {
                change = new changeHistory
                {
                    historyType = changeType.ToString(),
                    contextID   = contextID
                };
                db.changeHistories.InsertOnSubmit(change);
                db.SubmitChanges();
            }

            var changelist = new List <changeHistoryItem>();

            if (difference == null)
            {
                // to record creation date
                var changeItem = new changeHistoryItem
                {
                    changer      = changer,
                    changeDate   = DateTime.UtcNow,
                    changedField = changeType.ToString().ToLowerInvariant(),
                    changeID     = change.id
                };
                changelist.Add(changeItem);
            }
            else
            {
                foreach (var row in difference)
                {
                    // ignore these fields
                    if (ignoredFields.Contains(row.Key))
                    {
                        continue;
                    }
                    var fieldname  = row.Key.ToFieldDisplay();
                    var value      = row.Value;
                    var changeItem = new changeHistoryItem
                    {
                        changer      = changer,
                        changeDate   = DateTime.UtcNow,
                        changedField = fieldname,
                        changeID     = change.id,
                        oldValue     = value.First == null ? "":value.First.ToString(),
                        newValue     = value.Second == null ? "":value.Second.ToString()
                    };
                    changelist.Add(changeItem);
                }
            }

            db.changeHistoryItems.InsertAllOnSubmit(changelist);
            db.SubmitChanges();
        }
Пример #4
0
 public IQueryable <changeHistoryItem> GetChangeHistory(ChangeHistoryType type, long contextid, long subdomain)
 {
     return(db.changeHistoryItems.Where(x => x.changeHistory.historyType == type.ToString() && x.changeHistory.contextID == contextid));
 }