public static void AddPaginationHeader(this HttpResponse response, int currentPage, int itemsPerPage, int totalitems, int totalPages) { var paginationHeader = new PaginationHeader(currentPage, itemsPerPage, totalitems, totalPages); var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; response.Headers.Add("Pagination", JsonSerializer.Serialize(paginationHeader, options)); //custom header response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); //pentru a face headerul avalabile trb sa adaugam un clause header }
public static void AddPagination(this HttpResponse response, int currentPage, int itemsPerPage, int totalItems, int totalPages) { var paginationHeader = new PaginationHeader(currentPage, itemsPerPage, totalItems, totalPages); var calmelCaseFormatter = new JsonSerializerSettings(); calmelCaseFormatter.ContractResolver = new CamelCasePropertyNamesContractResolver(); response.Headers.Add("Pagination", JsonConvert.SerializeObject(paginationHeader, calmelCaseFormatter)); response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); }
public static void AddPaginationHeader(this HttpResponse response, int currentPage, int itemsPerPage, int totalItems, int totalPages) { var paginationHeader = new PaginationHeader(currentPage, itemsPerPage, totalItems, totalPages); var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; response.Headers.Add("Pagination", JsonSerializer.Serialize(paginationHeader, options)); response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); }
public async Task <IHttpActionResult> Gettransactions([FromUri] TransParams transParams) { var trans = await _Repo.GetTransaction(transParams); var result = _Mapper.Map <IEnumerable <TransactionDto> >(trans); var paginationHeader = new PaginationHeader(trans.CurrentPage, trans.PageSize, trans.TotalCount, trans.TotalPages); var camelCaseFormatter = new JsonSerializerSettings(); camelCaseFormatter.ContractResolver = new CamelCasePropertyNamesContractResolver(); Request.Properties["Pagination"] = JsonConvert.SerializeObject(paginationHeader, camelCaseFormatter); return(Ok(_Mapper.Map <IEnumerable <TransactionDto> >(trans))); }
public ResultOfType <PraticienResultModel> GetPraticiens(int take = 0, int skip = 0) { try { string local = _ressourceManager.LocalIPAddress(); string l = local; Logger.LogInfo("Get Praticiens With Take And Skip Parameters avec @IP : Start."); PrintSundays(); var totalCount = _praticienRepository.GetCount(); var totalPages = (take != 0) ? (int)Math.Ceiling((double)totalCount / take) : 0; var paginationHeader = new PaginationHeader { TotalCount = totalCount, TotalPages = totalPages }; var praticiens = (take == 0 && skip == 0) ? _praticienRepository .GetAll() .OrderBy(a => a.CreationDate) .ToList() : _praticienRepository .GetAll() .OrderBy(a => a.CreationDate) .Skip(skip) .Take(take) .ToList(); var data = new PraticienResultModel(); praticiens.ForEach(praticien => { var dataModel = PraticienWrapper.ConvertPraticienEntityToDataModel(praticien); data.Items.Add(dataModel); }); data.PaginationHeader = paginationHeader; Logger.LogInfo("Get Praticiens With Take And Skip Parameters : End --- Status : OK"); return(new Return <PraticienResultModel>().OK().WithResult(data)); } catch (Exception exception) { Logger.LogError("Get Praticiens Exception", exception); throw; } }
public static void AddPaginationHeader(this HttpResponse response, int currentPage, int itemsPerPage, int totalItems, int totalPages) { var paginationHeader = new PaginationHeader(currentPage, itemsPerPage, totalItems, totalPages); var options = new JsonSerializerOptions { PropertyNamingPolicy = JsonNamingPolicy.CamelCase }; response.Headers.Add("Pagination", JsonSerializer.Serialize(paginationHeader, options)); /*To allow our cors policy to pass header in respose, we have to specify "Access-Control-Expose-Header" exactly same way, if you do spelling mistake then it will cause error. */ response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); }
public static void AddPagination( this HttpResponse response, UserParams userParams) { var paginatinoHeader = new PaginationHeader(userParams.PageNumber, userParams.PageSize, userParams.Count, userParams.TotalPages); // Serialize the pagination header in JSON format in Camel Case. var camelCaseFormatter = new JsonSerializerSettings(); camelCaseFormatter.ContractResolver = new CamelCasePropertyNamesContractResolver(); response.Headers.Add("Pagination", JsonConvert.SerializeObject( paginatinoHeader, camelCaseFormatter)); // The "Pagination" header is not exposed to client by default response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); }
public ResultOfType <PatientResultModel> GetPatients(int take = 0, int skip = 0) { try { Logger.LogInfo("Get Patients With Take And Skip Parameters : Start."); var totalCount = _patientRepository.GetCount(); var totalPages = (take != 0) ? (int)Math.Ceiling((double)totalCount / take) : 0; var paginationHeader = new PaginationHeader { TotalCount = totalCount, TotalPages = totalPages }; var patients = (take == 0 && skip == 0) ? _patientRepository .GetAll() .OrderBy(a => a.CreationDate) .ToList() : _patientRepository .GetAll() .OrderBy(a => a.CreationDate) .Skip(skip) .Take(take) .ToList(); var data = new PatientResultModel(); patients.ForEach(patient => { var dataModel = PatientWrapper.ConvertPatientEntityToDataModel(patient); data.Items.Add(dataModel); }); data.PaginationHeader = paginationHeader; Logger.LogInfo("Get Patients With Take And Skip Parameters : End --- Status : OK"); return(new Return <PatientResultModel>().OK().WithResult(data)); } catch (Exception exception) { Logger.LogError("Get Patients Exception", exception); throw; } }
/// <summary> /// Pagination header /// </summary> /// <param name="response">Response http</param> /// <param name="currentPage">Current page</param> /// <param name="itemsPerPage">Items per pages</param> /// <param name="totalItems">Total items</param> /// <param name="totalPages">Total pages</param> public static void AddPagination(this HttpResponse response, int currentPage, int itemsPerPage, int totalItems, int totalPages) { var paginationHeader = new PaginationHeader { CurrentPage = currentPage, ItemsPerPage = itemsPerPage, TotalItems = totalItems, TotalPages = totalPages }; // This 2 line for .pagination near .result else is just for header var camelCaseFormatter = new JsonSerializerSettings(); camelCaseFormatter.ContractResolver = new CamelCasePropertyNamesContractResolver(); // Fin comment response.Headers.Add("Pagination", JsonConvert.SerializeObject(paginationHeader, camelCaseFormatter)); response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); }
public IActionResult GetComments(int userId, int blogId, int postId, [FromQuery] CommentsResourceParameters commentsResourceParameters, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { if (!_weblogDataRepository.UserExists(userId) || !_weblogDataRepository.BlogExists(blogId) || !_weblogDataRepository.PostExists(postId)) { return(NotFound()); } var commentEntities = _weblogDataRepository.GetComments(postId, commentsResourceParameters); var commentsToReturn = _mapper.Map <IEnumerable <CommentDto> >(commentEntities); Response.Headers.Add(PaginationHeader <Comment> .Get(commentEntities)); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(Ok(commentsToReturn)); } var commentsWithLinks = commentsToReturn.Select(comment => { var links = CreateLinksForComment(userId, blogId, postId, comment.CommentId, comment.UserId); return(new CommentDtoWithLinks(comment, links)); }); var collectionToReturn = new { comments = commentsWithLinks, links = LinksForCollection.Create( CreateCommentsResourceUri, new int[] { userId, blogId, postId }, commentsResourceParameters, commentEntities.HasPrevious, commentEntities.HasNext) }; return(Ok(collectionToReturn)); }
public IActionResult GetAllPostsForUser(int userId, [FromQuery] PostsResourceParameters postsResourceParameters, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { if (!_weblogDataRepository.UserExists(userId)) { return(NotFound()); } var postEntities = _weblogDataRepository.GetAllPostsForUser(userId, postsResourceParameters); var postsToReturn = _mapper.Map <IEnumerable <PostDto> >(postEntities); Response.Headers.Add(PaginationHeader <Post> .Get(postEntities)); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(Ok(postsToReturn)); } var postsWithLinks = postsToReturn.Select(post => { var links = PostsController.CreateLinksForPost( Url, userId, post.BlogId, post.PostId); return(new PostDtoWithLinks(post, links)); }); var collectionToReturn = new { posts = postsWithLinks, links = LinksForCollection.Create( CreatePostsResourceUri, Array.Empty <int>(), postsResourceParameters, postEntities.HasPrevious, postEntities.HasNext) }; return(Ok(collectionToReturn)); }
//public ResultOfType<bool> CreneauHasRendezVous(string heureDebut, string heureFin, string currentDate, string emailPraticien) //{ // Logger.LogInfo("Get Creneaux With Take And Skip Parameters : Start."); // //Récupérer par praticien , heure début et date donné // var creneau = // _creneauxRepository.GetAll() // .FirstOrDefault(p => p.Praticien.Cin.Equals(praticien) && p.HeureDebut.Equals(heureDebut) && p.CurrentDate.Equals(currentDate)); //} public ResultOfType <CreneauResultModel> GetCreneauxByPraticien(string email, int take = 0, int skip = 0) { try { Logger.LogInfo("Get Creneaux With Take And Skip Parameters : Start."); var totalCount = _praticienRepository.GetCount(); var totalPages = (take != 0) ? (int)Math.Ceiling((double)totalCount / take) : 0; var paginationHeader = new PaginationHeader { TotalCount = totalCount, TotalPages = totalPages }; var creneaux = (take == 0 && skip == 0) ? _creneauxRepository .GetAll().Where(p => p.Praticien.Email == email) .ToList() : _creneauxRepository .GetAll().Where(p => p.Praticien.Email == email) .Skip(skip) .Take(take) .ToList(); var data = new CreneauResultModel(); creneaux.ForEach(creneau => { var dataModel = CreneauWrapper.ConvertCreneauEntityToDataModel(creneau); data.Items.Add(dataModel); }); data.PaginationHeader = paginationHeader; Logger.LogInfo("Get Creneaux by praticien With Take And Skip Parameters : End --- Status : OK"); return(new Return <CreneauResultModel>().OK().WithResult(data)); } catch (Exception exception) { Logger.LogError("Get Praticiens Exception", exception); throw; } }
public IActionResult GetBlogs(int userId, [FromQuery] BlogsResourceParameters blogsResourceParameters, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { if (!_weblogDataRepository.UserExists(userId)) { return(NotFound()); } var blogEntities = _weblogDataRepository.GetBlogs(userId, blogsResourceParameters); var blogsToReturn = _mapper.Map <IEnumerable <BlogDto> >(blogEntities); Response.Headers.Add(PaginationHeader <Blog> .Get(blogEntities)); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(Ok(blogsToReturn)); } var blogsWithLinks = blogsToReturn.Select(blog => { var links = CreateLinksForBlog(Url, userId, blog.BlogId); return(new BlogDtoWithLinks(blog, links)); }); var collectionToReturn = new { blogs = blogsWithLinks, links = LinksForCollection.Create( CreateBlogsResourceUri, new int[] { userId }, blogsResourceParameters, blogEntities.HasPrevious, blogEntities.HasNext) }; return(Ok(collectionToReturn)); }
public async Task <IActionResult> GetUsers([FromQuery] UserParams userParams) { // List<User> a = new List<User>(); // Console.WriteLine(a.Count()); // if(HttpContext.Session.GetInt32("id") != null) // { // var i = HttpContext.Session.GetInt32("id"); // return Ok(i); // } DatingRepository _rrepo = new DatingRepository(this._options); var currentUserId = int.Parse(HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value); // var userFromRepo = await _repo.GetUser(currentUserId); userParams.UserId = currentUserId; // if(string.IsNullOrEmpty(userParams.Gender)) // { // userParams.Gender = userFromRepo.Gender == "male" ? "female" : "male"; // } var users = await _rrepo.GetUsers(userParams); var userToReturn = _mapper.Map <IEnumerable <UserForListDto> >(users.res); // var a = userToReturn.AsQueryable().OrderBy(u => u.Gender); Response.AddPagination(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPage); var page = new PaginationHeader(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPage); // return Ok(userToReturn); return(Ok(new { page, userToReturn })); }
public IActionResult GetUsers( [FromQuery] UsersResourceParameters usersResourceParameters, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { var userEntities = _weblogDataRepository.GetUsers(usersResourceParameters); var usersToReturn = _mapper.Map <IEnumerable <UserDto> >(userEntities); Response.Headers.Add(PaginationHeader <User> .Get(userEntities)); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(Ok(usersToReturn)); } var usersWithLinks = usersToReturn.Select(user => { var links = CreateLinksForUser(user.UserId); return(new UserDtoWithLinks(user, links)); }); var resourceToReturn = new { users = usersWithLinks, links = LinksForCollection.Create(CreateUsersResourceUri, Array.Empty <int>(), usersResourceParameters, userEntities.HasPrevious, userEntities.HasNext) }; return(Ok(resourceToReturn)); }
public ResultOfType <PraticienResultModel> GetPraticiensOpenSearch(string q, int take = 0, int skip = 0) { try { Logger.LogInfo("GetPraticiensOpenSearch : Start."); if (string.IsNullOrWhiteSpace(q)) { return(new Return <PraticienResultModel>() .Error() .AsValidationFailure(null, "Vous n'avez rien introduit pour faire la recherche.", "q") .WithDefaultResult()); } q = Helpers.Common.ValidateQueryString(q); var result = _searchEngine.Search(q); var data = new PraticienResultModel(); var totalCount = result.Count(); var totalPages = (take != 0) ? (int)Math.Ceiling((double)totalCount / take) : 0; var paginationHeader = new PaginationHeader { TotalCount = totalCount, TotalPages = totalPages }; if (take != 0 || skip != 0) { result = result.OrderBy(r => r.Cin).Skip(skip).Take(take).ToList(); } result.ForEach(praticien => { string logLat = ""; var praticienData = new PraticienResultDataModel { Cin = praticien.Cin ?? "", Adresse = praticien.Adresse ?? "", Conventionne = praticien.Conventionne ?? "", Cursus = praticien.Cursus ?? "", Delegation = praticien.Delegation ?? "", Diplomes = praticien.Diplomes ?? "", Email = praticien.Email ?? "", EstActive = praticien.EstActive ?? "", Fax = praticien.Fax ?? "", Formations = praticien.Formations ?? "", Gouvernerat = praticien.Gouvernerat ?? "", InformationsPratique = praticien.InformationsPratique ?? "", LanguesParles = praticien.LanguesParles ?? "", MoyensPaiement = praticien.MoyensPaiement ?? "", NomPrenom = praticien.NomPrenom ?? "", ParcoursHospitalier = praticien.ParcoursHospitalier ?? "", Password = praticien.Password ?? "", PresentationCabinet = praticien.PresentationCabinet ?? "", PrixConsultation = praticien.PrixConsultation ?? "", Publication = praticien.Publication ?? "", ReseauxSociaux = praticien.ReseauxSociaux ?? "", Telephone = praticien.Telephone ?? "", Specialite = praticien.Specialite, }; data.Items.Add(praticienData); data.PaginationHeader = paginationHeader; }); Logger.LogInfo(string.Format("GetPraticiensOpenSearch : End .")); return(new Return <PraticienResultModel>().OK().WithResult(data)); } catch (Exception ex) { Logger.LogInfo(string.Format("GetPraticiensOpenSearch : End with Error --- : {0}", ex.Message)); throw; } }
/// <summary> /// Adds a pagination header. /// </summary> /// /// <param name="response">The response.</param> /// <param name="header">The header.</param> public static void AddPaginationHeader(this HttpResponse response, PaginationHeader header) { response.Headers.Add("Pagination", JsonConvert.SerializeObject(header, JsonFormatter)); response.Headers.Add("Access-Control-Expose-Headers", "Pagination"); }
public ResultOfType <PatientResultModel> GetPatientsParPraticien(string praticien, int take = 0, int skip = 0) { try { Logger.LogInfo("GetPatientsParPraticien : Start ."); if (string.IsNullOrEmpty(praticien)) { return(new Return <PatientResultModel>() .Error().AsValidationFailure(null, "Veuillez introduire votre praticien Cin.", "praticien") .WithDefaultResult()); } var totalCount = _rendezVousRepository.GetCount(); var totalPages = (take != 0) ? (int)Math.Ceiling((double)totalCount / take) : 0; var paginationHeader = new PaginationHeader { TotalCount = totalCount, TotalPages = totalPages }; var patients = (take == 0 && skip == 0) ? _rendezVousRepository .GetAll() .Where(x => x.Praticien.Email.Equals(praticien)) .Select(x => x.Patient) .ToList() .Distinct() : _rendezVousRepository .GetAll() .Where(x => x.Praticien.Email.Equals(praticien)) .Select(x => x.Patient) .Skip(skip) .Take(take) .Distinct() .ToList(); var data = new PatientResultModel(); patients.ForEach(account => { var patient = _patientRepository.GetAll().FirstOrDefault(p => p.Email.Equals(account.Email)); if (patient != null) { var dataModel = PatientWrapper.ConvertPatientEntityToDataModel(patient); data.Items.Add(dataModel); } else { //le patient peut être un praticien donc on sélectionne même les praticiens var prat = _praticienRepository.GetAll().FirstOrDefault(p => p.Email.Equals(account.Email)); var dataModel = PatientWrapper.ConvertPratientEntityToDataModel(prat); data.Items.Add(dataModel); } }); data.PaginationHeader = paginationHeader; Logger.LogInfo("Get Patients With Take And Skip Parameters : End --- Status : OK"); return(new Return <PatientResultModel>().OK().WithResult(data)); } catch (Exception) { throw; } }
public static PaginationHeader SetPaginationHeader() { var paged = new PaginationHeader(1, 2, 3, 4); return(paged); }
public ResultOfType <PraticienResultModel> SearchForPraticien(string gouvernerat, string specialite, string nomPraticien, int take = 0, int skip = 0) { try { Logger.LogInfo("Search For Praticien With Take And Skip Parameters : Start."); var praticiens = (take == 0 && skip == 0) ? _praticienRepository .GetAll() .OrderBy(a => a.CreationDate) .ToList() : _praticienRepository .GetAll() .OrderBy(a => a.CreationDate) .Skip(skip) .Take(take) .ToList(); if (string.IsNullOrEmpty(gouvernerat) && string.IsNullOrEmpty(specialite) && string.IsNullOrEmpty(nomPraticien)) { //Get aall return(GetPraticiens(take, skip)); } else { if (!string.IsNullOrEmpty(gouvernerat) && !gouvernerat.Equals("undefined")) { praticiens = praticiens.Where(p => p.Gouvernerat.Trim().ToLower().Equals(gouvernerat.Trim().ToLower())).ToList(); } if (!string.IsNullOrEmpty(specialite) && !specialite.Equals("undefined")) { praticiens = praticiens.Where(p => p.Specialite.Trim().ToLower().Equals(specialite.Trim().ToLower())).ToList(); } if (!string.IsNullOrEmpty(nomPraticien) && !nomPraticien.Equals("undefined")) { praticiens = praticiens.Where(p => p.NomPrenom.Trim().ToLower().Contains(nomPraticien.Trim().ToLower())).ToList(); } var totalCount = praticiens.Count; var totalPages = (take != 0) ? (int)Math.Ceiling((double)totalCount / take) : 0; var paginationHeader = new PaginationHeader { TotalCount = totalCount, TotalPages = totalPages }; var data = new PraticienResultModel(); praticiens.ForEach(praticien => { var dataModel = PraticienWrapper.ConvertPraticienEntityToDataModel(praticien); data.Items.Add(dataModel); }); data.PaginationHeader = paginationHeader; Logger.LogInfo("Get Praticiens With Take And Skip Parameters : End --- Status : OK"); return(new Return <PraticienResultModel>().OK().WithResult(data)); } } catch (Exception ex) { throw; } }
public async Task <IActionResult> GetDashboardInfo() { var myAssigned = _ticketUoW .Tickets .Get(x => x.AssignedTo == int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value) && x.StatusId != 3 && x.StatusId != 4) .Include(x => x.Project) .OrderByDescending(x => x.TicketId); var pagedMyAssigned = await PagedList <Tickets> .CreateAsync(myAssigned, 1, 10); var mappedMyAssigned = _mapper.Map <IEnumerable <TicketForDashboardDto> >(pagedMyAssigned); var myAssignedPagination = new PaginationHeader(1, 10, pagedMyAssigned.TotalCount, pagedMyAssigned.TotalPages); var recentTickets = _ticketUoW .Tickets .GetAll() .Include(x => x.Project) .OrderByDescending(x => x.TicketId); var pagedRecentTickets = await PagedList <Tickets> .CreateAsync(recentTickets, 1, 10); var mappedRecentTickets = _mapper.Map <IEnumerable <TicketForDashboardDto> >(pagedRecentTickets); var recentTicketsPagination = new PaginationHeader(1, 10, pagedRecentTickets.TotalCount, pagedRecentTickets.TotalPages); var resolved = _ticketUoW .Tickets .Get(x => x.StatusId == 3 || x.StatusId == 4) .Include(x => x.Project) .OrderByDescending(x => x.TicketId); var pagedResolved = await PagedList <Tickets> .CreateAsync(resolved, 1, 10); var mappedResolved = _mapper.Map <IEnumerable <TicketForDashboardDto> >(pagedResolved); var resolvedPagination = new PaginationHeader(1, 10, pagedResolved.TotalCount, pagedResolved.TotalPages); var timeline = _ticketUoW .Timeline .GetAll() .OrderByDescending(x => x.TimelineId) .Include(x => x.DoneByNavigation); var pagedTimeline = await PagedList <Timeline> .CreateAsync(timeline, 1, 10); var mappedTimeline = _mapper.Map <IEnumerable <TimelineDto> >(pagedTimeline); var timelinePagination = new PaginationHeader(1, 10, pagedTimeline.TotalCount, pagedTimeline.TotalPages); var dashboard = new DashboardDto() { MyAssigned = mappedMyAssigned, MyAssignedPagination = myAssignedPagination, RecentTickets = mappedRecentTickets, RecentTicketsPagination = recentTicketsPagination, Resolved = mappedResolved, ResolvedPagination = resolvedPagination, Timeline = mappedTimeline, TimelinePagination = timelinePagination }; return(Ok(dashboard)); }