Exemple #1
0
        static void ProcessSearch(string email, SearchInfoModel searchModel)
        {
            CriminalsDataContext dc = new CriminalsDataContext();
            byte maleByte           = (byte)CriminalInfo.SexType.Male;
            byte femaleByte         = (byte)CriminalInfo.SexType.Female;
            var  query =
                from a in dc.Criminals
                where (string.IsNullOrEmpty(searchModel.Name) || a.Name.Contains(searchModel.Name))
                where (string.IsNullOrEmpty(searchModel.Nationality) || a.Nationality.Equals(searchModel.Nationality, StringComparison.OrdinalIgnoreCase))
                where (searchModel.MinAge == null || a.Age >= searchModel.MinAge)
                where (searchModel.MaxAge == null || a.Age <= searchModel.MaxAge)
                where (searchModel.MinHeight == null || a.Height >= searchModel.MinHeight)
                where (searchModel.MaxHeight == null || a.Height <= searchModel.MaxHeight)
                where (searchModel.MinWeight == null || a.Weight >= searchModel.MinWeight)
                where (searchModel.MaxWeight == null || a.Weight <= searchModel.MaxWeight)
                where ((searchModel.CanBeMale && searchModel.CanBeFemale) || (searchModel.CanBeMale && a.Sex == maleByte) || (searchModel.CanBeFemale && a.Sex == femaleByte))
                select a;

            var criminalsList = query.ToList();
            var pdfNamesList  = new List <string>(criminalsList.Count);

            foreach (var criminal in criminalsList)
            {
                CriminalInfo ci = new CriminalInfo();
                ci.ID          = criminal.Id;
                ci.Name        = criminal.Name;
                ci.Age         = criminal.Age;
                ci.Sex         = (CriminalInfo.SexType)criminal.Sex;
                ci.Height      = criminal.Height;
                ci.Weight      = criminal.Weight;
                ci.Nationality = criminal.Nationality;
                ci.GeneratePDF();
                pdfNamesList.Add(ci.GetPdfName());
            }

            EmailUtils.SendPDFEmail(email, searchModel, pdfNamesList);
        }