public MasterdataExportResponse GetResponse(ThirdPartyMasterDataQuery query) { var response = new MasterdataExportResponse(); bool hasNext = false; IEnumerable<ImportEntity> masterData = new List<ImportEntity>(); try { switch (query.MasterCollective) { case MasterDataCollective.Outlet: masterData = GetOutlets(query, out hasNext); break; case MasterDataCollective.SaleProduct: masterData = GetProducts(query, out hasNext); break; } response.MasterData = masterData; response.HasNextPage = hasNext; }catch(Exception ex) { response.Result = "Error"; response.ResultInfo = ex.Message; } return response; }
IEnumerable<ImportEntity> GetProducts(ThirdPartyMasterDataQuery myQuery, out bool hasNext) { using (var ctx=new CokeDataContext(Con)) { IQueryable<tblProduct> query=null; hasNext = false; if (Enumerable.Any<string>(myQuery.SearchTextList)) { List<tblProduct> items = new List<tblProduct>(); foreach (var productcode in myQuery.SearchTextList) { var found = ctx.tblProduct.FirstOrDefault( p => p.ProductCode.Trim().Equals(productcode.Trim(), StringComparison.CurrentCultureIgnoreCase)); if (found != null) items.Add(found); } if (!items.Any()) return null; return items.Select(Map); } return null; } }
IEnumerable<ImportEntity> GetOutlets(ThirdPartyMasterDataQuery myQuery, out bool hasNext) { using (var ctx = new CokeDataContext(Con)) { IQueryable<tblCostCentre> query = null; if (Enumerable.Any<string>(myQuery.SearchTextList)) { hasNext = false; List<tblCostCentre> items=new List<tblCostCentre>(); foreach (var outletcode in myQuery.SearchTextList) { var found = ctx.tblCostCentre.FirstOrDefault( p => p.Cost_Centre_Code.Trim().Equals(outletcode.Trim(), StringComparison.CurrentCultureIgnoreCase) || p.Name.Trim() == outletcode.Trim() && p.CostCentreType == (int)CostCentreType.Outlet); if (found != null) items.Add(found); } if (!items.Any()) return null; return items.Select(Map); } query= ctx.tblCostCentre.AsQueryable().OrderBy(s => s.IM_DateCreated).Where(s=>s.IM_Status != (int)EntityStatus.Deleted && s.IM_DateLastUpdated > myQuery.From); if (myQuery.Skip.HasValue && myQuery.Take.HasValue) query = query.Skip(myQuery.Skip.Value).Take(myQuery.Take.Value); hasNext = false; return Enumerable.ToList<ImportEntity>(query.Select(Map)); } }
private ThirdPartyMasterDataQuery GetSyncValues() { var query = new ThirdPartyMasterDataQuery(); int take; int skip; DateTime syncTimeStamp = DateTime.Now; var parameters = this.Request.RequestUri.ParseQueryString(); string entityName = parameters["EntityName"]; string searchtext = parameters["SearchText"]; string fields = parameters["RequestedFields"]; if(!string.IsNullOrEmpty(fields)) query.RequestedFields = fields.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).ToList(); var lookupTextList=new List<string>(); if (!string.IsNullOrWhiteSpace(searchtext)) lookupTextList = searchtext.Split(new string[] {","}, StringSplitOptions.RemoveEmptyEntries).ToList(); DateTime.TryParse(parameters["syncTimeStamp"], out syncTimeStamp); this.PagingParam(out take, out skip); query.From = syncTimeStamp; if (take != 0) { query.Skip = skip; query.Take = take; } if (!string.IsNullOrWhiteSpace(entityName)) { MasterDataCollective entity = (MasterDataCollective)Enum.Parse(typeof(MasterDataCollective), entityName); query.MasterCollective = entity; } if (lookupTextList.Any()) query.SearchTextList = lookupTextList; return query; }
public MasterdataExportResponse ExportMasterData(ThirdPartyMasterDataQuery query) { return _masterDataExportService.GetResponse(query); }