Example #1
0
		public long Add(ClientModel client, TransitEditModel transit)
		{
			var id = _manager.Add(client, transit);

			_events.Add(id, EventType.ClientAdded, EventState.Emailing, client.Authentication.NewPassword);

			return id;
		}
Example #2
0
		public long Add(TransitEditModel transit, long? forsedCarrierId)
		{
			var data = new TransitData();

			TransitMapper.Map(transit, data, GetCarrier(forsedCarrierId, transit.CityId, null));

			var transitId = _transits.Add(data);

			return transitId;
		}
Example #3
0
		public static void Map(TransitEditModel @from, TransitData to, long carrierId)
		{
			to.Address = @from.Address;
			to.CarrierId = carrierId;
			to.WarehouseWorkingTime = @from.WarehouseWorkingTime;
			to.CityId = @from.CityId;
			to.DeliveryType = @from.DeliveryType;
			to.MethodOfTransit = @from.MethodOfTransit;
			to.Phone = @from.Phone;
			to.RecipientName = @from.RecipientName;
		}
Example #4
0
		public long Add(ApplicationAdminModel model, TransitEditModel transit,
			long clientId)
		{
			var transitId = _transitService.Add(transit, model.CarrierId);

			var data = new ApplicationEditData
			{
				Class = null,
				TransitId = transitId,
				Invoice = model.Invoice,
				Characteristic = model.Characteristic,
				AddressLoad = model.AddressLoad,
				WarehouseWorkingTime = model.WarehouseWorkingTime,
				Weight = model.Weight,
				Count = model.Count,
				Volume = model.Volume,
				TermsOfDelivery = model.TermsOfDelivery,
				Value = model.Currency.Value,
				CurrencyId = model.Currency.CurrencyId,
				CountryId = model.CountryId,
				FactoryName = model.FactoryName,
				FactoryPhone = model.FactoryPhone,
				FactoryEmail = model.FactoryEmail,
				FactoryContact = model.FactoryContact,
				MarkName = model.MarkName,
				MethodOfDelivery = model.MethodOfDelivery,
				IsPickup = model.IsPickup,
				AirWaybillId = null,
				DateInStock = null,
				DateOfCargoReceipt = null,
				TransitReference = null,
				ClientId = clientId,
				PickupCost = model.PickupCost,
				TransitCost = model.TransitCost,
				FactureCost = model.FactureCost,
				FactureCostEx = model.FactureCostEx,
				TariffPerKg = model.TariffPerKg,
				ScotchCostEdited = model.ScotchCostEdited,
				FactureCostEdited = model.FactureCostEdited,
				FactureCostExEdited = model.FactureCostExEdited,
				TransitCostEdited = model.TransitCostEdited,
				PickupCostEdited = model.PickupCostEdited,
				SenderId = model.SenderId,
				ForwarderId = GetForwarderId(model.ForwarderId, transit.CityId, null),
				SenderRate = null,
				InsuranceRate = model.InsuranceRate / 100,
				CountInInvoce = model.CountInInvoce,
				DocumentWeight = model.DocumentWeight,
				MRN = model.MRN,
                Comments = model.Comments
			};

			return _editor.Add(data);
		}
Example #5
0
 public static void Map(TransitEditModel @from, TransitData to, long carrierId)
 {
     to.Address              = @from.Address;
     to.CarrierId            = carrierId;
     to.WarehouseWorkingTime = @from.WarehouseWorkingTime;
     to.CityId          = @from.CityId;
     to.DeliveryType    = @from.DeliveryType;
     to.MethodOfTransit = @from.MethodOfTransit;
     to.Phone           = @from.Phone;
     to.RecipientName   = @from.RecipientName;
 }
