public void SplitList_ValidateGivenChunckSize_CorrectSublistCountCreated(int listsize, int chuncksize, int listcount) { var list = GenerateList(listsize); var splitter = new ListSplitter(_logger, DoMockChunkable(chuncksize)); var lists = splitter.Split(list); Assert.AreEqual(listcount, lists.Count); }
public List <PurgeResult> Purge(PurgeOptions options, string[] resources) { var results = new List <PurgeResult>(); if (ValidateResoruces(resources) != true) { results.Add(new PurgeResult { estTime = 0, resultMsg = "Error Validating resources", resultCode = -1 }); } else { var splitter = new ListSplitter(_logger); var lists = splitter.Split(resources); results = lists.Select(list => RequestPurge(options, list)).ToList(); } return(results); }
public void SplitList_ChuckSize_PropertySet(int chuncksize) { var splitter = new ListSplitter(_logger, DoMockChunkable(chuncksize)); Assert.AreEqual(chuncksize, splitter.ChunckSize); }
public void SplitList_CreateObject() { var splitter = new ListSplitter(_logger, _chunkable); Assert.IsNotNull(splitter); }
public static string In <T>(string column, IEnumerable <T> enumerable) { var ilist = enumerable as IList <T> ?? enumerable.ToList(); if (!ilist.Any()) { throw new ArgumentOutOfRangeException(nameof(enumerable)); } var useSingleQuotes = SingleQuoteChecker.ShouldUseSingleQuotes <T>(); var enumerableOfLists = ListSplitter.SplitList(ilist.ToList()); var currentListCounter = 0; var cmdText = new StringBuilder(); cmdText.AppendLine(); cmdText.Append("("); cmdText.AppendLine(); var lists = enumerableOfLists as IList <List <T> > ?? enumerableOfLists.ToList(); foreach (var list in lists) { cmdText.Append(column); cmdText.Append(" IN ("); if (useSingleQuotes) { var joinedList = string.Join("','", list); cmdText.Append("'"); cmdText.Append(joinedList); cmdText.Append("'"); } else { var joinedList = string.Join(",", list); cmdText.Append(joinedList); } cmdText.Append(")"); currentListCounter++; if (currentListCounter == lists.Count) { continue; } cmdText.AppendLine(); cmdText.Append("OR"); cmdText.AppendLine(); } cmdText.AppendLine(); cmdText.Append(")"); cmdText.AppendLine(); return(cmdText.ToString()); }
public FileResult ProcessData(string Identification, HttpPostedFileBase FileBase, int Case) { //Save uploaded file string mainPath = Server.MapPath("~/Files"); if (FileBase != null && FileBase.ContentLength > 0) { var suportedTypes = new[] { "txt" }; var fileExt = Path.GetExtension(FileBase.FileName).Substring(1); if (!suportedTypes.Contains(fileExt)) { ModelState.AddModelError("file", "Invalid type. Only the following types (txt) are supported."); return(null); } FileBase.SaveAs(Path.Combine(mainPath, "dataIn.txt")); } //Open file, verify data and convert them into a list IList <int> DataList = FileHelper.OpenFile(Path.Combine(mainPath, "dataIn.txt")); int WorkingDays; IList <int> ElementsQty; IList <int> ElementsWeight; IList <int> result; if (DataList.Count < 3) { //Can write a log file ModelState.AddModelError("file", "Invalid data file. Check data."); return(null); } //Split data into the different types: Working days, Elements quantity and Elements weights ListSplitter.Split(DataList, out WorkingDays, out ElementsQty, out ElementsWeight); if (WorkingDays == 0 || ElementsQty.Count == 0 || ElementsWeight.Count == 0) { ModelState.AddModelError("data", "Invalid quantity data in file"); return(null); } //Process data if (WorkingDays == ElementsQty.Count) { result = ActivityProcess.Execute(WorkingDays, ElementsQty, ElementsWeight, Case); if (result.Count != WorkingDays) { return(null); } if (FileHelper.CreateFile(result, Path.Combine(mainPath, "result.txt")) == FileHelper.State.Fail) { return(null); } //Save to database DataBaseHelper.SaveTrace(Identification, Case, DataList, result); string fileName = Path.Combine(mainPath, "result.txt"); string contentType = "application/octet-stream"; return(new FilePathResult(fileName, contentType)); } return(null); }