pastebin

Paste Search Dynamic
Recent pastes
processData
  1. //Nikhil Kashid for Icertis 11-Apr-2020
  2.  
  3. using system;
  4. using system.Collections.Generic;
  5. using system.IO;
  6. using system.Linq;
  7. using system.Text;
  8. using system.Threading.Tasks;
  9.  
  10. namespace Mail_Server
  11. {
  12.     class Program
  13.     {
  14.         static void Main(string[] args)
  15.         {
  16.             try
  17.             {
  18.                 //Given Input
  19.                 string input ="Mail Server, Authentication Library, v6 "
  20.                     + Environment.NewLine + "Video Call Server, Authentication Library, v7"
  21.                     + Environment.NewLine + "Mail Server, Data Storage Library, v10"
  22.                     + Environment.NewLine + "Chat Server, Data Storage Library, v11"
  23.                     + Environment.NewLine + "Mail Server, Search Library, v6"
  24.                     + Environment.NewLine + "Chat Server, Authentication Library, v8"
  25.                     + Environment.NewLine + "Chat Server, Presence Library, v2"
  26.                     + Environment.NewLine + "Video Call Server, Data Storage Library, v11"
  27.                     + Environment.NewLine + "Video Call Server, Video Compression Library, v3";
  28.  
  29.                 var inputLines = new List<string>();
  30.                 //Split add into list
  31.                 inputLines = input.Split(new string[] { "\r\n" }, StringSplitOptions.None).ToList();
  32.                 //Call Function
  33.                 var val = processData(inputLines);
  34.                 //Foreach loop
  35.                 Console.WriteLine("\n");
  36.                 foreach (var res in val)
  37.                 {
  38.                     Console.WriteLine(res);
  39.                 }
  40.                 Console.WriteLine("\n");
  41.                 Console.ReadLine();
  42.  
  43.             }
  44.             catch (IOException ex)
  45.             {
  46.                 Console.WriteLine(ex.Message);
  47.             }
  48.         }
  49.  
  50.         public static List<String> processData(IEnumerable<string> lines)
  51.         {
  52.             List<String> val = new List<String>();
  53.             var data = lines.Select(x => x.Split(','));
  54.             var result1 = data.GroupBy(a => a[1])
  55.             .Select(gr => new
  56.             {
  57.                 Key = gr.Key,
  58.                 Value = gr.OrderByDescending(x => x[2])
  59.                 .Select(x => new { Product = x[0], Library = x[1], Version = x[2] }).FirstOrDefault()
  60.             }).ToList();
  61.  
  62.             var data1 = lines.Select(x => x.Split(','))
  63.             .Select(x => new { Product = x[0], Library = x[1], Version = x[2] }).ToList();
  64.             var data11 = data1.Except(result1.Select(x => x.Value).ToList()).Select(a => a.Product).Distinct().ToList();
  65.             val.AddRange(data11);
  66.             return val;
  67.         }
  68.  
  69.     }
  70. }
  71.  
  72.  
Parsed in 0.023 seconds