В OnAuthorization трассировку добавить пробовали?
А ещё хорошо бы проверить локально под полным IIS (не Express), если проблема повторяется, то локально можно и отладчиком посмотреть.
Павел Соколов, опять новый термин — «клиент» ;) не очень понятно, о чем это. почему я предложил шаблон Плагин — потому что в этом случае главное приложение не знает ничего о плагине и не имеет от плагина зависимости, а плагин — имеет обычно одну связь (интерфейс, или базовый класс). Таким образом можно разделить проекты на разные солюшены/команды.
Павел Соколов, приведенное выше описание напомнило классический шаблон проектирования Плагин — если модулей будет много, может возникнуть желание иметь возможность подключать модули без пересборки основного приложения.
Да, наверное, так. На счёт причин отказа —тут вопрос к будущим пользователям/заказчикам. Возможно, они ещё захотят как-то ревизировать кухню и понимать, на каком этапе приготовления произошел отказ и был ли фактический расход продуктов.
Кстати, посетила мысль — при готовке на кухне одно блюдо, разбитое на отдельные строки, надо будет снова склеивать — готовка, скорее всего, будет происходить сразу на все N тарелок.
несколько человек за одним столом в рамках одного заказа оплачивают только свои позиции
Если вы хотите формировать раздельные счета, то тут могут быть раздельные заказы, чтобы при вводе заказа сразу указывать, где чье блюдо и по запросу счета печатать сразу несколько. Ключевой вопрос — как вы будете принимать оплату. Если у каждого отдельно, то по закону каждому нужно выдать чек ККМ. А в нём должны быть указаны позиции с ценами. Тогда будут раздельные строки и, возможно, сущность «группа заказов». Но тут возможна путаница — официант повесит блюдо не на того человека. Или придется после выполнения заказа официанту построчно заказ разделять. Тут к эксперту по предметной области вопрос, как лучше. См. чуть ниже я про ТЗ пишу.
Но если оплата будет одна, можно дать изначально клиентам планшет, в котором можно делать заказ, а потом выбрать строки и посчитать "свою" сумму, чтобы перечислить тому, кто оплачивал.
Про ТЗ ;)
В общем, моя рекомендация — задокументировать все бизнес-процессы с возможными вариантами исключениями. И все печатные формы. Тогда можно будет провести встречную верификацию — по каждой сущности и каждому полю увидеть, в каком процессе они создаются и в каком отчете выводятся. Если не выводятся, эти поля можно удалить.
Вот что я обычно пишу в ТЗ:
Список сущностей и их свойств (станут таблицами и колонками)
Потоки данных — какие процессы создают, изменяют и читают сущности
Бизнес процесссы. Подпункты: цели, триггер (что стартует процесс), входы и выходы (сущности), основные шаги (штатный процесс), исключения (на каком шаге стартует альтернативный процесс и его шаги, прочие параметры (например, время отклика, разные ограничения и т.п.)
При описании бизнес-процессов обязательно указывать актора (система/официант/пользователь/клиент и т.п.). Фразы типа "загружается меню" запрещены ("приложение отображает на экране меню из внутреннего кэша").
В сложных местах (вроде этого вопроса выше про то, как разделять один заказ на несколько людей) я обычно пишу что-то явно провокационное, чтобы внимание заказчика остановилось, и он начал возражать. В этот момент он начнет выдавать детально свое видение.
oleshkin, А что за требования у Вас к безопасности? Тысячи клиентов с кучей персональных данных высокой категории (медицинские диагнозы, половая ориентация и данные о службе в армии)? Политика безопасности должна начинаться с модели угроз.
Ну и бюджеты очень сильно могут зависеть от этого. Например, простенький VPS на линуксе (он умеет в .Net) можно взять рублей за 300 в месяц (можно на хабре найти баннеры, не буду тут публиковать). А можно разместиться на облаках Яндекса или VK, которые сертифицированы для размещения ПК любой категории.
А вопрос с AWS/Azure в контексте "безопасности" и "учёт клиентов" лучше публично не задавать — у нас закон есть, что персональные данные нельзя хранить за границей. У Amazon и MS нет же площадок в России, если я не ошибаюсь...
Ярослава Цветикова, я правильно понял, что раньше у Вас в заглавной странице (index.html) подключался внешний скрипт, который в себе содержал в каком-то виде "StatusBar.hide();" и всё было хорошо? А сейчас вместо локального скрипта есть ссылка на внешний скрипт, он корректно грузится, но у Вас нет возможности туда вставить "StatusBar.hide();" и вопрос стоит в том, куда вставить этот злополучный "StatusBar.hide();"?
Исходник надо смотреть. Тут по виду кнопки одинакового размера. Учитывая, что тексты разные, то и отступы не могут быть при этом одинаковыми. Тут уж либо отступы, либо ширина кнопок.
А ещё хорошо бы проверить локально под полным IIS (не Express), если проблема повторяется, то локально можно и отладчиком посмотреть.