コード例 #1
0
        public IActionResult GetAllPaginatedWithDetail([FromQuery] GetAllPaginatedRequestModel requestModel, [FromHeader] string displayLanguage)
        {
            var responseModel = new ApiResponseModel <PaginatedList <MoveWithDetail> >();

            responseModel.DisplayLanguage = displayLanguage;

            try
            {
                var searchFilter = new MoveSearchFilter();
                searchFilter.CurrentPage           = requestModel.CurrentPage.HasValue ? requestModel.CurrentPage.Value : 1;
                searchFilter.PageSize              = requestModel.PageSize.HasValue ? requestModel.PageSize.Value : 10;
                searchFilter.SortOn                = requestModel.SortOn;
                searchFilter.SortDirection         = requestModel.SortDirection;
                searchFilter.Filter_Appliance_Name = requestModel.Appliance_Name;
                searchFilter.Filter_Lab_Name       = requestModel.Lab_Name;
                responseModel.Data = _moveService.GetAllPaginatedWithDetailBySearchFilter(searchFilter);

                responseModel.ResultStatusCode    = ResultStatusCodeStatic.Success;
                responseModel.ResultStatusMessage = "Success";
                return(Ok(responseModel));
            }
            catch (Exception ex)
            {
                responseModel.ResultStatusCode    = ResultStatusCodeStatic.Error;
                responseModel.ResultStatusMessage = ex.Message;
                responseModel.Data = null;
                return(StatusCode(StatusCodes.Status500InternalServerError, responseModel));
            }
        }
コード例 #2
0
        public ActionResult List(ListViewModel model)
        {
            // filter bilgilerinin default boş değerlerle doldurulması sağlanıyor
            if (model.Filter == null)
            {
                model.Filter = new ListFilterViewModel();
            }

            if (!model.CurrentPage.HasValue)
            {
                model.CurrentPage = 1;
            }

            if (!model.PageSize.HasValue)
            {
                model.PageSize = 10;
            }

            MoveSearchFilter searchFilter = new MoveSearchFilter();

            searchFilter.CurrentPage           = model.CurrentPage.HasValue ? model.CurrentPage.Value : 1;
            searchFilter.PageSize              = model.PageSize.HasValue ? model.PageSize.Value : 10;
            searchFilter.SortOn                = model.SortOn;
            searchFilter.SortDirection         = model.SortDirection;
            searchFilter.Filter_Appliance_Name = model.Filter.Filter_Appliance_Name;
            searchFilter.Filter_Lab_Name       = model.Filter.Filter_Lab_Name;
            model.CurrentLanguageTwoChar       = SessionHelper.CurrentLanguageTwoChar;

            var apiResponseModel = _moveService.GetAllPaginatedWithDetailBySearchFilter(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar, searchFilter);

            if (apiResponseModel.ResultStatusCode == ResultStatusCodeStatic.Success)
            {
                model.DataList = apiResponseModel.Data;
            }
            else
            {
                ViewBag.ErrorMessage     = apiResponseModel.ResultStatusMessage;
                ViewBag.ErrorMessageList = apiResponseModel.ErrorMessageList;
                return(View(model));
            }
            return(View(model));
        }
コード例 #3
0
        public ActionResult List(string errorMessage = default)
        {
            if (!string.IsNullOrEmpty(errorMessage))
            {
                ViewBag.ErrorMessage = errorMessage;
            }

            ListViewModel model = new ListViewModel();

            model.Filter      = new ListFilterViewModel();
            model.CurrentPage = 1;
            model.PageSize    = 10;
            MoveSearchFilter searchFilter = new MoveSearchFilter();

            searchFilter.CurrentPage           = model.CurrentPage.HasValue ? model.CurrentPage.Value : 1;
            searchFilter.PageSize              = model.PageSize.HasValue ? model.PageSize.Value : 10;
            searchFilter.SortOn                = model.SortOn;
            searchFilter.SortDirection         = model.SortDirection;
            searchFilter.Filter_Appliance_Name = model.Filter.Filter_Appliance_Name;
            searchFilter.Filter_Lab_Name       = model.Filter.Filter_Lab_Name;
            model.CurrentLanguageTwoChar       = SessionHelper.CurrentLanguageTwoChar;

            var apiResponseModel = _moveService.GetAllPaginatedWithDetailBySearchFilter(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar, searchFilter);

            if (apiResponseModel.ResultStatusCode == ResultStatusCodeStatic.Success)
            {
                model.DataList = apiResponseModel.Data;
            }
            else
            {
                ViewBag.ErrorMessage     = apiResponseModel.ResultStatusMessage;
                ViewBag.ErrorMessageList = apiResponseModel.ErrorMessageList;
                return(View(model));
            }
            return(View(model));
        }
