public async Task <PagedResponse <IEnumerable <Entity> > > Handle(GetPositionsQuery request, CancellationToken cancellationToken) { var validFilter = request; var pagination = request; //filtered fields security if (!string.IsNullOrEmpty(validFilter.Fields)) { //limit to fields in view model validFilter.Fields = _modelHelper.ValidateModelFields <GetPositionsViewModel>(validFilter.Fields); } if (string.IsNullOrEmpty(validFilter.Fields)) { //default fields from view model validFilter.Fields = _modelHelper.GetModelFields <GetPositionsViewModel>(); } // query based on filter var entityPositions = await _positionRepository.GetPagedPositionReponseAsync(validFilter); var data = entityPositions.data; RecordsCount recordCount = entityPositions.recordsCount; // response wrapper return(new PagedResponse <IEnumerable <Entity> >(data, validFilter.PageNumber, validFilter.PageSize, recordCount)); }
public async Task <(IEnumerable <Entity> data, RecordsCount recordsCount)> GetPagedPositionReponseAsync(GetPositionsQuery requestParameter) { var positionNumber = requestParameter.PositionNumber; var positionTitle = requestParameter.PositionTitle; var pageNumber = requestParameter.PageNumber; var pageSize = requestParameter.PageSize; var orderBy = requestParameter.OrderBy; var fields = requestParameter.Fields; int recordsTotal, recordsFiltered; // Setup IQueryable var result = _positions .AsNoTracking() .AsExpandable(); // Count records total recordsTotal = await result.CountAsync(); // filter data FilterByColumn(ref result, positionNumber, positionTitle); // Count records after filter recordsFiltered = await result.CountAsync(); //set Record counts var recordsCount = new RecordsCount { RecordsFiltered = recordsFiltered, RecordsTotal = recordsTotal }; // set order by if (!string.IsNullOrWhiteSpace(orderBy)) { result = result.OrderBy(orderBy); } // select columns if (!string.IsNullOrWhiteSpace(fields)) { result = result.Select <Position>("new(" + fields + ")"); } // paging result = result .Skip((pageNumber - 1) * pageSize) .Take(pageSize); // retrieve data to list var resultData = await result.ToListAsync(); // shape data var shapeData = _dataShaper.ShapeData(resultData, fields); return(shapeData, recordsCount); }
public override int GetHashCode() { var hashCode = 152924670; hashCode = hashCode * -1521134295 + base.GetHashCode(); hashCode = hashCode * -1521134295 + RecordsCount.GetHashCode(); hashCode = hashCode * -1521134295 + headerField.GetHashCode(); return(hashCode); }
public PagedDataTableResponse(T data, int pageNumber, RecordsCount recordsCount) { this.Draw = pageNumber; this.RecordsFiltered = recordsCount.RecordsFiltered; this.RecordsTotal = recordsCount.RecordsTotal; this.Data = data; this.Message = null; this.Succeeded = true; this.Errors = null; }
public async Task <PagedDataTableResponse <IEnumerable <Entity> > > Handle(PagedPositionsQuery request, CancellationToken cancellationToken) { var validFilter = new GetPositionsQuery(); // Draw map to PageNumber validFilter.PageNumber = (request.Start / request.Length) + 1; // Length map to PageSize validFilter.PageSize = request.Length; // Map order > OrderBy var colOrder = request.Order[0]; switch (colOrder.Column) { case 0: validFilter.OrderBy = colOrder.Dir == "asc" ? "PositionNumber" : "PositionNumber DESC"; break; case 1: validFilter.OrderBy = colOrder.Dir == "asc" ? "PositionTitle" : "PositionTitle DESC"; break; case 2: validFilter.OrderBy = colOrder.Dir == "asc" ? "PositionDescription" : "PositionDescription DESC"; break; } // Map Search > searchable columns if (!string.IsNullOrEmpty(request.Search.Value)) { //limit to fields in view model validFilter.PositionNumber = request.Search.Value; validFilter.PositionTitle = request.Search.Value; } if (string.IsNullOrEmpty(validFilter.Fields)) { //default fields from view model validFilter.Fields = _modelHelper.GetModelFields <GetPositionsViewModel>(); } // query based on filter var entityPositions = await _positionRepository.GetPagedPositionReponseAsync(validFilter); var data = entityPositions.data; RecordsCount recordCount = entityPositions.recordsCount; // response wrapper return(new PagedDataTableResponse <IEnumerable <Entity> >(data, request.Draw, recordCount)); }
public async Task <(IEnumerable <Entity> data, RecordsCount recordsCount)> GetPagedEmployeeReponseAsync(GetEmployeesQuery requestParameter) { IQueryable <Employee> result; var employeeNumber = requestParameter.EmployeeNumber; var employeeTitle = requestParameter.EmployeeTitle; var pageNumber = requestParameter.PageNumber; var pageSize = requestParameter.PageSize; var orderBy = requestParameter.OrderBy; var fields = requestParameter.Fields; int recordsTotal, recordsFiltered; int seedCount = 1000; result = _mockData.GetEmployees(seedCount) .AsQueryable(); // Count records total recordsTotal = result.Count(); // filter data FilterByColumn(ref result, employeeNumber, employeeTitle); // Count records after filter recordsFiltered = result.Count(); //set Record counts var recordsCount = new RecordsCount { RecordsFiltered = recordsFiltered, RecordsTotal = recordsTotal }; // set order by if (!string.IsNullOrWhiteSpace(orderBy)) { result = result.OrderBy(orderBy); } //limit query fields if (!string.IsNullOrWhiteSpace(fields)) { result = result.Select <Employee>("new(" + fields + ")"); } // paging result = result .Skip((pageNumber - 1) * pageSize) .Take(pageSize); // retrieve data to list // var resultData = await result.ToListAsync(); // Note: Bogus library does not support await for AsQueryable. // Workaround: fake await with Task.Run and use regular ToList var resultData = await Task.Run(() => result.ToList()); // shape data var shapeData = _dataShaper.ShapeData(resultData, fields); return(shapeData, recordsCount); }
internal void StartSync() { LogFileHelper.logList = new ArrayList(); Console.WriteLine(string.Format("[{0}] : Start Sync Approval Letter", DateTime.Now.ToString())); LogFileHelper.logList.Add(string.Format("[{0}] : Start Sync Approval Letter", DateTime.Now.ToString())); RecordsCount SyncCount = default(RecordsCount); // Initialising the variables SyncCount.InsertCount = 0; SyncCount.NoAccountCount = 0; SyncCount.NonMSCCount = 0; SyncCount.SameDateCount = 0; SyncCount.UpdateCount = 0; string FileID = ""; try { //System.Data.DataTable wizardData = this.GetWizardApprovedDate(); //UPDATED 10062016 DataTable wizardData = this.GetFromWizardApprovedDate(); //statusdate //string Filename0 = getFileName(); //DataTable wizardData = GetWizardApprovedDateFromExcelFile(Filename0, "ApprovalDates_10062016"); int totalRecord = wizardData.Rows.Count; Console.WriteLine(string.Format("[{0}] : Total record for Approval Letter Dates is {1}", DateTime.Now.ToString(), totalRecord)); LogFileHelper.logList.Add(string.Format("[{0}] : Total record for Approval Letter Dates is {1}", DateTime.Now.ToString(), totalRecord)); int count = 0; //if (totalRecord > 0) //{ // ExcelFileHelper.GenerateExcelFileApprovalDates(wizardData, DateTime.Now.ToString("dd-MM-yyyy")); //} Guid?MOFApprovalStatus = SyncHelper.GetCodeMasterID("Approval Letter", CodeType.MSCApprovalStatus, true); Guid MOFApprovalStatusCID = new Guid(MOFApprovalStatus.Value.ToString()); foreach (System.Data.DataRow row in wizardData.Rows) { count += 1; FileID = row["RefNumber"].ToString(); FileID = "CS/3/" + FileID; // Field below must be change **************************************** string ApprovalLetterDate = SyncHelper.ConvertStringToDateTime(row["StatusDate"].ToString().Trim(), false).ToString(); //Dim StatusDescription As String = SyncHelper.GetMappingValue(AppConst.CodeType.MSCApprovalStatus, "MOF Approved") if (!string.IsNullOrEmpty(ApprovalLetterDate)) { Guid?accountID = GetAccountIDByFileID(FileID); if (accountID != null) { if (IsNonMSC(accountID.Value)) { SyncCount.NonMSCCount += 1; Console.WriteLine(string.Format("[{0}] {2}/{3} : Skip Non MSC record FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); LogFileHelper.logList.Add(string.Format("[{0}] {2}/{3} : Skip Non MSC record FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); continue; } Guid?MSCStatusHistoryID = GetMSCStatusHistoryID(accountID.Value, MOFApprovalStatusCID); if (MSCStatusHistoryID != null) { if (IsDifferentApprovalDate(MSCStatusHistoryID, ApprovalLetterDate)) { UpdateApprovalLetterDate(accountID.Value, MSCStatusHistoryID.Value, Convert.ToDateTime(ApprovalLetterDate)); SyncCount.UpdateCount += 1; Console.WriteLine(string.Format("[{0}] {2}/{3} : Update MSCStatusHistory FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); LogFileHelper.logList.Add(string.Format("[{0}] {2}/{3} : Update MSCStatusHistory FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); } else { SyncCount.SameDateCount += 1; Console.WriteLine(string.Format("[{0}] {2}/{3} : Skip same approval letter date FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); LogFileHelper.logList.Add(string.Format("[{0}] {2}/{3} : Skip same approval letter date FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); // Skip to update same date } } else { SyncCount.InsertCount += 1; CreateApprovalLetterDate(accountID.Value, MOFApprovalStatusCID, Convert.ToDateTime(ApprovalLetterDate)); Console.WriteLine(string.Format("[{0}] {2}/{3} : Create MSCStatusHistory FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); LogFileHelper.logList.Add(string.Format("[{0}] {2}/{3} : Create MSCStatusHistory FileID {1}", DateTime.Now.ToString(), FileID, count, totalRecord)); } } else { SyncCount.NonMSCCount += 1; Console.WriteLine(string.Format("[{0}] {2}/{3} : Record FileID {1} not found", DateTime.Now.ToString(), FileID, count, totalRecord)); LogFileHelper.logList.Add(string.Format("[{0}] {2}/{3} : Record FileID {1} not found", DateTime.Now.ToString(), FileID, count, totalRecord)); } } Console.WriteLine(string.Format("[{0}] : End Sync Approval Letter", DateTime.Now.ToString())); LogFileHelper.logList.Add(string.Format("[{0}] : End Sync Approval Letter", DateTime.Now.ToString())); } } catch (Exception ex) { LogFileHelper.logList.Add("Error for MSCFileID" + FileID + ", Error : " + ex.Message); List <string> TOs = new List <string>(); //TOs.AddRange(BOL.Common.Modules.Parameter.WIZARD_RCPNT.Split(',')); TOs.Add("*****@*****.**"); bool SendSuccess = BOL.Utils.Email.SendMail(TOs.ToArray(), null, null, BOL.Common.Modules.Parameter.WIZARD_SUBJ, string.Format("{0} SyncApprovalLetterDates {1}", BOL.Common.Modules.Parameter.WIZARD_DESC, ex.Message), null); } //if (LogFileHelper.logList.Count > 0) //{ // string ModeSync = "ApprovalLetterDatesSyncLog_"; // LogFileHelper.WriteLog(LogFileHelper.logList, ModeSync); //} }