Не знаком с vuejs, но, думаю, так, на входе кодируете html и сохраняете в базу. На выходе декодируете html и отображаете. То есть на входе все и должно просиходить.
Я думаю, вы слишком заморачиваетесь. Просто дробите функционал пока не упретесь. А потом уже смотрите, что плучилось и что можно улучшить. А граничные условия можно и в самом лифте обрабатывать.
WhiteNinja: А зачем вам IFooRepository в IUnitOfWork? Но, вообще, вы можете инжектить FooRepository, используя любой DI (ninject, autofac). По второму вопросу, вы можете обойтись без необязательного параметра. Просто сделайте новый метод, к примеру, SaveChanges в сервисе BarService и вызывайте _uof.Commit() там, а в CreateFoo уберите вызов Commit(). Если же надо и там сохранять, то может также создать метод SaveChanges и в этом сервисе.
Сергей: Спасибо за ответ. 3. На сервер отправляется id того чекбокса у которого выставили или убрали галочку. Я вот не понимаю, даже если очередность команд не гарантирована, то RemoveItem все равно не удалит ничего лишнего. Там простая логикая. По пришедшему id ищется сущность в том мэнеджере (который работает с коллекцией в сессии), далее эта сущность подставляется в во внутрениий метод Romove листа. Ну то есть в сессии хранится List. То есть, если я верно понял, то неважно какой поток и выполняет remove, если удаляются, скажем, только один определенный id, то другие сущности в коллекции не должны удалятся. То есть если в коллекции было 5 элементов, и пришел запрос на удаление элемента с id=1, и первый поток выполнил remove(1). В коллекции осталось 4 элемента. Потом опять пришел запрос на удаление id=1 и его выполняет второй поток, то неважно же сколько элементов в коллекции, он либо удалит еще раз по id=1, если в коллекции было 5, либо просто ничего не удалит так как в коллекции уже нет элемента с id=1, если в коллекции было 4 элемента. Поясните этот момент, пожалуйста.
Сергей: Сергей, спасибо за разъяснения про потоки и запросы. То есть, как я понял есть набор потоков и есть очередь запросов. Если текущий запрос занят, а сейчас нужно обработать очередной запрос, то берется другой поток из набора потоков и он обрабатывает этот запрос, так? Есть небольшие уточнения. Метод AddItem добавляет item в коллекцию только в том случае, если такого item нет в коллекции. А метод RemoveItem удаляет только по пришедший item. То есть ничего лишнего эти методы не добавляют и не удаляют. К примеру, если на клиенте я много раз подряд нажму галочку и сниму галочку у одного и того же элемента, то есть, аякс команды будут add/remove/add/remove/add/remove и.т.д (только данные этого элемента отправляются на сервер), то в итоге у меня будет только один элемент в коллекции. Хотя, как я уже сказал, методы AddItem/RemoveItem ничего лишнего не удаляют и не добавляют. Это же не влияет выполняются эти методы в разных потоках или в одном? Или же влияет?
Сергей: На таких статических "менеджерах" написано ядро системы ну и вся бизнес логика. И, походу, начальство не собирается перерабатывать ядро в ближайшее время. По второму вопросу, там просто в классе менеджере реализованы методы AddItem и RemoveItem которые работают с коллекцией, которая хранится в сессии. Больше никакой логики там нет. Объясните, пожалуйста, что вы подразумеваете под параллельной обработкой? По третьему вопросу: Есть доработанная гридвьюха, которая вот таким вот образом глючит). Но в ближайшее время, похожу, ее тоже никто не будет переписывать. Поэтом сейчас задача залатать баги. Я с вами согласен, что лучше это все сделать на клиенте, а потом результирующий набор отправлять на сервер, но тут, как я уже сказал, не все от одного меня зависит).
Владислав Хорошев: Сначала поступите еще проще. Создайте дефолтовый проект MVC. Далее идете в папку Controllers и находите контроллер HomeController.cs. В нем находите экшн метод public ActionResult Index() и вот в нем пишите свою логику. Так как это проект дефолтовый, то он у вас по умолчанию спокойно соберется и запустится. Вам ничего не надо там писать. Как только убедились, что проект запускается, приступайте к написанию логики парсера. Тут надо почитать про регулярки и потренироваться вытаскивать значения между тегами. Искать нужные теги и все такое. Классы сразу не нужно писать. Просто кодом в методе public ActionResult Index() все пишите ставьте брейкпоинт и смотрите какие значения у вас в переменных и как работает ваш код. Читайте stackoverflow на предмет parser/web scrapping/ parse html/webclient parse html
Когда уже логика будет работать, то можете все аккуратно разбросать по классам или еще куда вам там надо).
Привет. Мало что понятно из вашего куска запроса. Вставьте весь запрос и отметьте тот кусок, который вызывает сомнения. Далее, приведите скрин выборки того, что есть сейчас, и опишите детально то, что хотите получить. Так будет проще понять, о чем речь.
Я только не понял, кейс в вашем случае.
Вот юзер зашел куда-то там, и у него + 3 часа зона. Он что смотрит? Магазины у себя в часовом поясе?