Beispiel #1
0
 public SearchWorker(SearchSetDTO data, SearchParametersDTO searchparams)
 {
     m_Data         = data;
     m_Filtered     = m_Data.GetFilteredItems(searchparams.AllowedPctMissing).ToList();
     m_SearchParams = searchparams;
     m_sched        = System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext();
 }
Beispiel #2
0
        public static SearchSetDTO Import(string filepath)
        {
            var ResultSet  = new SearchSetDTO();
            var file       = File.ReadAllLines(filepath);
            var headertext = file.First();

            ResultSet.InputFilename = filepath;
            ResultSet.Header        = headertext;
            bool istabsplit;
            var  commaheader = headertext.Split(',');
            var  tabheader   = headertext.Split('\t');

            string[] header;
            if (commaheader.Count() > tabheader.Count())
            {
                istabsplit = false;
                header     = commaheader;
            }
            else
            {
                istabsplit = true;
                header     = tabheader;
            }
            try
            {
                ResultSet.Items = file.Skip(1).AsParallel().Select(item =>
                {
                    string[] elements;
                    if (istabsplit)
                    {
                        elements = item.Split('\t');
                    }
                    else
                    {
                        elements = item.Split(',');
                    }
                    if (elements.Count() != header.Count())
                    {
                        throw new FileFormatException("Count mismatch in file");
                    }
                    var uniqueid       = elements[0].Trim();
                    var alias          = elements[1].Trim();
                    bool required      = false;
                    var requiredstring = elements[2].Trim().ToUpper();
                    if (requiredstring.StartsWith("T") || requiredstring == "1")
                    {
                        required = true;
                    }
                    SearchItemDTO searchitem = new SearchItemDTO(uniqueid, alias, required, elements.Skip(3).Select(x => x.Trim()).ToArray(), item);
                    return(searchitem);
                }).ToList();
            }
            catch (AggregateException e)
            {
                throw e.InnerException;
            }
            return(ResultSet);
        }
Beispiel #3
0
 public static void Export(SearchResultDTO result, SearchSetDTO startingset, string filepath)
 {
     using (System.IO.StreamWriter file = new System.IO.StreamWriter(filepath))
     {
         file.WriteLine(startingset.Header);
         foreach (var item in result.Items)
         {
             file.WriteLine(item.Raw);
         }
     }
 }