예제 #1
0
        public async Task RemoveSubsrcibesFromUserAsync()
        {
            var subscribes = await _subscribesService.FetchByUserAsync(TestUser.Id);

            foreach (var subscribe in subscribes)
            {
                await RemoveSubsrcibeAsync(subscribe);
            }
        }
        async Task <SubscribesIndexViewModel> GetIndexViewAsync()
        {
            var subscribes = await _subscribesService.FetchByUserAsync(CurrentUserId);

            var model = new SubscribesIndexViewModel();

            if (subscribes.HasItems())
            {
                subscribes = subscribes.GetOrdered();

                //User訂閱紀錄
                model.Records = subscribes.MapViewModelList(_mapper);


                //訂閱期之內(Active)的訂閱紀錄
                var activeSubscribe = subscribes.Where(item => item.Active).FirstOrDefault();
                if (activeSubscribe != null)
                {
                    model.Current = activeSubscribe.MapViewModel(_mapper);
                }
            }

            if (model.Current == null)
            {
                //目前不在訂閱期
                var plan = await FindPlanAsync();

                if (plan != null)
                {
                    bool canDiscount = subscribes.HasItems();
                    model.Plan = plan.MapViewModel(_mapper, canDiscount);
                }
            }

            return(model);
        }