Example #6
0
		public long Add(ApplicationClientModel application, TransitEditModel transit, long clientId)
		{
			var transitId = _transits.Add(transit, null);

			var forwarderId = _forwarders.GetByCityOrAny(transit.CityId, null);

			var client = _clients.Get(clientId);

			var data = new ApplicationEditData
			{
				Class = null,
				TransitId = transitId,
				Invoice = application.Invoice,
				Characteristic = application.Characteristic,
				AddressLoad = application.AddressLoad,
				WarehouseWorkingTime = application.WarehouseWorkingTime,
				Weight = application.Weight,
				Count = application.Count,
				Volume = application.Volume,
				TermsOfDelivery = application.TermsOfDelivery,
				Value = application.Currency.Value,
				CurrencyId = application.Currency.CurrencyId,
				CountryId = application.CountryId,
				FactoryName = application.FactoryName,
				FactoryPhone = application.FactoryPhone,
				FactoryEmail = application.FactoryEmail,
				FactoryContact = application.FactoryContact,
				MarkName = application.MarkName,
				MethodOfDelivery = application.MethodOfDelivery,
				IsPickup = application.IsPickup,
				AirWaybillId = null,
				DateInStock = null,
				DateOfCargoReceipt = null,
				TransitReference = null,
				ClientId = clientId,
				PickupCost = client.PickupCost,
				TransitCost = client.TransitCost,
				FactureCost = client.FactureCost,
				FactureCostEx = client.FactureCostEx,
				TariffPerKg = client.TariffPerKg,
				ScotchCostEdited = client.ScotchCostEdited,
				FactureCostEdited = null,
				FactureCostExEdited = null,
				TransitCostEdited = null,
				PickupCostEdited = null,
				SenderId = client.DefaultSenderId,
				SenderRate = null,
				ForwarderId = forwarderId,
				InsuranceRate = client.InsuranceRate ?? _applications.GetDefaultInsuranceRate()
			};

			return _updater.Add(data);
		}
Example #7
0
		public void Update(long transitId, TransitEditModel transit, long? forsedCarrierId, long? applicationId)
		{
			var data = _transits.Get(transitId).Single();

			var carrierId = GetCarrier(forsedCarrierId, transit.CityId, data.CarrierId);

			if(applicationId.HasValue && data.CarrierId != carrierId)
			{
				_events.Add(applicationId.Value, EventType.SetCarrier, EventState.Emailing);
			}

			TransitMapper.Map(transit, data, carrierId);

			_transits.Update(data);
		}
Example #8
0
		public void Update(long clientId, ClientModel model, TransitEditModel transit)
		{
			var data = _clients.Get(clientId);
			var userId = data.UserId;
			var transitId = data.TransitId;

			if(!_permissions.HaveAccessToClient(data))
			{
				throw new AccessForbiddenException();
			}

			var clientEditData = GetData(model);

			Update(clientId, clientEditData, transitId, transit, userId, model.Authentication);
		}
Example #9
0
		public long Add(ClientModel client, TransitEditModel transit)
		{
			var data = GetData(client);

			using(var ts = new TransactionScope())
			{
				var transitId = _transits.Add(transit, null);

				var userId = _users.Add(client.Authentication.Login,
					client.Authentication.NewPassword,
					TwoLetterISOLanguageName.English);

				var clientId = _clients.Add(data, userId, transitId);

				ts.Complete();

				return clientId;
			}
		}
