public void NuGetPositionListByItem()
        {
            var accId = -1;

            using (var ctx = connectionPersistent)
            {
                try
                {
                    accId = ctx.ACCOUNT.First().ID;
                }
                catch (Exception ex)
                {
                    Logger.ErrorFormat("Тестирование невозможно. В таблице ACCOUNT тестовой БД не найдело записей.", ex);
                    Assert.Fail("Тестирование невозможно. В таблице ACCOUNT файловой БД не найдело записей.");
                }
            }

            var positionList1 = new PositionListModel
            {
                AccountId = accId,
            };

            var positionListResult1 = positionRepository.GetPositionList(positionList1);
            Assert.NotNull(positionListResult1);
            Assert.NotNull(positionListResult1.Positions);

            var positionList2 = new PositionListModel
            {
                AccountId = accId,
                Side = DealType.Buy
            };

            var positionListResult2 = positionRepository.GetPositionList(positionList2);
            Assert.NotNull(positionListResult2);
            Assert.NotNull(positionListResult2.Positions);

            var positionList3 = new PositionListModel
            {
                AccountId = accId,
                Status = PositionState.Closed
            };

            var positionListResul3 = positionRepository.GetPositionList(positionList3);
            Assert.NotNull(positionListResul3);
            Assert.NotNull(positionListResul3.Positions);

            var positionListResul4 = positionRepository.GetPositionList(null);
            Assert.NotNull(positionListResul4);
            Assert.IsNull(positionListResul4.Positions);
        }
        public ActionResult PositionList(PositionListModel positionListModel)
        {
            var accId = positionListModel.AccountId.HasValue ? positionListModel.AccountId.Value.ToString(CultureInfo.InvariantCulture) : "";
            FillFiltersToPositionList(accId);
            if (!ModelState.IsValid) return View(positionListModel);

            //TODO Формат даты сейчас зашит харкодом!!
            positionListModel.DateTimeFormat = new DateTimeFormatInfo {DateSeparator = ".", ShortDatePattern = "dd.MM.yyyy"};

            var model = positionRepository.GetPositionList(positionListModel);

            if (Request.IsAjaxRequest())
                return PartialView("PositionListPartialTable", model);
            return View(model);
        }
예제 #3
0
 /// <summary>
 /// формируем модель для представления PositionListModel (выборка с фильтрами из БД хранимой процедурой)
 /// </summary>
 /// <param name="positionListModel">Объект с новыми значениями фильтров</param>
 /// <remarks>Пока не тестируетя</remarks>
 public PositionListModel GetPositionList(PositionListModel positionListModel)
 {
     try
     {
         List<PositionItem> result;
         int totalCountPositeion;
         using (var ctx = DatabaseContext.Instance.Make())
         {
             var allPositions = ctx.GetPositionListWrapped(positionListModel.CountItemShow,
                                                    !positionListModel.AccountId.HasValue || positionListModel.AccountId == -1 ? null : positionListModel.AccountId,
                                                    !positionListModel.IsRealAccount.HasValue || positionListModel.IsRealAccount == -1 ? null : positionListModel.IsRealAccount,
                                                    positionListModel.Symbol == null || positionListModel.Symbol.ToLower() == "null" ? null : positionListModel.Symbol,
                                                    !((int?)positionListModel.Status).HasValue || (int?)positionListModel.Status == -1 ? null : (int?)positionListModel.Status,
                                                    positionListModel.Side.HasValue ? (int?)positionListModel.Side : null,
                                                    positionListModel.TimeOpenFrom.ToDateTimeUniformSafe(positionListModel.DateTimeFormat),
                                                    positionListModel.TimeOpenTo.ToDateTimeUniformSafe(positionListModel.DateTimeFormat),
                                                    positionListModel.TimeExitFrom.ToDateTimeUniformSafe(positionListModel.DateTimeFormat),
                                                    positionListModel.TimeExitTo.ToDateTimeUniformSafe(positionListModel.DateTimeFormat),
                                                    out totalCountPositeion);
             result = Utils.DecoratPositionItems(allPositions.ToList());
         }
         return new PositionListModel
         {
             CountItemShow = positionListModel.CountItemShow,
             AccountId = positionListModel.AccountId,
             Positions = result,
             TotalCountItems = totalCountPositeion
         };
     }
     catch (Exception ex)
     {
         Logger.Error("GetPositionList(PositionItem decoratPositionItems)", ex);
         return new PositionListModel();
     }
 }