private void OnEndOfDayExecute(string obj)
 {
     _automationService.NotifyEvent(RuleEventNames.BeforeWorkPeriodEnds, new { WorkPeriod = _applicationState.CurrentWorkPeriod });
     _workPeriodService.StopWorkPeriod(EndDescription);
     Refresh();
     _applicationState.CurrentWorkPeriod.PublishEvent(EventTopicNames.WorkPeriodStatusChanged);
     _automationService.NotifyEvent(RuleEventNames.WorkPeriodEnds, new { WorkPeriod = _applicationState.CurrentWorkPeriod });
     InteractionService.UserIntraction.GiveFeedback(Resources.WorkPeriodEndsMessage);
     EventServiceFactory.EventService.PublishEvent(EventTopicNames.ActivateNavigation);
 }
        private void RestartWorkperiod(IWorkspace workspace)
        {
            WorkPeriodService.StopWorkPeriod("");
            Thread.Sleep(1);
            var pc = InventoryService.GetCurrentPeriodicConsumption();

            InventoryService.SavePeriodicConsumption(pc);
            foreach (var warehouseConsumption in pc.WarehouseConsumptions)
            {
                warehouseConsumption.PeriodicConsumptionId = pc.Id;
                workspace.Add(warehouseConsumption);
                warehouseConsumption.PeriodicConsumptionItems.ToList().ForEach(x =>
                {
                    x.WarehouseConsumptionId = warehouseConsumption.Id;
                    workspace.Add(x);
                });
            }

            WorkPeriodService.StartWorkPeriod("");
        }