Beispiel #1
0
        /// <summary>
        /// Reads the file.
        /// </summary>
        /// <param name="fileName">Name of the file.</param>
        /// <returns>ValidatedResultSet</returns>
        public async Task <ValidatedResultSet> ReadFile(string fileName)
        {
            ValidatedResultSet result = new ValidatedResultSet();

            result.SuccessItemsList = new List <string>();
            result.FailureItemsList = new List <string>();
            Measurement measurement = new Measurement();
            Stopwatch   stopwatch;

            stopwatch = Stopwatch.StartNew();

            try
            {
                using (StreamReader sr = new StreamReader(fileName))
                {
                    String line = string.Empty;

                    while ((line = sr.ReadLine()) != null)
                    {
                        string[] parts = line.Split(',');

                        ValidatedResult validateResult = await _validator.ProcessLineItems(parts);

                        if (validateResult.IsValid)
                        {
                            result.SuccessItemsList.Add(validateResult.Content);
                        }
                        else
                        {
                            result.FailureItemsList.Add(validateResult.Content);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error occurred in ReadFile : {ex.Message}");
            }

            stopwatch.Stop();
            measurement.ElapsedTime = stopwatch.ElapsedMilliseconds;
            measurement.MethodName  = "ReadFile";

            Console.WriteLine($"Time sonsumed : {measurement.ElapsedTime}");

            return(result);
        }
Beispiel #2
0
        public ValidatedResult <bool> Validate()
        {
            ValidatedResult <bool> result = new ValidatedResult <bool>();

            result.ReturnObject = true;

            if (this.mDriverFirstName == null || this.mDriverLastName == null || this.mRatings == null)
            {
                result.Messages.Add(new Message(Message.MessageType.Error, "FirstName, LastName and Ratings cannot be NULL"));
                result.ReturnObject = false;
            }

            else if (this.mDriverFirstName.Length < 1 || this.mDriverLastName.Length < 1)
            {
                result.Messages.Add(new Message(Message.MessageType.Error, "FirstName and LastName must have at least one character"));
                result.ReturnObject = false;
            }


            return(result);
        }
Beispiel #3
0
        /// <summary>
        /// Processes the line items.
        /// </summary>
        /// <param name="lineItems">This method will process each field entry agains the rule being configured.</param>
        /// <returns>
        /// ValidatedResult
        /// </returns>
        public async Task <ValidatedResult> ProcessLineItems(string[] lineItems)
        {
            bool            isValid         = false;
            List <string>   rejectReasons   = new List <string>();
            ValidatedResult validatedResult = new ValidatedResult();

            try
            {
                for (int i = 0; i < lineItems.Length; i++)
                {
                    isValid = await ValidateAsync(rulesList[i].ExpressonToUse, lineItems[i]);

                    if (!isValid)
                    {
                        rejectReasons.Add(rulesList[i].RejectReason);
                    }
                }

                if (rejectReasons.Count == 0)
                {
                    validatedResult.Content = string.Join(",", lineItems);
                    validatedResult.IsValid = true;
                }
                else
                {
                    validatedResult.Content = string.Concat(string.Join(",", lineItems), ",", string.Join(",", rejectReasons));
                    validatedResult.IsValid = false;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error occurred in ProcessLineItems : {ex.Message}");
            }

            return(validatedResult);
        }