public ActionResult Create(EventLogEntryModel model) // public ActionResult Create(FormCollection collection) { try { EventLog log1 = new EventLog(logName); log1.Source = sourceName; EventLogEntryType entryType; if (model.Erreur) { entryType = EventLogEntryType.Error; } else if (model.Avertissement) { entryType = EventLogEntryType.Warning; } else { entryType = EventLogEntryType.Information; } for (int i = 1; i < model.NbToCreate; i++) { log1.WriteEntry(model.Message + " - " + i.ToString(), entryType, 100); } return(RedirectToAction("Index")); } catch { return(View()); } }
// GET: EventLog public ActionResult Index() { EventLog log = new EventLog(logName); log.Source = sourceName; if (log.Entries.Count != 0) { List <RQ_ASPNET_WebApplication_MVC.Models.EventLogEntryModel> model = new List <RQ_ASPNET_WebApplication_MVC.Models.EventLogEntryModel>(); for (int i = log.Entries.Count - 1; i > log.Entries.Count - 100; i--) { EventLogEntryModel entry = new EventLogEntryModel(log.Entries[i]); model.Add(entry); } return(View(model)); } return(View()); }
public async Task <List <EventLogEntryModel> > GetEventLogForOrder(int orderId) { var order = await _dbContext.Orders.GetOrderForEventLog(orderId); if (order == null) { return(new List <EventLogEntryModel>()); } var orderChangeLogEntries = await _dbContext.OrderChangeLogEntries.GetOrderChangeLogEntitesForOrderEventLog(orderId).ToListAsync(); var orderStatusConfirmations = await _dbContext.OrderStatusConfirmation.GetStatusConfirmationsForOrderEventLog(orderId).ToListAsync(); var customerName = order.CustomerOrganisation.Name; var eventLog = new List <EventLogEntryModel> { // Order creation new EventLogEntryModel { Timestamp = order.CreatedAt, EventDetails = order.ReplacingOrder != null ? $"Ersättningsuppdrag skapat (ersätter {order.ReplacingOrder.OrderNumber})" : "Bokningsförfrågan skapad", Actor = order.CreatedByUser.FullName, Organization = customerName, ActorContactInfo = GetContactinfo(order.CreatedByUser), } }; // Add all request logs (including their requisition and complaint logs)' eventLog.AddRange(await GetEventLogForRequestsOnOrder(orderId, customerName, null)); // Order replaced if (order.ReplacedByOrder != null) { eventLog.Add(new EventLogEntryModel { Timestamp = order.ReplacedByOrder.CreatedAt, EventDetails = $"Bokning ersatt av {order.ReplacedByOrder.OrderNumber}", Actor = order.ReplacedByOrder.CreatedByUser.FullName, Organization = customerName, ActorContactInfo = GetContactinfo(order.ReplacedByOrder.CreatedByUser), }); } // Change of contact person int i = 0; var orderContactPersons = orderChangeLogEntries.Where(oc => oc.OrderChangeLogType == OrderChangeLogType.ContactPerson); foreach (OrderChangeLogEntry oc in orderChangeLogEntries.Where(oc => oc.OrderChangeLogType == OrderChangeLogType.ContactPerson)) { //if previous contact is null, a new contact person is added - get the new contact if (oc.OrderContactPersonHistory.PreviousContactPersonId == null) { EventLogEntryModel eventRow = GetEventRowForNewContactPerson(oc, order, orderContactPersons, i + 1); if (eventRow != null) { eventLog.Add(eventRow); } } //if previous contact person is not null, then contact person is changed or just removed else { //add a row for removed person eventLog.Add(new EventLogEntryModel { Timestamp = oc.LoggedAt, EventDetails = $"{oc.OrderContactPersonHistory.PreviousContactPersonUser?.FullName} fråntogs rätt att granska rekvisition", Actor = oc.UpdatedByUser.FullName, Organization = customerName, ActorContactInfo = GetContactinfo(oc.UpdatedByUser), }); //find if removed or changed (if removed we don't add a row else add row for new contact) EventLogEntryModel eventRow = GetEventRowForNewContactPerson(oc, order, orderContactPersons, i + 1); if (eventRow != null) { eventLog.Add(eventRow); } } i++; } if (orderChangeLogEntries.Any(oc => oc.OrderChangeLogType != OrderChangeLogType.ContactPerson)) { foreach (OrderChangeLogEntry oc in orderChangeLogEntries.Where(oc => oc.OrderChangeLogType != OrderChangeLogType.ContactPerson)) { eventLog.Add(new EventLogEntryModel { Timestamp = oc.LoggedAt, EventDetails = oc.OrderChangeLogType.GetDescription() + " ändrade", Actor = oc.UpdatedByUser.FullName, Organization = customerName, ActorContactInfo = GetContactinfo(oc.UpdatedByUser), }); if (oc.OrderChangeConfirmation != null) { eventLog.Add(new EventLogEntryModel { Timestamp = oc.OrderChangeConfirmation.ConfirmedAt, EventDetails = "Bokningsändring bekräftad", Actor = oc.OrderChangeConfirmation.ConfirmedByUser.FullName, Organization = oc.Broker.Name, ActorContactInfo = GetContactinfo(oc.OrderChangeConfirmation.ConfirmedByUser) }); } } eventLog = eventLog.Distinct(new EventLogEntryModel.EventLogEntryComparer()).ToList(); } if (orderStatusConfirmations.Any(os => os.OrderStatus == OrderStatus.NoBrokerAcceptedOrder)) { var c = orderStatusConfirmations.First(os => os.OrderStatus == OrderStatus.NoBrokerAcceptedOrder); eventLog.Add(new EventLogEntryModel { Timestamp = c.ConfirmedAt, EventDetails = $"Bekräftat bokningsförfrågan avslutad", Actor = c.ConfirmedByUser.FullName, Organization = customerName, ActorContactInfo = GetContactinfo(c.ConfirmedByUser), }); } if (order.Status == OrderStatus.ResponseNotAnsweredByCreator) { var req = await _dbContext.Requests.GetLastRequestForOrder(orderId); eventLog.Add(new EventLogEntryModel { Timestamp = req.LatestAnswerTimeForCustomer ?? order.StartAt, EventDetails = "Obesvarad tillsättning, tiden gick ut, bokning avslutad", Actor = "Systemet", }); // Check if confirmed if (orderStatusConfirmations.Any(os => os.OrderStatus == OrderStatus.ResponseNotAnsweredByCreator)) { OrderStatusConfirmation osc = orderStatusConfirmations.First(os => os.OrderStatus == OrderStatus.ResponseNotAnsweredByCreator); eventLog.Add(new EventLogEntryModel { Timestamp = osc.ConfirmedAt, EventDetails = $"Obesvarad tillsättning bekräftad av myndighet", Actor = osc.ConfirmedByUser?.FullName ?? "Systemet", Organization = customerName, ActorContactInfo = GetContactinfo(osc.ConfirmedByUser), }); } } return(eventLog); }