Exemplo n.º 1
0
        private static void ChangeRollInfoToLog(RollInfo r, bool?isChange)
        {
            if (r.IsNull())
            {
                Log.Warn("Лента билетов не определена!");
                return;
            }

            var    sb = new StringBuilder();
            string firstPart;

            if (isChange.HasValue)
            {
                firstPart = isChange.Value ? "Произошла смена ленты билетов" : "Текущая лента билетов";
            }
            else
            {
                firstPart = "Информация о ленте билетов на момент закрытия смены";
            }

            sb.AppendLine(firstPart);
            sb.AppendLine("{0} {1} {2}".F(r.Series, r.NextTicket, r.Color.Color));
            sb.AppendFormat("Состояние: {0}; Осталось билетов: {1};", ApplicationStaticHelper.IsCurrentRollDeactivated ? "Деактивирована" : "Активирована", r.TicketsLeft);
            Log.Debug(sb);
        }
Exemplo n.º 2
0
        private void OnMainCommand()
        {
            IsShowErrorMessage = false;
            try
            {
                switch (Mode)
                {
                case RollInfoViewModelMode.OpenShift:
                    _rollInfo = BaseAPI.activateTicketRoll(FirstTicketSeries, FirstTicketNumber, RollColor.Default);
                    ApplicationStaticHelper.IsCurrentRollDeactivated = false;
                    _shift = BaseAPI.isShiftOpen() ? BaseAPI.getCurrentShift() : BaseAPI.openShift();
                    break;

                case RollInfoViewModelMode.CloseShift:
                    if (!DeactivateRoll())
                    {
                        return;
                    }
                    if (BaseAPI.isShiftOpen())
                    {
                        BaseAPI.closeShift(BaseAPI.getCurrentShift());
                        ApplicationStaticHelper.ShiftCloseDate = DateTime.Now;
                    }

                    if (BaseAPI.isShiftOpen())
                    {
                        ErrorMessage = "Закрыть смену ({0} {1}) не получилось! Режим {2}.".F(BaseAPI.getCurrentShift().CashierName, BaseAPI.getCurrentShift().OpenDate, Mode);
                        Log.Warn(ErrorMessage);
                        IsShowErrorMessage = true;
                        return;
                    }

                    _rollInfo = null;
                    _shift    = null;
                    break;

                case RollInfoViewModelMode.NeedNewRoll:
                    if (!CloseRoll())
                    {
                        return;
                    }
                    _rollInfo = BaseAPI.activateTicketRoll(FirstTicketSeries, FirstTicketNumber, RollColor.Default);
                    ApplicationStaticHelper.IsCurrentRollDeactivated = false;
                    _shift = BaseAPI.getCurrentShift();
                    break;

                case RollInfoViewModelMode.ChangeRoll:
                    if (!DeactivateRoll())
                    {
                        return;
                    }
                    _rollInfo = BaseAPI.activateTicketRoll(FirstTicketSeries, FirstTicketNumber, RollColor.Default);
                    ApplicationStaticHelper.IsCurrentRollDeactivated = false;
                    _shift = BaseAPI.getCurrentShift();
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            catch (Exception e)
            {
                Log.Debug("{0} Вызвало исключение:", Mode);
                Log.Fatal(e);
                //throw;

                ErrorMessage       = "Произошло исключение: {0}".F(e.Message);
                IsShowErrorMessage = true;
                return;
            }

            if (_rollInfo.IsNull() && Mode != RollInfoViewModelMode.CloseShift /*&& Mode != RollInfoViewModelMode.ChangeRollDeactivate*/)
            {
                ErrorMessage = String.Format("Бабина с параметрами {0} {1} не существует! Режим {2}.", FirstTicketSeries, FirstTicketNumber, Mode);
                Log.Warn(ErrorMessage);
                IsShowErrorMessage = true;
                return;
            }

            if (_shift.IsNull() && Mode != RollInfoViewModelMode.CloseShift)
            {
                ErrorMessage = String.Format("Смена не определена!");
                Log.Warn(ErrorMessage);
                IsShowErrorMessage = true;
                return;
            }

            Close();
            Dispose();
        }