public BasicResponse UpdateStatus(Call call) { var retCall = _context.Calls.FirstOrDefault(c => c.Id == call.Id); var previousCallTimeline = _context.CallTimelines.OrderByDescending(c => c.DateCreated).FirstOrDefault(c => c.CallId == call.Id); // new call timeline var callTimeline = new CallTimeline { CallId = call.Id, Status = call.Status, EngineerLocation = call.EngineerLocation, CallOrderNumber = call.CallOrderNumber, DateCreated = DateTime.Now }; _context.CallTimelines.Add(callTimeline); // previous call timeline previousCallTimeline.DateChanged = DateTime.Now; _context.CallTimelines.Update(previousCallTimeline); // update call if (call.IsCompleted) { retCall.IsCompleted = true; retCall.DateCompleted = call.DateCompleted; } retCall.Status = call.Status; _context.Calls.Update(retCall); // save changes _context.SaveChanges(); return(BasicResponse.SuccessResult("Call status updated successfully")); }
public Call CreateTimeline(Call call) { var retCall = GetByCON(call.CallOrderNumber); var callTimeline = new CallTimeline { CallId = retCall.Id, Status = retCall.Status, EngineerLocation = retCall.EngineerLocation, CallOrderNumber = retCall.CallOrderNumber, DateCreated = DateTime.Now }; _context.CallTimelines.Add(callTimeline); _context.SaveChanges(); return(retCall); }