Пример #1
0
        public ActionResult PositionSearch(int?SearchType, int?TypeId, DateTime?ReportForTime)
        {
            var model = new PositionSearchModel();

            if (Request.Form.Count == 0)
            {
                PopulatePositionSearchListItems(model);
                return(View(model));
            }

            var criteria = new PositionSearchCriteria()
            {
                ReportForTime = ReportForTime
            };

            if (TypeId.HasValue)
            {
                var searchType = (PositionSearchType)SearchType.Value;
                switch (searchType)
                {
                case PositionSearchType.Region:
                    criteria.RegionId = TypeId;
                    break;

                case PositionSearchType.Branch:
                    criteria.BranchId = TypeId;
                    break;

                case PositionSearchType.Receiver:
                    criteria.ReceiverId = TypeId;
                    break;

                case PositionSearchType.Position:
                    criteria.PositionId = TypeId;
                    break;

                default:
                    throw new ArgumentException("Invalid SearchType " + SearchType.Value);
                }
            }

            var list = _dao.GetPositionSearchReport(criteria);

            model.ReportItems = list;
            if (Request.IsAjaxRequest())
            {
                return(PartialView("PositionSearchList", model));
            }
            else
            {
                PopulatePositionSearchListItems(model);
            }
            return(View(model));
        }
Пример #2
0
        public List <PositionSearchReportItem> GetPositionSearchReport(PositionSearchCriteria criteria)
        {
            var    paramNames   = new List <string>();
            var    paramObjects = new List <SqlParameter>();
            int    i            = 0;
            string p;

            if (criteria.RegionId.HasValue)
            {
                p = "@p" + i++.ToString();
                paramNames.Add("@regionId = " + p);
                paramObjects.Add(new SqlParameter(p, criteria.RegionId.Value));
            }
            if (criteria.BranchId.HasValue)
            {
                p = "@p" + i++.ToString();
                paramNames.Add("@branchId = " + p);
                paramObjects.Add(new SqlParameter(p, criteria.BranchId.Value));
            }
            if (criteria.ReceiverId.HasValue)
            {
                p = "@p" + i++.ToString();
                paramNames.Add("@receiverId = " + p);
                paramObjects.Add(new SqlParameter(p, criteria.ReceiverId.Value));
            }
            if (criteria.PositionId.HasValue)
            {
                p = "@p" + i++.ToString();
                paramNames.Add("@positionId = " + p);
                paramObjects.Add(new SqlParameter(p, criteria.PositionId.Value));
            }
            if (criteria.ReportForTime.HasValue)
            {
                p = "@p" + i++.ToString();
                paramNames.Add("@forTime = " + p);
                paramObjects.Add(new SqlParameter(p, criteria.ReportForTime.Value));
            }

            var query = context.Database.SqlQuery <PositionSearchReportItem>("spPositionSearch " + string.Join(", ", paramNames.ToArray()), paramObjects.ToArray());
            var list  = query.ToList();

            //Assign indexes
            int index = 1;

            list.ForEach(x => x.Index = index++);

            return(list);
        }