Example #10
0
		private void Update(
			long clientId, ClientEditData clientEditData,
			long transitId, TransitEditModel transit,
			long userId, AuthenticationModel authentication)
		{
			using(var ts = new TransactionScope())
			{
				_transits.Update(transitId, transit, null, null);

				_clients.Update(clientId, clientEditData);

				_users.SetLogin(userId, authentication.Login);

				if(!string.IsNullOrWhiteSpace(authentication.NewPassword))
				{
					_users.SetPassword(userId, authentication.NewPassword);
				}

				ts.Complete();
			}
		}
		private static void Validate(
			ClientData clientData, ApplicationAdminModel model, TransitEditModel transitModel,
			ApplicationData data)
		{
			data.ShouldBeEquivalentTo(model,
				options => options.ExcludingMissingProperties()
					.Excluding(x => x.PickupCost)
					.Excluding(x => x.CarrierId)
					.Excluding(x => x.CarrierName)
					.Excluding(x => x.InsuranceRate));
			data.InsuranceRate.ShouldBeEquivalentTo(model.InsuranceRate / 100);
			data.GetAdjustedFactureCost().ShouldBeEquivalentTo(model.FactureCostEdited);
			data.GetAdjustedFactureCostEx().ShouldBeEquivalentTo(model.FactureCostExEdited);
			data.GetAdjustedTransitCost().ShouldBeEquivalentTo(model.TransitCostEdited);
			data.GetAdjustedPickupCost().ShouldBeEquivalentTo(model.PickupCostEdited);
			data.GetAdjustedScotchCost().ShouldBeEquivalentTo(model.ScotchCostEdited);
			data.CurrencyId.ShouldBeEquivalentTo(model.Currency.CurrencyId);
			data.ClientLegalEntity.ShouldBeEquivalentTo(clientData.LegalEntity);
			data.ClientNic.ShouldBeEquivalentTo(clientData.Nic);
			data.TransitAddress.ShouldBeEquivalentTo(transitModel.Address);
			data.TransitCityId.ShouldBeEquivalentTo(TestConstants.TestCityId1);
			data.CarrierId.ShouldBeEquivalentTo(TestConstants.TestCarrierId1);
			data.TransitDeliveryType.ShouldBeEquivalentTo(transitModel.DeliveryType);
			data.TransitMethodOfTransit.ShouldBeEquivalentTo(transitModel.MethodOfTransit);
			data.TransitPhone.ShouldBeEquivalentTo(transitModel.Phone);
			data.TransitRecipientName.ShouldBeEquivalentTo(transitModel.RecipientName);
			data.TransitWarehouseWorkingTime.ShouldBeEquivalentTo(transitModel.WarehouseWorkingTime);
		}
		private void Validate(
			ActionResult result, ClientData clientData, ApplicationAdminModel model,
			TransitEditModel transitModel)
		{
			result.Should().BeOfType<RedirectToRouteResult>();

			var data = _applicationRepository.List(new[]
			{
				TestConstants.DefaultStateId
			},
				new[]
				{
					new Order
					{
						Desc = true,
						OrderType = OrderType.Id
					}
				},
				1,
				clientId: clientData.ClientId).First();

			Validate(clientData, model, transitModel, data);
		}
Example #13
0
		public void Update(long clientId, ClientModel model, TransitEditModel transit)
		{
			_manager.Update(clientId, model, transit);
		}
Example #14
0
		public void Update(long applicationId, ApplicationAdminModel model, TransitEditModel transit)
		{
			var data = _applications.Get(applicationId);

			_transitService.Update(data.TransitId, transit, model.CarrierId, applicationId);

			data.Invoice = model.Invoice;
			data.Characteristic = model.Characteristic;
			data.AddressLoad = model.AddressLoad;
			data.WarehouseWorkingTime = model.WarehouseWorkingTime;
			data.Weight = model.Weight;
			data.Count = model.Count;
			data.Volume = model.Volume;
			data.TermsOfDelivery = model.TermsOfDelivery;
			data.Value = model.Currency.Value;
			data.CurrencyId = model.Currency.CurrencyId;
			data.CountryId = model.CountryId;
			data.FactoryName = model.FactoryName;
			data.FactoryPhone = model.FactoryPhone;
			data.FactoryEmail = model.FactoryEmail;
			data.FactoryContact = model.FactoryContact;
			data.MarkName = model.MarkName;
			data.IsPickup = model.IsPickup;
			data.MethodOfDelivery = model.MethodOfDelivery;
			data.FactureCost = model.FactureCost;
			data.FactureCostEx = model.FactureCostEx;
			data.TransitCost = model.TransitCost;
			data.PickupCost = model.PickupCost;
			data.TariffPerKg = model.TariffPerKg;
			data.FactureCostEdited = model.FactureCostEdited;
			data.FactureCostExEdited = model.FactureCostExEdited;
			data.TransitCostEdited = model.TransitCostEdited;
			data.PickupCostEdited = model.PickupCostEdited;
			data.ScotchCostEdited = model.ScotchCostEdited;
			data.SenderId = model.SenderId;
			data.ForwarderId = GetForwarderId(model.ForwarderId, transit.CityId, data.ForwarderId);
			data.InsuranceRate = model.InsuranceRate / 100;
			data.CountInInvoce = model.CountInInvoce;
			data.DocumentWeight = model.DocumentWeight;
			data.MRN = model.MRN;
		    data.Comments = model.Comments;

			_editor.Update(applicationId, data);
		}
Example #15
0
		public void Update(long applicationId, ApplicationClientModel application, TransitEditModel transit)
		{
			var data = _applications.Get(applicationId);

			_transits.Update(data.TransitId, transit, null, applicationId);

			var forwarderId = _forwarders.GetByCityOrAny(transit.CityId, data.ForwarderId);

			Map(application, data, forwarderId);

			_updater.Update(applicationId, data);
		}