public override async Task <ExecutionStatusResponse> CreatePromo(PromoCreateRequest request, ServerCallContext context) { var toSaveCode = new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = request.Title, ExpirationDate = Convert.ToDateTime(request.ExpirationDate), Discount = request.Discount }; var res = new ExecutionStatusResponse { Status = false }; try { await _repository.CreateAsync(toSaveCode); res.Status = true; return(res); } catch (Exception e) { _logger.LogError($"[PROMO-CREATION]<>Some errors occured: {e.Message}"); } return(res); }
public override async Task <ExecutionStatusResponse> GeneratePromoCodes(GeneratePromoRequest request, ServerCallContext context) { List <PromoCode> promoCodesToSave = new List <PromoCode>(); var genResult = new ExecutionStatusResponse() { Status = false }; try { for (int i = 0; i < request.Quantity; i++) { PromoCode pc = new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = request.Title, ExpirationDate = request.ExpirationDate.ToDateTime(), Discount = request.Discount }; promoCodesToSave.Add(pc); } await _repository.CreateManyAsync(promoCodesToSave); genResult.Status = true; return(genResult); } catch (Exception e) { _logger.LogError($"[PROMO-GENERATION]<>Some errors occured: {e.Message}"); } return(genResult); }
private static IEnumerable <PromoCode> GetOpeningPromocodesAsync() { return(new List <PromoCode>() { new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 }, new PromoCode() { Code = PromoGenerator.GenerateCode(), Title = "EShop Opening", ExpirationDate = DateTime.Now.AddDays(15), Discount = 0.3 } }); }
public given_a_new_account_trigger_promotion() { _orderCreatedCommand = new OrderCreated { PickupAddress = new Address { Apartment = "3939", Street = "1234 rue Saint-Hubert", RingCode = "3131", Latitude = 45.515065, Longitude = -73.558064 }, PickupDate = new DateTime(2014, 11, 10), DropOffAddress = new Address { FriendlyName = "Velvet auberge st gabriel", Latitude = 45.50643, Longitude = -73.554052, }, Settings = new BookingSettings { ChargeTypeId = 99, VehicleTypeId = 98, ProviderId = 97, NumberOfTaxi = 96, Passengers = 95, Phone = "94", Name = "93", LargeBags = 92 }, CreatedDate = new DateTime(2014, 11, 10), ClientLanguageCode = "fr", UserAgent = "TestUserAgent", ClientVersion = "1.0.0", UserNote = "une note" }; var promo = new PromotionCreated { Name = "promo2", Description = "promodesc2", Code = "code", AppliesToCurrentBooking = true, AppliesToFutureBooking = false, DiscountType = PromoDiscountType.Percentage, DiscountValue = 10, DaysOfWeek = new[] { DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday, DayOfWeek.Saturday, DayOfWeek.Sunday }, MaxUsage = 2, MaxUsagePerUser = 1, StartDate = new DateTime(2013, 11, 10), EndDate = new DateTime(2020, 11, 10), StartTime = new DateTime(SqlDateTime.MinValue.Value.Year, SqlDateTime.MinValue.Value.Month, SqlDateTime.MinValue.Value.Day, 10, 0, 0), EndTime = new DateTime(SqlDateTime.MinValue.Value.Year, SqlDateTime.MinValue.Value.Month, SqlDateTime.MinValue.Value.Day, 14, 0, 0), PublishedStartDate = new DateTime(2013, 11, 10), PublishedEndDate = new DateTime(2020, 11, 10), }; promo.SourceId = _promoAccountTriggerId; promo.TriggerSettings = new PromotionTriggerSettings { Type = PromotionTriggerTypes.AccountCreated }; PromoGenerator.Handle(promo); promo.SourceId = _promoAmountSpentTriggerId; promo.TriggerSettings = new PromotionTriggerSettings { Type = PromotionTriggerTypes.AmountSpent, AmountSpent = 20 }; PromoGenerator.Handle(promo); promo.SourceId = _promoRideCountTriggerId; promo.TriggerSettings = new PromotionTriggerSettings { Type = PromotionTriggerTypes.RideCount, RideCount = 2 }; PromoGenerator.Handle(promo); PromoGenerator.Handle(new PromotionActivated { SourceId = _promoAccountTriggerId }); PromoGenerator.Handle(new PromotionActivated { SourceId = _promoAmountSpentTriggerId }); PromoGenerator.Handle(new PromotionActivated { SourceId = _promoRideCountTriggerId }); }