Search This Blog

Tuesday, January 28, 2014

Linq to read files

Filter data from DataTable using linq
  
foreach (var gvCkID in chkList)
            {

                int ID = Convert.ToInt32(gvCkID);
               
                var records = from p in dtGv.AsEnumerable()
                              where p.Field<int>("ID") == ID
                              select new { PONo = p.Field<string>("Title"), NavisioFileName = p.Field<string>("NavisionFile") };
                var arrayRecords = records.ToArray();

                string NavisioName = arrayRecords[0].NavisioFileName; // Check box for loop
                string PONo = arrayRecords[0].PONo;
                    if (!string.IsNullOrEmpty(NavisioName))
                        NavisionCollection.Add(NavisioName);
                    else
                        NavisionCollection.Add(PONo);
               
            }

Select first and last element from list using linq

string fileName = vehType + "_" + (from m in NavisionCollection select m).First();
            if (NavisionCollection.Count > 1)
                fileName = fileName + "_" + (from m in NavisionCollection select m).Last() + ".pdf";
            else
                fileName = fileName + ".pdf";

Get folder list from physical directory using linq

var vehFolders = from arayElem in (new DirectoryInfo(sDirectory).GetDirectories().OrderBy(d => d.LastWriteTimeUtc))
                             where arayElem.FullName.ToLower().Contains(vehType.ToLower()) && arayElem.LastWriteTimeUtc > dts.AddDays(-10)
                             orderby arayElem.CreationTime ascending
                             select arayElem;


                foreach (DirectoryInfo item in vehFolders)
                {
                    filePath = sDirectory + @"\\" + item.Name.ToString();
                    string[] arrayFiles = Directory.GetFiles(filePath);
               }

var getNavFile = from arayElem in arrayFiles
                                         where (Path.GetFileNameWithoutExtension(arayElem).Equals(navFileName, StringComparison.InvariantCultureIgnoreCase))
                                         select arayElem;
                        try
                        {
                            navFilePath = Convert.ToString(getNavFile.ToArray()[0]);
                        }