public PurchaseInvoiceWrapper[] StatusArrivalRequest(RequestWrapper request) { Contract.Requires(request != null); Log.InfoFormat("Start of StatusArrivalRequest"); Log.DebugFormat("Сущность - «{0}», фильтр - «{1}», значение - «{2}»", request.ENTITY, request.FILTER, request.VALUES); var startAllTime = DateTime.Now; Log.Debug(request.DumpToXML()); decimal?mandantID = null; mandantID = CheckMandant(mandantID, request.MandantCode); if (mandantID == null) { throw new NullReferenceException("MandantCode"); } Log.DebugFormat("Мандант = {0}", request.MandantCode); var listArrival = new List <PurchaseInvoiceWrapper>(); try { using (var mgr = IoC.Instance.Resolve <IBaseManager <IWB> >()) { switch (request.FILTER) { case "NAME": actArrival(mgr, listArrival, request, mandantID); break; case "INDATEPLAN": statusArrival(mgr, listArrival, request, mandantID); break; default: var badFilter = new PurchaseInvoiceWrapper { STATUSCODE_R_NAME = string.Format("Некорректный фильтр - {0}", request.FILTER) }; listArrival.Add(badFilter); break; } } } catch (IntegrationLogicalException iex) { var message = ExceptionHelper.ExceptionToString(iex); Log.Error(message, iex); var ew = new PurchaseInvoiceWrapper { STATUSCODE_R_NAME = message }; listArrival.Add(ew); } catch (Exception ex) { var message = ExceptionHelper.ExceptionToString(ex); Log.Error(message, ex); var ew = new PurchaseInvoiceWrapper { STATUSCODE_R_NAME = "Системная ошибка: " + message }; listArrival.Add(ew); } finally { Log.DebugFormat("Общее время работы {0}", DateTime.Now - startAllTime); Log.InfoFormat("End of StatusArrivalRequest"); } return(listArrival.ToArray()); }