Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        public void SplitList_ChuckSize_PropertySet(int chuncksize)
        {
            var splitter = new ListSplitter(_logger, DoMockChunkable(chuncksize));

            Assert.AreEqual(chuncksize, splitter.ChunckSize);
        }
Пример #4
0
        public void SplitList_CreateObject()
        {
            var splitter = new ListSplitter(_logger, _chunkable);

            Assert.IsNotNull(splitter);
        }
Пример #5
0
        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());
        }
Пример #6
0
        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);
        }