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); }
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(""); } }
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(); }
public IQueryable <changeHistoryItem> GetChangeHistory(ChangeHistoryType type, long contextid, long subdomain) { return(db.changeHistoryItems.Where(x => x.changeHistory.historyType == type.ToString() && x.changeHistory.contextID == contextid)); }