Пример #1
0
        private StandardAffiliateViewModel StandardAffiliate(SysUser user)
        {
            var viewModel = Mapper.Map <StandardAffiliateViewModel>(user);
            var affiliate = _affiliateService.Queryable().FirstOrDefault(x => x.Id == user.AffiliateId);

            // Affiliate url
            viewModel.AffiliateUrl      = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}" + Url.Action("Register", "Authentication", new { id = viewModel.Id });
            viewModel.IsTier2TabVisible = affiliate.IsTier2TabVisible;
            viewModel.IsTier3TabVisible = affiliate.IsTier3TabVisible;

            // Total sale
            SqlParameter TotalAffiliateSaleParam = new SqlParameter()
            {
                ParameterName = "@TotalAffiliateSale",
                SqlDbType     = SqlDbType.Money,
                Direction     = ParameterDirection.Output,
                IsNullable    = true
            };
            SqlParameter TodayAffiliateSaleParam = new SqlParameter()
            {
                ParameterName = "@TodayAffiliateSale",
                SqlDbType     = SqlDbType.Money,
                Direction     = ParameterDirection.Output,
                IsNullable    = true
            };
            SqlParameter YesterdayAffiliateSaleParam = new SqlParameter()
            {
                ParameterName = "@YesterdayAffiliateSale",
                SqlDbType     = SqlDbType.Money,
                Direction     = ParameterDirection.Output,
                IsNullable    = true
            };

            SqlParameter[] parameters =
            {
                new SqlParameter()
                {
                    ParameterName = "@SysUserId",
                    SqlDbType     = SqlDbType.Int,
                    Value         = user.Id,
                    Direction     = ParameterDirection.Input
                },
                TotalAffiliateSaleParam, TodayAffiliateSaleParam, YesterdayAffiliateSaleParam
            };

            _dataContextAsync.ExecuteSqlCommand("exec dbo.usp_GetAffiliateSale @SysUserId, @TotalAffiliateSale OUTPUT, @TodayAffiliateSale OUTPUT, @YesterdayAffiliateSale OUTPUT", parameters);

            viewModel.TotalAffiliateSale     = Convert.ToInt32((TotalAffiliateSaleParam.Value as int?).GetValueOrDefault(0));
            viewModel.TodayAffiliateSale     = Convert.ToInt32((TodayAffiliateSaleParam.Value as int?).GetValueOrDefault(0));
            viewModel.YesterdayAffiliateSale = Convert.ToInt32((YesterdayAffiliateSaleParam.Value as int?).GetValueOrDefault(0));

            // Total user register
            viewModel.TotalIntroducedUsers = _sysUserService.Queryable()
                                             .Count(x => x.IsIntroducedById != null && x.IsIntroducedById == user.Id);
            viewModel.TotalIntroducedUsersToday = _sysUserService.Queryable()
                                                  .Where(x => x.IsIntroducedById.HasValue && x.IsIntroducedById.Value == user.Id &&
                                                         x.AffiliateCreatedDate.HasValue && x.AffiliateCreatedDate.Value.Date == DateTime.Now.Date).Count();
            viewModel.TotalIntroducedUsersYesterday = _sysUserService.Queryable()
                                                      .Where(x => x.IsIntroducedById.HasValue && x.IsIntroducedById.Value == user.Id &&
                                                             x.AffiliateCreatedDate.HasValue && x.AffiliateCreatedDate.Value.Date == DateTime.Now.AddDays(-1).Date).Count();


            return(viewModel);
        }