public HttpResponseMessage GetMarketDefByClient(int id) { AuthController objAuth = new AuthController(); if (objAuth.CheckUserClients(id) == 0) { return(Request.CreateResponse(HttpStatusCode.Unauthorized, "You have no permission to view market definitions.")); } var marketDef = (from mar in _db.MarketDefinitions where mar.ClientId == id select mar).ToList(); var marketDefHistory = (from sub in _db.MarketDefinitions_History where sub.ClientId == id group sub by sub.MarketDefId into tempGrp let maxVersion = tempGrp.Max(x => x.Version) select new { MarketDefId = tempGrp.Key, LastSaved = tempGrp.FirstOrDefault(y => y.Version == maxVersion).LastSaved, MaxVer = maxVersion }).ToList(); MarketDefDTO objDTO; List <MarketDefDTO> lstMarketDTO = new List <MarketDefDTO>(); foreach (MarketDefinition marDef in marketDef) { objDTO = new MarketDefDTO(); marDef.CopyProperties(objDTO); objDTO.Id = marDef.Id; var res = marketDefHistory.FirstOrDefault(i => i.MarketDefId == marDef.Id); objDTO.Submitted = (res == null || res.LastSaved != marDef.LastSaved) ? "No" : "Yes"; lstMarketDTO.Add(objDTO); } List <MarketDefDTO> notSubmitted = lstMarketDTO.Where(t => t.Submitted == "No").ToList(); notSubmitted.Sort(CompareByName); List <MarketDefDTO> submitted = lstMarketDTO.Where(t => t.Submitted == "Yes").ToList(); submitted.Sort(CompareByName); List <MarketDefDTO> finalList = new List <MarketDefDTO>(); finalList.AddRange(notSubmitted); finalList.AddRange(submitted); return(Request.CreateResponse(HttpStatusCode.OK, finalList)); }
private int CompareByName(MarketDefDTO market1, MarketDefDTO market2) { return(string.Compare(market1.Name, market2.Name)); }