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; } BroadcastSearchFilter searchFilter = new BroadcastSearchFilter(); 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_BroadcastTypeId = BroadcastTypeStatic.Announcement; model.Filter.Filter_BroadcastTypeId = BroadcastTypeStatic.Announcement; searchFilter.Filter_TitleEN = model.Filter.Filter_TitleEN; searchFilter.Filter_TitleTR = model.Filter.Filter_TitleTR; if (model.Filter.Filter_ValidationEndDateTime.HasValue) { searchFilter.Filter_ValidationEndDateTimeAsString = model.Filter.Filter_ValidationEndDateTime.Value.ToString("yyyy-MM-dd"); } searchFilter.Filter_IsActive = model.Filter.Filter_IsActive; model.CurrentLanguageTwoChar = SessionHelper.CurrentLanguageTwoChar; // select lists model.FilterIsActiveSelectList = GetIsActiveSelectList(SessionHelper.CurrentLanguageTwoChar); var apiResponseModel = _broadcastService.GetAllPaginatedWithDetailBySearchFilter(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar, searchFilter); if (apiResponseModel.ResultStatusCode == ResultStatusCodeStatic.Success) { model.DataList = apiResponseModel.Data; } else { model.DataList = new Business.Models.PaginatedList <BroadcastWithDetail>(); model.DataList.Items = new List <BroadcastWithDetail>(); ViewBag.ErrorMessage = apiResponseModel.ResultStatusMessage; ViewBag.ErrorMessageList = apiResponseModel.ErrorMessageList; return(View(model)); } return(View(model)); }
public IActionResult GetByBroadcastType(string broadcastType, [FromQuery] GetAllPaginatedWhichIsActiveRequestModel requestModel, [FromHeader] string displayLanguage) { var responseModel = new ApiResponseModel <PaginatedList <BroadcastWithDetail> > { DisplayLanguage = displayLanguage }; // Set broadcast type name by route if (!Enum.TryParse(typeof(BroadcastTypeEnum), broadcastType, true, out var broadcastTypeId)) { responseModel.ResultStatusCode = ResultStatusCodeStatic.Error; responseModel.ResultStatusMessage = $"'{broadcastType}' resource not found"; return(NotFound(responseModel)); } var fileHostBaseUrl = GetFileHostBaseUrlFromCurrentRequest(); // şirket resimlerinin tam url adres bilgisi icin kullanilacak try { var searchFilter = new BroadcastSearchFilter(); 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_BroadcastTypeId = (int)broadcastTypeId; responseModel.Data = _broadcastService.GetAllPaginatedWhichIsActiveWithDetailBySearchFilter(searchFilter); //resimlerin link olarak geriye döndürülmesi if (responseModel.Data != null && responseModel.Data.Items.Count > 0) { foreach (var item in responseModel.Data.Items) { if (item.ImageFilePath != null) { item.ImageFilePath = fileHostBaseUrl + "" + item.ImageFilePath; } } } 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)); } }
public ActionResult List(string errorMessage = "") { if (!string.IsNullOrEmpty(errorMessage)) { ViewBag.ErrorMessage = errorMessage; } ListViewModel model = new ListViewModel(); model.Filter = new ListFilterViewModel(); model.CurrentPage = 1; model.PageSize = 10; BroadcastSearchFilter searchFilter = new BroadcastSearchFilter(); 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; if (model.Filter.Filter_ValidationEndDateTime.HasValue) { searchFilter.Filter_ValidationEndDateTimeAsString = model.Filter.Filter_ValidationEndDateTime.Value.ToString("yyyy-MM-dd"); } searchFilter.Filter_BroadcastTypeId = BroadcastTypeStatic.Announcement; model.Filter.Filter_BroadcastTypeId = BroadcastTypeStatic.Announcement; model.CurrentLanguageTwoChar = SessionHelper.CurrentLanguageTwoChar; // select lists model.FilterIsActiveSelectList = GetIsActiveSelectList(SessionHelper.CurrentLanguageTwoChar); var apiResponseModel = _broadcastService.GetAllPaginatedWithDetailBySearchFilter(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar, searchFilter); if (apiResponseModel.ResultStatusCode == ResultStatusCodeStatic.Success) { model.DataList = apiResponseModel.Data; } else { model.DataList = new Business.Models.PaginatedList <BroadcastWithDetail>(); model.DataList.Items = new List <BroadcastWithDetail>(); ViewBag.ErrorMessage = apiResponseModel.ResultStatusMessage; ViewBag.ErrorMessageList = apiResponseModel.ErrorMessageList; return(View(model)); } return(View(model)); }
public IActionResult GetAllPaginatedWithDetail([FromQuery] GetAllPaginatedRequestModel requestModel, [FromHeader] string displayLanguage) { var responseModel = new ApiResponseModel <PaginatedList <BroadcastWithDetail> > { DisplayLanguage = displayLanguage }; try { var searchFilter = new BroadcastSearchFilter { CurrentPage = requestModel.CurrentPage ?? 1, PageSize = requestModel.PageSize ?? 10, SortOn = requestModel.SortOn, SortDirection = requestModel.SortDirection, Filter_BroadcastTypeId = requestModel.BroadcastTypeId, Filter_TitleTR = requestModel.TitleTR, Filter_TitleEN = requestModel.TitleEN, Filter_IsActive = requestModel.IsActive, }; //tarihe göre filitreleme istenildiğinde formatlı şekilde tarih bilgisi alınması işlevi if (!string.IsNullOrEmpty(requestModel.ValidationEndDateTime)) { if (DateTime.TryParseExact(requestModel.ValidationEndDateTime, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out var endDate)) { searchFilter.Filter_ValidationEndDateTime = endDate; } } responseModel.Data = _broadcastService.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)); } }
public PaginatedList <BroadcastWithDetail> GetAllPaginatedWithDetailBySearchFilter(BroadcastSearchFilter searchFilter) { PaginatedList <BroadcastWithDetail> resultList = new PaginatedList <BroadcastWithDetail>(new List <BroadcastWithDetail>(), 0, searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection); using (AppDBContext dbContext = new AppDBContext(_config)) { var query = from b in dbContext.Broadcast from bt in dbContext.BroadcastType.Where(x => x.Id == b.BroadcastTypeId).DefaultIfEmpty() select new BroadcastWithDetail() { Id = b.Id, TitleTR = b.TitleTR, TitleEN = b.TitleEN, DescriptionTR = b.DescriptionTR, DescriptionEN = b.DescriptionEN, ImageFilePath = b.ImageFilePath, VideoFileUrl = b.VideoFileUrl, ValidationEndDateTime = b.ValidationEndDateTime, IsActive = b.IsActive, CreatedBy = b.CreatedBy, CreatedDateTime = b.CreatedDateTime, ModifiedBy = b.ModifiedBy, ModifiedDateTime = b.ModifiedDateTime, BroadcastTypeId = b.BroadcastTypeId, BroadcastType_NameTR = bt == null ? String.Empty : bt.NameTR, BroadcastType_NameEN = bt == null ? String.Empty : bt.NameEN, }; // filtering if (searchFilter.Filter_BroadcastTypeId.HasValue) { query = query.Where(r => r.BroadcastTypeId == searchFilter.Filter_BroadcastTypeId.Value); } if (!string.IsNullOrEmpty(searchFilter.Filter_TitleTR)) { query = query.Where(r => r.TitleTR.Contains(searchFilter.Filter_TitleTR)); } if (!string.IsNullOrEmpty(searchFilter.Filter_TitleEN)) { query = query.Where(r => r.TitleEN.Contains(searchFilter.Filter_TitleEN)); } if (searchFilter.Filter_IsActive.HasValue) { bool _isActive = searchFilter.Filter_IsActive.Value == 1 ? true : false; query = query.Where(r => r.IsActive == _isActive); } if (searchFilter.Filter_ValidationEndDateTime.HasValue) { query = query.Where(r => r.ValidationEndDateTime.Date == searchFilter.Filter_ValidationEndDateTime.Value.Date); } // 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.BroadcastStatusId); query = query.OrderByDescending(r => r.Id); } //paging query = query.Skip((searchFilter.CurrentPage - 1) * searchFilter.PageSize).Take(searchFilter.PageSize); resultList = new PaginatedList <BroadcastWithDetail>( query.ToList(), totalCount, searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection ); } return(resultList); }
public ApiResponseModel <PaginatedList <BroadcastWithDetail> > GetAllPaginatedWithDetailBySearchFilter(string userToken, string displayLanguage, BroadcastSearchFilter searchFilter) { ApiResponseModel <PaginatedList <BroadcastWithDetail> > result = new ApiResponseModel <PaginatedList <BroadcastWithDetail> >() { Data = new PaginatedList <BroadcastWithDetail>(new List <BroadcastWithDetail>(), 0, searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection) }; //todo: portal api'den çekme işlemi olacak 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/Broadcasts?CurrentPage={0}&PageSize={1}&SortOn={2}&SortDirection={3}&BroadcastTypeId={4}&TitleTR={5}&TitleEN={6}&IsActive={7}&ValidationEndDateTime={8}", searchFilter.CurrentPage, searchFilter.PageSize, searchFilter.SortOn, searchFilter.SortDirection, searchFilter.Filter_BroadcastTypeId, searchFilter.Filter_TitleTR, searchFilter.Filter_TitleEN, searchFilter.Filter_IsActive, searchFilter.Filter_ValidationEndDateTimeAsString)).Result; result = response.Content.ReadAsJsonAsync <ApiResponseModel <PaginatedList <BroadcastWithDetail> > >().Result; } return(result); }