コード例 #4
0
        public PaginatedList <MoveWithDetail> GetAllPaginatedWithDetailBySearchFilter(MoveSearchFilter searchFilter)
        {
            PaginatedList <MoveWithDetail> resultList = new PaginatedList <MoveWithDetail>(new List <MoveWithDetail>(), 0, searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection);

            using (AppDBContext dbContext = new AppDBContext(_config))
            {
                var query = from m in dbContext.Move
                            from a in dbContext.Appliance.Where(x => x.Id == m.ApplianceId).DefaultIfEmpty()
                            from l in dbContext.Lab.Where(x => x.Id == m.LabId).DefaultIfEmpty()
                            select new MoveWithDetail()
                {
                    Id           = m.Id,
                    LabId        = m.LabId,
                    ApplianceId  = m.ApplianceId,
                    EntranceDate = m.EntranceDate,
                    ExitDate     = m.ExitDate,

                    Appliance_Name = a == null ? String.Empty : a.Name,
                    Lab_Name       = l == null ? String.Empty : l.Name
                };

                // filtering
                if (!string.IsNullOrEmpty(searchFilter.Filter_Appliance_Name))
                {
                    query = query.Where(r => r.Appliance_Name.Contains(searchFilter.Filter_Appliance_Name));
                }

                if (!string.IsNullOrEmpty(searchFilter.Filter_Lab_Name))
                {
                    query = query.Where(r => r.Lab_Name.Contains(searchFilter.Filter_Lab_Name));
                }

                // asnotracking
                query = query.AsNoTracking();

                //total count
                var totalCount = query.Count();

                //sorting
                if (!string.IsNullOrEmpty(searchFilter.SortOn))
                {
                    // using System.Linq.Dynamic.Core; nuget paketi ve namespace eklenmelidir, dynamic order by yapmak icindir
                    query = query.OrderBy(searchFilter.SortOn + " " + searchFilter.SortDirection.ToUpper());
                }
                else
                {
                    // deefault sıralama vermek gerekiyor yoksa skip metodu hata veriyor ef 6'da -- 28.10.2019 15:40
                    // https://stackoverflow.com/questions/3437178/the-method-skip-is-only-supported-for-sorted-input-in-linq-to-entities
                    query = query.OrderBy(r => r.Id);
                }

                //paging
                query = query.Skip((searchFilter.CurrentPage - 1) * searchFilter.PageSize).Take(searchFilter.PageSize);


                resultList = new PaginatedList <MoveWithDetail>(
                    query.ToList(),
                    totalCount,
                    searchFilter.CurrentPage,
                    searchFilter.PageSize,
                    searchFilter.SortOn,
                    searchFilter.SortDirection
                    );
            }

            return(resultList);
        }
コード例 #5
0
        //api ile bağlandıgımız servisler
        public ApiResponseModel <PaginatedList <MoveWithDetail> > GetAllPaginatedWithDetailBySearchFilter(string userToken, string displayLanguage, MoveSearchFilter searchFilter)
        {
            ApiResponseModel <PaginatedList <MoveWithDetail> > result = new ApiResponseModel <PaginatedList <MoveWithDetail> >()
            {
                Data = new PaginatedList <MoveWithDetail>(new List <MoveWithDetail>(), 0, searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection)
            };

            //portal api'den çekme işlemi
            using (HttpClient httpClient = new HttpClient())
            {
                httpClient.BaseAddress = new Uri(ConfigHelper.ApiUrl);
                httpClient.DefaultRequestHeaders.Accept.Clear();
                httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", userToken);
                httpClient.DefaultRequestHeaders.Add("DisplayLanguage", displayLanguage);
                HttpResponseMessage response = httpClient.GetAsync(string.Format("v1/Move?CurrentPage={0}&PageSize={1}&SortOn={2}&SortDirection={3}&Appliance_Name={4}&Lab_Name",
                                                                                 searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection, searchFilter.Filter_Appliance_Name, searchFilter.Filter_Lab_Name)).Result;
                result = response.Content.ReadAsJsonAsync <ApiResponseModel <PaginatedList <MoveWithDetail> > >().Result;
            }
            return(result);
        }