Ejemplo n.º 1
0
        public async Task <ActionResult> Index(int page = 1, string curCat = null)
        {
            if (curCat != null)
            {
                var category = Mapper.Map <SxMaterialCategory, VMMaterialCategory>(MaterialCategoriesController.Repo.GetByKey(curCat));
                ViewBag.Category = category;
            }

            ViewBag.CategoryId = curCat;
            var filter = new SxFilter(page, _pageSize)
            {
                WhereExpressionObject = new VMAphorism {
                    CategoryId = curCat
                }
            };
            var viewModel = await Repo.ReadAsync(filter);

            if (page > 1 && !viewModel.Any())
            {
                return(new HttpNotFoundResult());
            }

            ViewBag.Filter = filter;

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> AppIndexLinked(VMSteamApp filterModel, SxOrderItem order, int page = 1, int pageSize = 10, int?gameId = null)
        {
            var gid = string.IsNullOrEmpty(Request.Form.Get("gameId"))?null: Request.Form.Get("gameId");

            ViewBag.GameId = gid ?? gameId.ToString();

            var filter = new SxFilter(page, pageSize)
            {
                Order = order != null && order.Direction != SortDirection.Unknown ? order : null, WhereExpressionObject = filterModel, AddintionalInfo = new object[] { null, ViewBag.GameId }
            };

            var viewModel = await Repo.ReadAsync(filter);

            if (page > filter.PagerInfo.TotalPages)
            {
                page = 1;
            }
            if (page > 1 && !viewModel.Any())
            {
                return(new HttpNotFoundResult());
            }

            ViewBag.Filter = filter;
            return(PartialView("_GridViewAppLinked", viewModel));
        }
Ejemplo n.º 3
0
        private static string GetServicesWhereString(SxFilter filter, out object param)
        {
            param = null;
            string query = null;

            query += " WHERE (ds.Html LIKE '%'+@html+'%' OR @html IS NULL) ";
            query += " AND (ds.Title LIKE '%'+@title+'%' OR @title IS NULL) ";
            query += " AND (ds.Duration LIKE '%'+@duration+'%' OR @duration IS NULL) ";
            query += " AND (ds.Cost LIKE '%'+@cost+'%' OR @cost IS NULL) ";

            string html     = filter.WhereExpressionObject?.Html;
            string title    = filter.WhereExpressionObject?.Title;
            string duration = filter.WhereExpressionObject?.Duration;
            string cost     = filter.WhereExpressionObject?.Cost;

            param = new
            {
                html     = html,
                title    = title,
                duration = duration,
                cost     = cost
            };

            return(query);
        }
        public ActionResult Index(int page = 1)
        {
            var order = new SxOrderItem {
                FieldName = "de.[Order]", Direction = SortDirection.Desc
            };
            var filter = new SxFilter(page, _pageSize)
            {
                Order = order
            };

            var viewData = _repo.Read(filter);

            if (page > 1 && !viewData.Any())
            {
                return(new HttpNotFoundResult());
            }

            var viewModel = new SxPagedCollection <VMEducation>
            {
                Collection = viewData,
                PagerInfo  = filter.PagerInfo
            };

            ViewBag.Filter = filter;

            return(View(viewModel));
        }
Ejemplo n.º 5
0
        public override VMHumor[] Read(SxFilter filter)
        {
            var sb = new StringBuilder();

            sb.Append(SxQueryProvider.GetSelectString(new string[] {
                "dm.*",
                filter.WithComments.HasValue && filter.WithComments == true?"(SELECT COUNT(1) FROM D_COMMENT AS dc WHERE dc.MaterialId=dm.Id AND dc.ModelCoreType=dm.ModelCoreType) AS CommentsCount":null,
                "dmc.*",
                "anu.*",
                "dp.Id", "dp.Width", "dp.Height",
                "dst.*"
            }));
            sb.Append(" FROM DV_MATERIAL AS dm ");
            sb.Append(" LEFT JOIN D_MATERIAL_CATEGORY AS dmc ON dmc.Id = dm.CategoryId ");
            sb.Append(" LEFT JOIN D_USER AS anu ON anu.Id = dm.UserId ");
            sb.Append(" LEFT JOIN D_PICTURE AS dp ON dp.Id = dm.FrontPictureId ");
            sb.Append(" LEFT JOIN D_SEO_TAGS AS dst ON (dst.ModelCoreType=dm.ModelCoreType AND dst.MaterialId=dm.Id AND dst.MaterialId IS NOT NULL) ");

            object param = null;
            var    gws   = GetMaterialsWhereString(filter, out param);

            sb.Append(gws);

            var defaultOrder = new SxOrderItem {
                FieldName = "DateCreate", Direction = SortDirection.Desc
            };

            sb.Append(SxQueryProvider.GetOrderString(defaultOrder, filter.Order, new System.Collections.Generic.Dictionary <string, string> {
                { "DateCreate", "dm.[DateCreate]" },
                { "Title", "dm.[Title]" }
            }));

            sb.AppendFormat(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", filter.PagerInfo.SkipCount, filter.PagerInfo.PageSize);

            //count
            var sbCount = new StringBuilder();

            sbCount.Append("SELECT COUNT(1) FROM DV_MATERIAL AS dm ");
            sbCount.Append(gws);

            using (var connection = new SqlConnection(ConnectionString))
            {
                filter.PagerInfo.TotalItems = connection.Query <int>(sbCount.ToString(), param: param).SingleOrDefault();
                var data = connection.Query <VMHumor, SxVMMaterialCategory, SxVMAppUser, SxVMPicture, SxVMSeoTags, VMHumor>(sb.ToString(), (m, c, u, p, st) =>
                {
                    m.Category     = c;
                    m.User         = u;
                    m.FrontPicture = p;
                    m.SeoTags      = st;
                    return(m);
                }, param: param, splitOn: "Id").ToArray();

                if (filter.WidthVideos == true && data.Any())
                {
                    FillMaterialsVideo(connection, ref data);
                }

                return(data);
            }
        }
Ejemplo n.º 6
0
        public override VMGame[] Read(SxFilter filter)
        {
            //0 - Show, 1 - ShowSteamAppsCount
            var showSteamAppsCount = filter.AddintionalInfo?[1] == null ? (bool?)filter.AddintionalInfo?[1]: Convert.ToBoolean(filter.AddintionalInfo[1]);

            var sb = new StringBuilder();

            sb.Append(SxQueryProvider.GetSelectString(new string[] { "dg.*", showSteamAppsCount == true? "(SELECT COUNT(1) FROM D_GAME_STEAM_APP AS dgsa WHERE dgsa.GameId=dg.Id) AS SteamAppsCount" : null }));
            sb.Append(" FROM D_GAME AS dg ");

            object param = null;
            var    gws   = GetGamesWhereString(filter, out param);

            sb.Append(gws);

            var defaultOrder = new SxOrderItem {
                FieldName = "Title", Direction = SortDirection.Asc
            };

            sb.Append(SxQueryProvider.GetOrderString(defaultOrder, filter.Order));

            //count
            var sbCount = new StringBuilder();

            sbCount.Append("SELECT COUNT(1) FROM D_GAME AS dg ");
            sbCount.Append(gws);

            using (var connection = new SqlConnection(ConnectionString))
            {
                filter.PagerInfo.TotalItems = connection.Query <int>(sbCount.ToString(), param: param).SingleOrDefault();
                sb.AppendFormat(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", filter.PagerInfo.TotalItems <= filter.PagerInfo.PageSize?0: filter.PagerInfo.SkipCount, filter.PagerInfo.PageSize);
                var data = connection.Query <VMGame>(sb.ToString(), param: param);
                return(data.ToArray());
            }
        }
Ejemplo n.º 7
0
        private bool BeforeSelectListAction(SxFilter filter)
        {
            var routeDataValues = Request.RequestContext.RouteData.Values;
            var gameTitle       = (string)routeDataValues["gameTitle"];

            ViewBag.GameTitle      = gameTitle;
            filter.AddintionalInfo = new object[] { null, gameTitle };
            if (gameTitle != null)
            {
                var existGame = GamesController.Repo.ExistGame(gameTitle);
                if (!existGame)
                {
                    return(false);
                }
            }


            switch (ModelCoreType)
            {
            case 1:    //article
                filter.PagerInfo.PageSize = 9;
                break;

            case 2:    //news
                filter.PagerInfo.PageSize = 10;
                break;

            //TODO: убрать 7
            case 7:    //humor
                filter.PagerInfo.PageSize = 12;
                break;
            }

            return(true);
        }
Ejemplo n.º 8
0
        private static string GetQuestionsWhereString(SxFilter filter, out object param)
        {
            param = null;
            string query = null;

            query += " WHERE (dq.[Name] LIKE '%'+@name+'%' OR @name IS NULL) ";
            query += " AND (dq.[Email] LIKE '%'+@email+'%' OR @email IS NULL) ";
            query += " AND (dq.[Phone] LIKE '%'+@phone+'%' OR @phone IS NULL) ";
            query += " AND (dq.[Text] LIKE '%'+@text+'%' OR @text IS NULL) ";

            string name  = filter.WhereExpressionObject?.Name;
            string email = filter.WhereExpressionObject?.Email;
            string phone = filter.WhereExpressionObject?.Phone;
            string text  = filter.WhereExpressionObject?.Text;

            param = new
            {
                name  = name,
                email = email,
                phone = phone,
                text  = text
            };

            return(query);
        }
Ejemplo n.º 9
0
        public override VMSituation[] Read(SxFilter filter)
        {
            var sb = new StringBuilder();

            sb.Append(SxQueryProvider.GetSelectString());
            sb.Append(" FROM D_SITUATION AS ds");

            object param;
            var    gws = GetSituationsWhereString(filter, out param);

            sb.Append(gws);

            var defaultOrder = new SxOrderItem {
                FieldName = "ds.[Text]", Direction = SortDirection.Desc
            };

            sb.Append(SxQueryProvider.GetOrderString(defaultOrder, filter.Order));

            sb.AppendFormat(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", filter.PagerInfo.SkipCount, filter.PagerInfo.PageSize);

            //count
            var sbCount = new StringBuilder();

            sbCount.Append("SELECT COUNT(1) FROM D_SITUATION AS ds");
            sbCount.Append(gws);

            using (var conn = new SqlConnection(ConnectionString))
            {
                var data = conn.Query <VMSituation>(sb.ToString(), param: param);
                filter.PagerInfo.TotalItems = conn.Query <int>(sbCount.ToString(), param: param).SingleOrDefault();
                return(data.ToArray());
            }
        }
        public async Task <ActionResult> ArchiveList(int year, int?month = null, int?day = null, int amount = 9)
        {
            if (!Request.IsAjaxRequest())
            {
                return(new HttpNotFoundResult());
            }

            var filter = new SxFilter(1, amount)
            {
                AddintionalInfo = new object[] {
                    year,
                    month,
                    day
                }
            };

            var data = await _repoPopularYoutubeVideo.GetArchiveList(filter);

            var viewModel = data.Select(x => new SxVMVideo {
                Id           = Guid.NewGuid(),
                ChannelId    = x.ChannelId,
                ChannelTitle = x.ChannelTitle,
                DateCreate   = x.DateCreate,
                Title        = x.Title,
                VideoId      = x.Id
            }).ToArray();

            return(PartialView("_List", viewModel));
        }
Ejemplo n.º 11
0
        private static string GetInfographicsWhereString(SxFilter filter, out object param)
        {
            param = null;
            var query = new StringBuilder();

            query.Append(" WHERE (dp.[Caption] LIKE '%'+@caption+'%' OR @caption IS NULL) ");

            var linked = (bool)filter.AddintionalInfo?[0];

            if (linked)
            {
                query.Append(" AND (di.[MaterialId]=@mid AND di.[ModelCoreType]=@mct) ");
            }
            else
            {
                query.Append(" AND (dp.[Id] NOT IN (SELECT di2.PictureId FROM D_INFOGRAPHIC AS di2))");
            }

            param = new
            {
                mid     = filter.MaterialId,
                mct     = filter.ModelCoreType,
                caption = (string)filter.WhereExpressionObject?.Caption
            };

            return(query.ToString());
        }
Ejemplo n.º 12
0
        private static string GetSteamAppsWhereString(SxFilter filter, out object param)
        {
            param = null;
            var query = new StringBuilder();

            query.Append(" WHERE (dsa.[Name] LIKE '%'+@name+'%' OR @name IS NULL) ");
            query.Append(" AND (dsa.[Id] = @appId OR @appId IS NULL) ");

            var free = filter.AddintionalInfo?[0] == null ? (bool?)null : Convert.ToBoolean(filter.AddintionalInfo[0]);

            if (free.HasValue)
            {
                query.Append(" AND (dsa.[Id] NOT IN (SELECT dgsa.SteamAppId FROM D_GAME_STEAM_APP AS dgsa)) ");
            }

            var gameId = filter.AddintionalInfo?[1] == null ? (int?)null : Convert.ToInt32(filter.AddintionalInfo[1]);

            if (gameId.HasValue)
            {
                query.Append(" AND (dsa.[Id] IN (SELECT dgsa.SteamAppId FROM D_GAME_STEAM_APP AS dgsa WHERE dgsa.GameId=@gameId)) ");
            }

            param = new
            {
                name   = (string)filter.WhereExpressionObject?.Name,
                appId  = (int?)(filter.WhereExpressionObject?.Id == 0 ? null : filter.WhereExpressionObject?.Id),
                gameId = gameId
            };

            return(query.ToString());
        }
Ejemplo n.º 13
0
        public override VMSteamApp[] Read(SxFilter filter)
        {
            var sb = new StringBuilder();

            sb.Append(SxQueryProvider.GetSelectString(new string[] { "dsa.*" }));
            sb.Append(" FROM D_STEAM_APP AS dsa ");

            object param = null;
            var    gws   = GetSteamAppsWhereString(filter, out param);

            sb.Append(gws);

            var defaultOrder = new SxOrderItem {
                FieldName = "Name", Direction = SortDirection.Asc
            };

            sb.Append(SxQueryProvider.GetOrderString(defaultOrder, filter.Order));

            //count
            var sbCount = new StringBuilder();

            sbCount.Append("SELECT COUNT(1) FROM D_STEAM_APP AS dsa ");
            sbCount.Append(gws);

            using (var connection = new SqlConnection(ConnectionString))
            {
                filter.PagerInfo.TotalItems = connection.Query <int>(sbCount.ToString(), param: param).SingleOrDefault();
                if (filter.PagerInfo.PageSize < int.MaxValue)
                {
                    sb.AppendFormat(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", filter.PagerInfo.TotalItems <= filter.PagerInfo.PageSize ? 0 : filter.PagerInfo.SkipCount, filter.PagerInfo.PageSize);
                }
                var data = connection.Query <VMSteamApp>(sb.ToString(), param: param).ToArray();
                return(data);
            }
        }
Ejemplo n.º 14
0
        private static string GetMaterialsWhereString(SxFilter filter, out object param)
        {
            param = null;
            var query = new StringBuilder();

            query.Append(" WHERE (dm.Title LIKE '%'+@title+'%' OR @title IS NULL) ");
            query.Append(" AND (dm.Foreword LIKE '%'+@fwd+'%' OR @fwd IS NULL) ");
            query.Append(" AND (dm.CategoryId LIKE '%'+@cat+'%' OR @cat IS NULL) ");
            if (filter.OnlyShow.HasValue && filter.OnlyShow == true)
            {
                query.Append(" AND (dm.Show=@show AND dm.DateOfPublication<=GETDATE()) ");
            }
            query.Append(" AND (dm.ModelCoreType=@mct) ");

            string title = filter.WhereExpressionObject?.Title;
            string fwd   = filter.WhereExpressionObject?.Foreword;
            var    cat   = filter?.CategoryId;

            param = new
            {
                title = title,
                fwd   = fwd,
                cat   = cat,
                mct   = SxMvcApplication.ModelCoreTypeProvider[nameof(Humor)],
                show  = filter.OnlyShow == true ? true : (bool?)null
            };

            return(query.ToString());
        }
        public override VMAuthorAphorism[] Read(SxFilter filter)
        {
            var sb = new StringBuilder();

            sb.Append(SxQueryProvider.GetSelectString());
            sb.Append(@" FROM D_AUTHOR_APHORISM AS daa ");

            object param = null;
            var    gws   = GetAuthorAphorismsWhereString(filter, out param);

            sb.Append(gws);

            var defaultOrder = new SxOrderItem {
                FieldName = "daa.Name", Direction = SortDirection.Asc
            };

            sb.Append(SxQueryProvider.GetOrderString(defaultOrder, filter.Order));

            sb.AppendFormat(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", filter.PagerInfo.SkipCount, filter.PagerInfo.PageSize);

            //count
            var sbCount = new StringBuilder();

            sbCount.Append(@"SELECT COUNT(1) FROM D_AUTHOR_APHORISM AS daa ");
            sbCount.Append(gws);

            using (var conn = new SqlConnection(ConnectionString))
            {
                var data = conn.Query <VMAuthorAphorism>(sb.ToString(), param: param);
                filter.PagerInfo.TotalItems = conn.Query <int>(sbCount.ToString(), param: param).SingleOrDefault();
                return(data.ToArray());
            }
        }
        public PartialViewResult Index(VMAuthorAphorism filterModel, SxOrder order, int page = 1)
        {
            var filter = new SxFilter(page, _pageSize) { Order = order, WhereExpressionObject = filterModel };
            var viewModel = Repo.Read(filter);
            ViewBag.Filter = filter;

            return PartialView("_GridView", viewModel);
        }
Ejemplo n.º 17
0
        public async Task <ActionResult> AppIndex(int page = 1)
        {
            var filter    = new SxFilter(page, PageSize);
            var viewModel = await Repo.ReadAsync(filter);

            ViewBag.Filter = filter;
            return(View(model: viewModel));
        }
        public PartialViewResult MainPageServices(int amount=3)
        {
            var order = new SxOrderItem { FieldName = "Title", Direction = SortDirection.Asc };
            var filter = new SxFilter(1, 3) { Order = order };
            
            var viewModel = _repo.Read(filter);

            return PartialView("_MainPageServices", viewModel);
        }
        public ViewResult Index(int page = 1)
        {
            var filter = new SxFilter(page, _pageSize) { Order = new SxOrder { FieldName = "Name", Direction = SortDirection.Asc } };
            var viewModel = Repo.Read(filter);
            ViewBag.Filter = filter;


            return View(viewModel);
        }
Ejemplo n.º 20
0
        public async Task<ActionResult> FindGridView(VMGame filterModel, SxOrder order, int page = 1, int pageSize = 10)
        {
            var defaultOrder = new SxOrder { FieldName = "Title", Direction = SortDirection.Asc };
            var filter = new SxFilter(page, pageSize) { WhereExpressionObject = filterModel, Order = order == null || order.Direction == SortDirection.Unknown ? defaultOrder : order };

            var viewModel = await Repo.ReadAsync(filter);

            ViewBag.Filter = filter;

            return PartialView("_FindGridView", viewModel);
        }
Ejemplo n.º 21
0
        public async Task<ActionResult> Index(VMGame filterModel, SxOrder order, int page = 1)
        {
            var filter = new SxFilter(page, _pageSize) { Order = order != null && order.Direction != SortDirection.Unknown ? order : null, WhereExpressionObject = filterModel };

            var viewModel = await Repo.ReadAsync(filter);
            if (page > 1 && !viewModel.Any())
                return new HttpNotFoundResult();

            ViewBag.Filter = filter;

            return PartialView("_GridView", viewModel);
        }
        public PartialViewResult Index(VMAuthorAphorism filterModel, SxOrderItem order, int page = 1)
        {
            var filter = new SxFilter(page, _pageSize)
            {
                Order = order, WhereExpressionObject = filterModel
            };
            var viewModel = Repo.Read(filter);

            ViewBag.Filter = filter;

            return(PartialView("_GridView", viewModel));
        }
Ejemplo n.º 23
0
        public ActionResult Index(int page = 1)
        {
            var order = new SxOrder { FieldName = "Title", Direction = SortDirection.Desc };
            var filter = new SxFilter(page, _pageSize) { Order = order };

            var viewModel = Repo.Read(filter);
            if (page > 1 && !viewModel.Any())
                return new HttpNotFoundResult();

            ViewBag.Filter = filter;

            return View(viewModel);
        }
        public ActionResult Index(int testId, VMSiteTestQuestion filterModel, SxOrder order, int page = 1)
        {
            var defaultOrder = new SxOrder { FieldName = "Text", Direction = SortDirection.Asc };
            var filter = new SxFilter(page, _pageSize) { Order = order == null || order.Direction == SortDirection.Unknown ? defaultOrder : order, WhereExpressionObject = filterModel, AddintionalInfo = new object[] { testId } };

            var viewModel = _repo.Read(filter);
            if (page > 1 && !viewModel.Any())
                return new HttpNotFoundResult();

            ViewBag.Filter = filter;

            return PartialView("_GridView", viewModel);
        }
        public async Task <PopularYoutubeVideo[]> GetArchiveList(SxFilter filter)
        {
            var year  = (int?)filter.AddintionalInfo[0];
            var month = (int?)filter.AddintionalInfo[1];
            var day   = (int?)filter.AddintionalInfo[2];

            using (var connection = new SqlConnection(ConnectionString))
            {
                var data = await connection.QueryAsync <PopularYoutubeVideo>("dbo.get_popular_youtube_video_archive_list @year, @month, @day, @amount", new { year = year, month = month, day = day, amount = filter.PagerInfo.PageSize });

                return(data.ToArray());
            }
        }
Ejemplo n.º 26
0
        public PartialViewResult MainPageSituations(int?amount = null, int maxAmount = 30)
        {
            var order = new SxOrderItem {
                FieldName = "ds.[Text]", Direction = SortDirection.Asc
            };
            var filter = new SxFilter(1, amount.HasValue ? (int)amount : maxAmount)
            {
                Order = order
            };
            var viewModel = _repo.Read(filter);

            return(PartialView("_MainPageSituations", viewModel));
        }
        public override VMSiteTestSubject[] Read(SxFilter filter)
        {
            var sb = new StringBuilder();

            sb.Append(SxQueryProvider.GetSelectString(new string[] {
                "dstq.Id",
                "dstq.Title",
                "dstq.Description",
                "dstq.TestId",
                "dstq.PictureId",
                "dst.Id",
                "dp.Id"
            }));
            sb.Append(" FROM D_SITE_TEST_SUBJECT AS dstq ");
            var joinString = @"JOIN D_SITE_TEST AS dst ON  dst.Id = dstq.TestId
       LEFT JOIN D_PICTURE AS dp on dp.Id=dstq.PictureId";

            sb.Append(joinString);

            object param = null;
            var    gws   = GetSiteTestSubjectsWhereString(filter, out param);

            sb.Append(gws);

            var defaultOrder = new SxOrderItem {
                FieldName = "dstq.DateCreate", Direction = SortDirection.Desc
            };

            sb.Append(SxQueryProvider.GetOrderString(defaultOrder, filter.Order));

            sb.AppendFormat(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", filter.PagerInfo.SkipCount, filter.PagerInfo.PageSize);

            //count
            var sbCount = new StringBuilder();

            sbCount.Append("SELECT COUNT(1) FROM D_SITE_TEST_SUBJECT AS dstq ");
            sbCount.Append(joinString);
            sbCount.Append(gws);

            using (var connection = new SqlConnection(ConnectionString))
            {
                var data = connection.Query <VMSiteTestSubject, VMSiteTest, SxVMPicture, VMSiteTestSubject>(sb.ToString(), (q, t, p) =>
                {
                    q.Picture = p;
                    q.Test    = t;
                    return(q);
                }, param: param, splitOn: "Id");
                filter.PagerInfo.TotalItems = connection.Query <int>(sbCount.ToString(), param: param).SingleOrDefault();
                return(data.ToArray());
            }
        }
Ejemplo n.º 28
0
        public async Task <VMInfographic[]> ReadAsync(SxFilter filter)
        {
            var sb = new StringBuilder();

            sb.Append(SxQueryProvider.GetSelectString(new string[] {
                // infographic
                "dp.Id AS PictureId",
                "di.MaterialId",
                "di.ModelCoreType",
                // picture
                "dp.Id",
                "dp.Caption"
            }));
            sb.Append(@" FROM D_PICTURE AS dp
LEFT JOIN D_INFOGRAPHIC AS di ON di.PictureId = dp.Id
LEFT JOIN DV_MATERIAL AS dm ON dm.Id = di.MaterialId AND dm.ModelCoreType = di.ModelCoreType ");

            object param = null;
            var    gws   = GetInfographicsWhereString(filter, out param);

            sb.Append(gws);

            var defaultOrder = new SxOrderItem {
                FieldName = "Caption", Direction = SortDirection.Asc
            };

            sb.Append(SxQueryProvider.GetOrderString(defaultOrder, filter.Order, new Dictionary <string, string> {
                ["Caption"]   = "dp.Caption",
                ["PictureId"] = "dp.Id"
            }));

            sb.AppendFormat(" OFFSET {0} ROWS FETCH NEXT {1} ROWS ONLY", filter.PagerInfo.SkipCount, filter.PagerInfo.PageSize);

            //count
            var sbCount = new StringBuilder();

            sbCount.Append(@"SELECT COUNT(1) FROM D_PICTURE AS dp
LEFT JOIN D_INFOGRAPHIC AS di ON di.PictureId = dp.Id
LEFT JOIN DV_MATERIAL AS dm ON dm.Id = di.MaterialId AND dm.ModelCoreType = di.ModelCoreType ");
            sbCount.Append(gws);

            using (var connection = new SqlConnection(_connectionString))
            {
                filter.PagerInfo.TotalItems = (await connection.QueryAsync <int>(sbCount.ToString(), param: param)).SingleOrDefault();
                var data = connection.Query <VMInfographic, SxVMPicture, VMInfographic>(sb.ToString(), (i, p) => {
                    i.Picture = p;
                    return(i);
                }, param: param, splitOn: "PictureId, Id");
                return(data.ToArray());
            }
        }
        private PartialViewResult getResult(int testId)
        {
            var defaultOrder = new SX.WebCore.SxOrderItem {
                FieldName = "dstq.Title", Direction = SortDirection.Asc
            };
            var filter = new SxFilter(1, _pageSize)
            {
                Order = defaultOrder, AddintionalInfo = new object[] { testId }
            };
            var viewModel = _repo.Read(filter);

            ViewBag.Filter = filter;
            return(PartialView("_GridView", viewModel));
        }
        public ViewResult Index(int page = 1)
        {
            var filter = new SxFilter(page, _pageSize)
            {
                Order = new SxOrderItem {
                    FieldName = "Name", Direction = SortDirection.Asc
                }
            };
            var viewModel = Repo.Read(filter);

            ViewBag.Filter = filter;


            return(View(viewModel));
        }
Ejemplo n.º 31
0
        public async Task <ActionResult> FindGridView(VMGame filterModel, SxOrderItem order, int page = 1, int pageSize = 10)
        {
            var defaultOrder = new SxOrderItem {
                FieldName = "Title", Direction = SortDirection.Asc
            };
            var filter = new SxFilter(page, pageSize)
            {
                WhereExpressionObject = filterModel, Order = order == null || order.Direction == SortDirection.Unknown ? defaultOrder : order
            };

            var viewModel = await Repo.ReadAsync(filter);

            ViewBag.Filter = filter;

            return(PartialView("_FindGridView", viewModel));
        }
Ejemplo n.º 32
0
        private static string GetEducationWhereString(SxFilter filter, out object param)
        {
            param = null;
            string query = null;

            query += " WHERE (de.Html LIKE '%'+@html+'%' OR @html IS NULL) ";

            string html = filter.WhereExpressionObject?.Html;

            param = new
            {
                html = html
            };

            return(query);
        }
Ejemplo n.º 33
0
        private static string GetSituationsWhereString(SxFilter filter, out object param)
        {
            param = null;
            string query = null;

            query += " WHERE (ds.[Text] LIKE '%'+@text+'%' OR @text IS NULL) ";

            string text = filter.WhereExpressionObject?.Text;

            param = new
            {
                text = text
            };

            return(query);
        }
Ejemplo n.º 34
0
        public ViewResult List(int page = 1)
        {
            var defaultOrder = new SxOrder { FieldName = "DateCreate", Direction = SortDirection.Desc };
            var filter = new SxFilter { Order = defaultOrder, OnlyShow = true };

            var data = Repo.Read(filter);

            var viewModel = new SxPagedCollection<VMSiteTest>
            {
                Collection = data,
                PagerInfo = filter.PagerInfo
            };

            ViewBag.Filter = filter;

            return View(model: viewModel);
        }
Ejemplo n.º 35
0
        public async Task <ActionResult> Index(VMInfographic filterModel, SxOrderItem order, int mid, byte mct, int page = 1, bool linked = true)
        {
            if (!Request.IsAjaxRequest())
            {
                return(new HttpNotFoundResult());
            }

            var filter = new SxFilter(page, linked ? _pageSize : 10)
            {
                MaterialId = mid, ModelCoreType = mct, AddintionalInfo = new object[] { linked }, Order = order != null && order.Direction != SortDirection.Unknown ? order : null, WhereExpressionObject = filterModel
            };
            var viewModel = await Repo.ReadAsync(filter);

            ViewBag.Filter = filter;

            return(PartialView("_GridView", viewModel));
        }
        public async Task <ActionResult> Index(VMSituation filterModel, SxOrderItem order, int page = 1)
        {
            var filter = new SxFilter(page, _pageSize)
            {
                Order = order != null && order.Direction != SortDirection.Unknown ? order : null, WhereExpressionObject = filterModel
            };

            var viewModel = await _repo.ReadAsync(filter);

            if (page > 1 && !viewModel.Any())
            {
                return(new HttpNotFoundResult());
            }

            ViewBag.Filter = filter;

            return(PartialView("_GridView", viewModel));
        }
        public PartialViewResult FindGridView(VMAuthorAphorism filterModel, SxOrderItem order, int page = 1, int pageSize = 10)
        {
            var defaultOrder = new SxOrderItem {
                FieldName = "Name", Direction = SortDirection.Asc
            };
            var filter = new SxFilter(page, pageSize)
            {
                WhereExpressionObject = filterModel, Order = order == null || order.Direction == SortDirection.Unknown ? defaultOrder : order
            };

            filter.PagerInfo.PagerSize = 5;

            var viewModel = Repo.Read(filter).ToArray();

            ViewBag.Filter = filter;

            return(PartialView("_FindGridView", viewModel));
        }
Ejemplo n.º 38
0
 public PartialViewResult List(int mid, byte mct, int maxFs=30, int amount=50)
 {
     var filter = new SxFilter(1, 10) { MaterialId= mid, ModelCoreType=mct };
     var viewModel = Repo.GetCloud(filter);
     string url = "#";
     switch(mct)
     {
         case (byte)ModelCoreType.Article:
             url = Url.Action("List","Articles");
             break;
         case (byte)ModelCoreType.News:
             url = Url.Action("List", "News");
             break;
     }
     ViewData["TagsMaxFs"] = maxFs;
     ViewData["TagsUrl"] = url;
     ViewData["TagsShowHeader"] = true;
     return PartialView("~/views/MaterialTags/_TagsCloud.cshtml", viewModel);
 }
        private PartialViewResult getResult(int testId)
        {
            var defaultOrder = new SxOrder { FieldName = "Text", Direction = SortDirection.Asc };
            var filter = new SxFilter(1, _pageSize) { Order = defaultOrder, AddintionalInfo = new object[] { testId } };

            var viewModel = _repo.Read(filter);
            ViewBag.Filter = filter;
            return PartialView("_GridView", viewModel);
        }
        public PartialViewResult FindGridView(VMAuthorAphorism filterModel, SxOrder order, int page = 1, int pageSize = 10)
        {
            var defaultOrder = new SxOrder { FieldName = "Name", Direction = SortDirection.Asc };
            var filter = new SxFilter(page, pageSize) { WhereExpressionObject = filterModel, Order = order == null || order.Direction == SortDirection.Unknown ? defaultOrder : order };
            filter.PagerInfo.PagerSize = 5;

            var viewModel = Repo.Read(filter).ToArray();

            ViewBag.Filter = filter;

            return PartialView("_FindGridView", viewModel);
        }
Ejemplo n.º 41
0
        public ActionResult List(string categoryId = null, int page = 1)
        {
            var breadcrumbs = (SxVMBreadcrumb[])ViewBag.Breadcrumbs;

            var author = Request.QueryString["author"];
            if (!string.IsNullOrEmpty(author))
            {
                var a=Mapper.Map<AuthorAphorism, VMAuthorAphorism>(new RepoAuthorAphorism().GetByTitleUrl(author));
                if (!string.IsNullOrEmpty(author) && a == null)
                    return new HttpNotFoundResult();

                ViewBag.Author = a;
                Array.Resize(ref breadcrumbs, breadcrumbs.Length + 1);
                breadcrumbs[breadcrumbs.Length - 1] = new SxVMBreadcrumb { Title = a.Name, Url = null };
            }
            if (!string.IsNullOrEmpty(categoryId))
            {
                var c=getCurrentCategory(categoryId);
                ViewBag.Category = c;
                Array.Resize(ref breadcrumbs, breadcrumbs.Length + 1);
                breadcrumbs[breadcrumbs.Length - 1] = new SxVMBreadcrumb { Title = c.Title, Url = null };
            }

            ViewBag.Breadcrumbs = breadcrumbs;


            var filter = new SxFilter(page, _pageSize) {
                WhereExpressionObject = new VMAphorism { CategoryId = categoryId, Author = new VMAuthorAphorism { TitleUrl = author } },
                OnlyShow = true
            };
            filter.PagerInfo.PagerSize = 5;
            var viewModel = _repo.Read(filter);

            ViewBag.PagerInfo = filter.PagerInfo;
            
            return View(viewModel);
        }