private void UpdateCalculatedDuration() { // TODO do this on the non-filtered list as soon as filtering is implemented int duration = TimeEvents.FilteredFullTimeEventList.Sum(x => x.ArrivalTime + x.WaitTime); ServiceTemplateDataAccess.UpdateServiceCalculatedDuration(duration, ServiceId); }
public void SaveTimeEvents() { foreach (var item in FullTimeEventsList) { if (item.EventType?.Length > 0) { var timeEvent = new TimeEventModel(); timeEvent.Id = item.Id; timeEvent.EventType = item.EventType; timeEvent.ArrivalTime = item.ArrivalTime; timeEvent.WaitTime = item.WaitTime; timeEvent.LocationId = item.LocationId; timeEvent.ServiceTemplateId = item.ServiceTemplateId; timeEvent.Order = item.Order; if (item.Id > 0) { timeEvent.Id = item.Id; TimeEventDataAccess.UpdateTimeEvent(timeEvent); } else { TimeEventDataAccess.InsertTimeEventForServiceTemplate(timeEvent); } } } int duration = FullTimeEventsList.Sum(x => x.ArrivalTime + x.WaitTime); SelectedServiceTemplate.CalculatedDuration = duration; ServiceTemplateDataAccess.UpdateServiceCalculatedDuration(duration, SelectedServiceTemplate.Id); ServiceTemplateUI.ServiceTemplateList.Refresh(); FullTimeEventsList = new BindableCollection <FullTimeEventModel>(FullTimeEventDataAccess.GetAllFullTimeEventsPerServiceTemplate(SelectedServiceTemplate.Id)); Log.Trace($"Time events for service {SelectedServiceTemplate.ServiceTemplateAbbreviation} saved", LogEventType.Event); }