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); }
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(); }