コード例 #1
0
        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));
        }
コード例 #2
0
 private int CompareByName(MarketDefDTO market1, MarketDefDTO market2)
 {
     return(string.Compare(market1.Name, market2.Name));
 }