protected async Task Select(SubscriptionPack item)
        {
            if (item.Price == 0)
            {
                var subscriptionPack = await httpClient.PostAsJsonAsync <SubscriptionPack>("/api/SubPack/Select", item);

                if (subscriptionPack.IsSuccessStatusCode)
                {
                    navigationManager.NavigateTo("/", true);
                }
            }
            else
            {
                navigationManager.NavigateTo($"/payment-subscription/{item.Id}", true);
            }
        }
Exemple #2
0
        public async Task <IActionResult> Select(SubscriptionPack subscriptionPack)
        {
            var user = await _userManager.FindByNameAsync(User.UserName());

            if (user == null)
            {
                return(BadRequest());
            }

            SubscriptionHistory newSub = new SubscriptionHistory();

            newSub.Enable             = true;
            newSub.Created            = DateTime.Now;
            newSub.EndSubscription    = DateTime.MaxValue;
            newSub.SubscriptionPackId = subscriptionPack.Id;
            newSub.UserId             = Guid.Parse(user.Id);

            await _functionalUnitOfWork.SubscriptionHistoryRepository.Add(newSub);

            return(Ok());
        }
 public Task Remove(SubscriptionPack network)
 {
     return(Task.Run(() => FunctionalDbContext.SubscriptionPacks.Remove(network.Id)));
 }
 public Task <SubscriptionPack> AddSubscriptionPack(SubscriptionPack SubscriptionPack)
 {
     return(Task.Run(() => FunctionalDbContext.SubscriptionPacks.Add(SubscriptionPack)));
 }
        public async Task <ActionResult <AdModel> > Create(CreateAdRequestViewModel createAdRequestViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var ad = (AdModel)createAdRequestViewModel.Ad;
            var applicationUser = (ViewApplicationUser)User;

            if (createAdRequestViewModel.Price != null)
            {
                ad.OrderNumber = string.Concat(DateTime.UtcNow.ToString("yyyMMddHHmmss"), rdm.Next(100000, 999999));

                Subscription     subscription = null;
                SubscriptionPack pack         = null;

                int delayToDisplay  = 0;
                int displayDuration = 0;

                if (applicationUser.IsAdmin || applicationUser.IsManager || applicationUser.IsUnlimited || applicationUser.IsUltimate)
                {
                    delayToDisplay  = 0;
                    ad.IsValid      = true;
                    ad.ValidateDate = DateTime.UtcNow;
                    displayDuration = 15;
                }
                else
                {
                    if (!applicationUser.HasSubscriptionValid)
                    {
                        delayToDisplay  = 2;
                        displayDuration = 2;
                    }
                    else
                    {
                        delayToDisplay  = 0;
                        displayDuration = 5;
                    }
                }

                var priceDisplayDuration = createAdRequestViewModel.Price.DisplayDuration.GetValueOrDefault(0);
                var priceDelayToDisplay  = createAdRequestViewModel.Price.DelayToDisplay;

                if (priceDelayToDisplay < delayToDisplay)
                {
                    delayToDisplay = priceDelayToDisplay;
                }

                if (priceDisplayDuration > displayDuration)
                {
                    displayDuration = priceDisplayDuration;
                }

                ad.StartDisplayTime = DateTime.UtcNow.AddDays(delayToDisplay);
                ad.EndDisplayTime   = ad.StartDisplayTime.AddDays(displayDuration);

                ad.AdPriceId = createAdRequestViewModel.Price.Id;
            }

            ad.OwnerId = applicationUser.Id;
            ad.Country = applicationUser.Country;

            await functionalUnitOfWork.AdRepository.Add(ad);

            var entity = await functionalUnitOfWork.AdRepository.FirstOrDefault(a => a.Id == ad.Id);

            await _adsUnitOfWork.CategoryAdRepository.Add(createAdRequestViewModel.Ad.ListIdCategory, ad.Id);

            await _eventTrackingService.Create(applicationUser.Id, "Ad", "create");

            return(Ok(entity));
        }