示例#1
0
        //returning lawsuits only for currently logged in user/lawyer
        public IEnumerable <Lawsuit> getForLawyer(string id, string sortOrder, string searchString)
        {
            List <LawsuitLawyer> lawyerLawsuits = (from l in context.LawsuitLawyers
                                                   where l.userId == id select l).ToList();

            List <Lawsuit> lawsuits = new List <Lawsuit>();
            Lawsuit        lawsuit;

            foreach (LawsuitLawyer ll in lawyerLawsuits)
            {
                lawsuit = context.Lawsuits.Find(ll.lawsuitId);
                context.Entry(lawsuit).Reference(r => r.judge).Load();
                context.Entry(lawsuit).Reference(r => r.location).Load();
                context.Entry(lawsuit).Reference(r => r.prosecutor).Load();
                context.Entry(lawsuit).Reference(r => r.defendant).Load();
                context.Entry(lawsuit).Reference(r => r.typeOfProcess).Load();
                lawsuit.lawyers = null;

                lawsuits.Add(lawsuit);
            }

            if (!String.IsNullOrEmpty(searchString))
            {
                lawsuits = lawsuits.Where(l => l.judge.name.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          l.location.cityName.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          ((TipSuda)l.courtType).ToString().IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          l.processId.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          l.courtroomNumber.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          l.prosecutor.name.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          l.defendant.name.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          l.note.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0 ||
                                          l.typeOfProcess.name.IndexOf(searchString, StringComparison.OrdinalIgnoreCase) >= 0)
                           .ToList();
            }

            switch (sortOrder)
            {
            case "judgeName_desc":
                return(lawsuits.OrderByDescending(s => s.judge.name).ToList());

            case "courtTypeName_desc":
                return(lawsuits.OrderByDescending(s => s.typeOfProcess.name).ToList());

            case "prosecutorName_desc":
                return(lawsuits.OrderByDescending(s => s.prosecutor.name).ToList());

            case "defendantTypeName_desc":
                return(lawsuits.OrderByDescending(s => s.defendant.name).ToList());

            case "dateTime_desc":
                return(lawsuits.OrderByDescending(s => s.dateTimeOfEvent).ToList());

            default:
                return(lawsuits.OrderByDescending(s => s.courtType).ToList());
            }
        }