public static bool IsCustomer() { var user = Context.Entity.Resolve <User>(); var membership = new CustomerMembership(); return(membership.IsCustomer(user)); }
public void When_I_Call_IsPackingSlipRequestValid_With_Valid_PackingSlip_I_Should_Get_True() { // Arrange string customerEmail = "*****@*****.**"; var createMembershipCheckResponse = new ResponseMessage { IsSuccess = false }; var membership = new CustomerMembership { Email = customerEmail, IsActivated = false, IsUpgraded = false }; var packingSlip = new PackingSlipHeader { PackingSlipItems = new List <PackingSlipItem> { new PackingSlipItem { Name = "Test Item", Quantity = 2 } }, AgentName = It.IsAny <string>(), CustomerEmail = customerEmail, CustomerName = "Test Customer", PackingSlipNumber = "PS/001" }; // Act _mockCustomerMembershipRepository.Setup(x => x.IsMembershipValidForCreate(customerEmail)).Returns(createMembershipCheckResponse); var valid = _packingSlipValidator.IsPackingSlipRequestValid(packingSlip); // Assert Assert.IsTrue(valid.IsSuccess); }
/// <summary> /// Initializes a new instance of the <see cref="PriceCalculatorFactoryImpl" /> class. /// </summary> /// <param name="membership">The membership.</param> /// <param name="totalsFactory">The totals factory.</param> public PriceCalculatorFactoryImpl([NotNull] CustomerMembership membership, [NotNull] TotalsFactory totalsFactory) { Assert.ArgumentNotNull(membership, "membership"); Assert.ArgumentNotNull(totalsFactory, "totalsFactory"); this.membership = membership; this.totalsFactory = totalsFactory; }
public void Should_activate_a_membership() { var customerMembership = new CustomerMembership(_membership, _customer); customerMembership.Activate(); Assert.True(customerMembership.Activated); }
/// <summary> /// Initializes a new instance of the <see cref="PriceCalculatorFactoryImpl" /> class. /// </summary> /// <param name="membership">The membership.</param> /// <param name="totalsFactory">The totals factory.</param> public PriceCalculatorFactoryImpl([NotNull]CustomerMembership membership, [NotNull] TotalsFactory totalsFactory) { Assert.ArgumentNotNull(membership, "membership"); Assert.ArgumentNotNull(totalsFactory, "totalsFactory"); this.membership = membership; this.totalsFactory = totalsFactory; }
public void ShouldCalculateCorrectDiscountPercentage(double expectedDiscountInPercent, int numberOfOrderedCups, CustomerMembership customerMembership) { var discountInPercent = CakeBoxOrderingService.CalculateDiscountPercentage(customerMembership, numberOfOrderedCups); Assert.Equal(expectedDiscountInPercent, discountInPercent); }
private static double CalculateDiscountPercentage(CustomerMembership membership, int numberOfOrderedCups) { var discountInPercent = 0.0; // TODO: Calculate discount in percent // // Rules: // 3% for more than 4 cups // // Premium customers get 5% in addition return(discountInPercent); }
public async Task <ResponseMessage> SaveMembershipAsync(CustomerMembership customerMembership) { ResponseMessage message = new ResponseMessage { IsSuccess = false }; customerMembership.CreatedOn = DateTime.Now; _context.CustomerMemberships.Add(customerMembership); await _context.SaveChangesAsync(); message.IsSuccess = true; message.Detail = PackingSlipConstants.MembershipCreationSuccessMessage; return(message); }
internal static double CalculateDiscountPercentage(CustomerMembership membership, int numberOfOrderedCups) { var discountInPercent = 0.0; if (numberOfOrderedCups > 4) { discountInPercent = 3.0; } if (membership == CustomerMembership.Premium) { discountInPercent += 5.0; } return(discountInPercent); }
public void Membership_should_be_created_inactive() { var customerMembership = new CustomerMembership(_membership, _customer); Assert.False(customerMembership.Activated); }
public ServiceResult <string> SecondStepLogin(MembershipAuthenticationBindingModel model) { var UserId = base.AuthenticationInformation.UserId; if (!UserId.HasValue) { return new ServiceResult <string>() { Message = new InvalidTokenMessage(), StatusCode = StatusCode.Forbidden } } ; var User = _userRepository.GetMany(P => P.Id == UserId).FirstOrDefault(); if (User == null) { return new ServiceResult <string>() { Message = new InvalidTokenMessage(), StatusCode = StatusCode.NotFound } } ; RoleEnum Role; var RoleConversionResult = Enum.TryParse <RoleEnum>(model.Role, true, out Role); if (!RoleConversionResult) { return new ServiceResult <string>() { Message = new InvalidRoleMessage(), StatusCode = StatusCode.BadRequest } } ; string Token = ""; switch (Role) { case RoleEnum.SuperAdmin: SuperAdminMembership SuperAdminMembership = _superAdminMembershipRepository.GetMany(P => P.OrganizationId == model.OrganizationId && P.SuperAdmin.Role.UserId == UserId).FirstOrDefault(); if (SuperAdminMembership == null) { return new ServiceResult <string>() { Message = new MembershipNotFoundMessage(), StatusCode = StatusCode.NotFound } } ; Token = _jsonWebTokenEngine.GenerateToken(UserId.Value, User.Username, model.OrganizationId, SuperAdminMembership.Organization.Title, Role.ToString("g")); break; case RoleEnum.Admin: AdminMembership AdminMembership = _adminMembershipRepository.GetMany(P => P.OrganizationId == model.OrganizationId && P.Admin.Role.UserId == UserId).FirstOrDefault(); if (AdminMembership == null) { return new ServiceResult <string>() { Message = new MembershipNotFoundMessage(), StatusCode = StatusCode.NotFound } } ; Token = _jsonWebTokenEngine.GenerateToken(UserId.Value, User.Username, model.OrganizationId, AdminMembership.Organization.Title, Role.ToString("g")); break; case RoleEnum.Secretary: SecretaryMembership SecretaryMembership = _secretaryMembershipRepository.GetMany(P => P.OrganizationId == model.OrganizationId && P.Secretary.Role.UserId == UserId).FirstOrDefault(); if (SecretaryMembership == null) { return new ServiceResult <string>() { Message = new MembershipNotFoundMessage(), StatusCode = StatusCode.NotFound } } ; Token = _jsonWebTokenEngine.GenerateToken(UserId.Value, User.Username, model.OrganizationId, SecretaryMembership.Organization.Title, Role.ToString("g")); break; case RoleEnum.Collector: CollectorMembership CollectorMembership = _collectorMembershipRepository.GetMany(P => P.OrganizationId == model.OrganizationId && P.Collector.Role.UserId == UserId).FirstOrDefault(); if (CollectorMembership == null) { return new ServiceResult <string>() { Message = new MembershipNotFoundMessage(), StatusCode = StatusCode.NotFound } } ; Token = _jsonWebTokenEngine.GenerateToken(UserId.Value, User.Username, model.OrganizationId, CollectorMembership.Organization.Title, Role.ToString("g")); break; case RoleEnum.Delivery: DeliveryMembership DeliveryMembership = _deliveryMembershipRepository.GetMany(P => P.OrganizationId == model.OrganizationId && P.Delivery.Role.UserId == UserId).FirstOrDefault(); if (DeliveryMembership == null) { return new ServiceResult <string>() { Message = new MembershipNotFoundMessage(), StatusCode = StatusCode.NotFound } } ; Token = _jsonWebTokenEngine.GenerateToken(UserId.Value, User.Username, model.OrganizationId, DeliveryMembership.Organization.Title, Role.ToString("g")); break; case RoleEnum.Customer: CustomerMembership CustomerMembership = _customerMembershipRepository.GetMany(P => P.OrganizationId == model.OrganizationId && P.Customer.Role.UserId == UserId).FirstOrDefault(); if (CustomerMembership == null) { return new ServiceResult <string>() { Message = new MembershipNotFoundMessage(), StatusCode = StatusCode.NotFound } } ; Token = _jsonWebTokenEngine.GenerateToken(UserId.Value, User.Username, model.OrganizationId, CustomerMembership.Organization.Title, Role.ToString("g")); break; default: break; } return(new ServiceResult <string>(Token)); } } }
public void ShouldCalculateCorrectDiscountPercentage(double expectedDiscountInPercent, int numberOfOrderedCups, CustomerMembership membership) { var discountInPercent = OrderCreationService.CalculateDiscountPercentage(membership, numberOfOrderedCups); Assert.AreEqual(expectedDiscountInPercent, discountInPercent); }
public async Task ShouldCalculateCorrectDiscountPercentage(double expectedDiscountInPercent, int numberOfOrderCups, CustomerMembership customerMembership) { var customer = new Customer { Membership = customerMembership }; var orderCreationResult = await _orderCreationService.CreateOrderAsync(customer, numberOfOrderCups); Assert.Equal(OrderCreationResultCode.Success, orderCreationResult.ResultCode); Assert.Equal(expectedDiscountInPercent, orderCreationResult.CreatedOrder.DiscountInPercent); }