public void CompareObjects(Ticket ticket1, Ticket ticket2, string UserId) { var comparer = new Comparer(); IEnumerable <Difference> differences; comparer.AddComparerOverride <ICollection <TicketComment> >(DoNotCompareValueComparer.Instance); comparer.AddComparerOverride <ICollection <TicketAttachement> >(DoNotCompareValueComparer.Instance); comparer.AddComparerOverride <ICollection <TicketHistorie> >(DoNotCompareValueComparer.Instance); var isEqual = comparer.Compare(ticket1, ticket2, out differences); foreach (var diff in differences) { TicketHistorie historie = new TicketHistorie() { UserId = UserId, TicketId = ticket1.Id, Property = diff.MemberPath.ToString(), OldValue = diff.Value1.ToString(), NewValue = diff.Value2.ToString(), }; ticket2.TicketHistories.Add(historie); db.TicketHistories.Add(historie); } }
public bool CreateTicket(string title, string ownerId, int projectId, string description, int ticketTypeId, int ticketPrioritiesId, int ticketStatusId) { Ticket ticket = new Ticket() { Title = title, Created = DateTime.Now, OwnerId = ownerId, ProjectId = projectId, Description = description, TicketTypeId = ticketTypeId, TicketPrioritieId = ticketPrioritiesId, TicketStatusId = ticketStatusId }; TicketHistorie history = new TicketHistorie() { UserId = ownerId, TicketId = ticket.Id, Property = "Initialized Ticket", OldValue = "-", NewValue = "-" }; if (!db.Tickets.Any(t => t.Title == ticket.Title)) { ticket.TicketHistories.Add(history); db.Tickets.Add(ticket); db.TicketHistories.Add(history); db.SaveChanges(); return(true); } else { return(false); } }