Exemplo n.º 1
0
        public void TryRemoveAddress_IfAddressIsFromAnotherRL_ThenTheAddressWillNotBeDeletedAndMessageWillNotBeEmpty()
        {
            //arrange
            RouteList routeListSourceMock = Substitute.For <RouteList>();

            routeListSourceMock.Id.Returns(999);

            RouteListItem routeListItemRemovingMock = Substitute.For <RouteListItem>();

            routeListItemRemovingMock.WasTransfered.Returns(true);
            routeListItemRemovingMock.Order = Substitute.For <Order>();

            RouteListItem routeListItemSourceMock = Substitute.For <RouteListItem>();

            routeListItemSourceMock.RouteList.Returns(routeListSourceMock);

            IUnitOfWork uow = Substitute.For <IUnitOfWork>();
            IRouteListItemRepository routeListItemRepository = Substitute.For <IRouteListItemRepository>();

            routeListItemRepository.GetTransferedFrom(uow, routeListItemRemovingMock).Returns(routeListItemSourceMock);

            RouteList routeListUnderTest = new RouteList {
                UoW = uow
            };

            routeListUnderTest.Addresses.Add(routeListItemRemovingMock);

            // act
            routeListUnderTest.TryRemoveAddress(routeListItemRemovingMock, out string msg, routeListItemRepository);

            // assert
            Assert.That(routeListUnderTest.Addresses.Count, Is.EqualTo(1));
            Assert.That(string.IsNullOrEmpty(msg), Is.False);
        }
 string GetTransferText(RouteListItem item)         // Дубликат метода в RouteListItem, надо переделать метод вызова попапа и убрать.
 {
     if (item.Status == RouteListItemStatus.Transfered)
     {
         if (item.TransferedTo != null)
         {
             return(String.Format("Заказ был перенесен в МЛ №{0} водителя {1}.",
                                  item.TransferedTo.RouteList.Id,
                                  item.TransferedTo.RouteList.Driver.ShortName
                                  ));
         }
         else
         {
             return("ОШИБКА! Адрес имеет статус перенесенного в другой МЛ, но куда он перенесен не указано.");
         }
     }
     if (item.WasTransfered)
     {
         var transferedFrom = _routeListItemRepository.GetTransferedFrom(UoW, item);
         if (transferedFrom != null)
         {
             return(String.Format("Заказ из МЛ №{0} водителя {1}.",
                                  transferedFrom.RouteList.Id,
                                  transferedFrom.RouteList.Driver.ShortName
                                  ));
         }
         else
         {
             return("ОШИБКА! Адрес помечен как перенесенный из другого МЛ, но строка откуда он был перенесен не найдена.");
         }
     }
     return(null);
 }
Exemplo n.º 3
0
        protected void OnButtonRevertClicked(object sender, EventArgs e)
        {
            var toRevert = ytreeviewRLTo
                           .GetSelectedObjects <RouteListItemNode>()
                           .Where(x => x.WasTransfered)
                           .Select(x => x.RouteListItem)
                           .ToList();

            foreach (var address in toRevert)
            {
                if (address.Status == RouteListItemStatus.Transfered)
                {
                    MessageDialogHelper.RunWarningDialog(string.Format("Адрес {0} сам перенесен в МЛ №{1}. Отмена этого переноса не возможна. Сначала нужно отменить перенос в {1} МЛ.", address?.Order?.DeliveryPoint.ShortAddress, address.TransferedTo?.RouteList.Id));
                    continue;
                }

                RouteListItem pastPlace =
                    (yentryreferenceRLFrom.Subject as RouteList)
                    ?.Addresses
                    ?.FirstOrDefault(x => x.TransferedTo != null && x.TransferedTo.Id == address.Id)
                    ?? _routeListItemRepository.GetTransferedFrom(UoW, address);

                var previousRouteList = pastPlace?.RouteList;

                if (pastPlace != null)
                {
                    previousRouteList.RevertTransferAddress(_wageParameterService, pastPlace, address);
                    pastPlace.NeedToReload  = address.NeedToReload;
                    pastPlace.WasTransfered = true;
                    UpdateTranferDocuments(pastPlace.RouteList, address.RouteList);
                    pastPlace.RecalculateTotalCash();
                    UoW.Save(pastPlace);
                    address.RouteList.TransferAddressTo(address, pastPlace);
                    address.WasTransfered = false;
                }

                address.RouteList.CalculateWages(_wageParameterService);
                address.RecalculateTotalCash();

                UoW.Save(address.RouteList);
            }

            UoW.Commit();
            UpdateNodes();
        }