Ejemplo n.º 1
0
        private UploadSummary ParseHttpUploadedFile(HttpPostedFile file)
        {
            var returned = new UploadSummary();
            var fileData = new byte[file.ContentLength];

            file.InputStream.Read(fileData, 0, file.ContentLength);

            using (var ms = new MemoryStream(fileData))
            {
                var sr = new StreamReader(ms);


                while (!sr.EndOfStream)
                {
                    var dataRow = sr.ReadLine();
                    if (dataRow == null)
                    {
                        continue;
                    }
                    var splitDataRow = dataRow.Split(',');

                    var rawData = new UploadRow
                    {
                        OwningCountry     = splitDataRow[0].Trim().ToUpper(),
                        Vin               = splitDataRow[1].Trim(),
                        EstimatedResolved = splitDataRow[2].Trim(),
                        ReasonName        = splitDataRow[3].Trim(),
                        RemarkText        = splitDataRow[4].Trim(),
                    };
                    returned.DataToBeUploaded.Add(rawData);
                }
            }
            return(returned);
        }
Ejemplo n.º 2
0
        protected void btnParse_Click(object sender, EventArgs e)
        {
            SelectedTab          = 1;
            tbUploadResults.Text = string.Empty;
            if (!fuReasonsUpload.HasFile)
            {
                return;
            }
            try
            {
                var uploadSummary = ParseHttpUploadedFile(fuReasonsUpload.PostedFile);

                using (var dataAccess = new AdminDataAccess(null))
                {
                    DataToUpload = dataAccess.FillUploadSummary(uploadSummary);

                    tbUploadResults.Text = uploadSummary.ErrorList.ToString();
                }
            }
            catch (Exception ex)
            {
                tbUploadResults.Text = "Unable to upload the selected file.";
            }
        }
Ejemplo n.º 3
0
        public UploadSummary FillUploadSummary(UploadSummary us)
        {
            var parsedSummary = new UploadSummary();


            var invalidDates   = new List <string>();
            var invalidReasons = new List <string>();
            var invalidVins    = new List <string>();
            var notUniqueVinAndOwningCountry = new List <string>();

            var nonUniqueVins =
                DataContext.Vehicles.Where(d => d.IsFleet).GroupBy(d => d.Vin + d.OwningCountry).Where(d => d.Count() > 1).Select(d => d.Key).ToList();



            var validReasonsFromDatabase =
                DataContext.NonRev_Remarks_Lists.Select(d => d.RemarkText).Distinct().ToList();



            var validVinsForNonRevFromDatabase = (from nrv in DataContext.Vehicles
                                                  where nrv.IsNonRev && nrv.IsFleet
                                                  select nrv.Vin).ToList();

            foreach (var r in us.DataToBeUploaded)
            {
                var      validEntry = true;
                DateTime dt;
                if (!DateTime.TryParse(r.EstimatedResolved, out dt))
                {
                    validEntry = false;
                    us.InvalidDates++;
                    invalidDates.Add(r.EstimatedResolved);
                }

                if (!validReasonsFromDatabase.Contains(r.ReasonName))
                {
                    validEntry = false;
                    us.InvalidReasons++;
                    invalidReasons.Add(r.ReasonName);
                }

                if (!validVinsForNonRevFromDatabase.Contains(r.Vin))
                {
                    validEntry = false;
                    us.InvalidVins++;
                    invalidVins.Add(r.Vin);
                }

                if (nonUniqueVins.Contains(r.Vin + r.OwningCountry))
                {
                    validEntry = false;
                    us.NonUniqueVinAndOwningCountry++;
                    notUniqueVinAndOwningCountry.Add(string.Format("{0} - {1}", r.Vin, r.OwningCountry));
                }

                if (validEntry)
                {
                    r.ParsedEstimatedResolved = dt;
                    parsedSummary.DataToBeUploaded.Add(r);
                }
            }

            us.ErrorList.AppendLine(string.Format("{0} row(s) found. {1} valid Non Rev Entries to be added."
                                                  , us.DataToBeUploaded.Count, parsedSummary.DataToBeUploaded.Count));
            us.ErrorList.AppendLine();
            if (us.InvalidDates > 0)
            {
                us.ErrorList.AppendLine(string.Format("Invalid Dates: {0}", string.Join(",", invalidDates)));
                us.ErrorList.AppendLine();
            }

            if (us.InvalidReasons > 0)
            {
                us.ErrorList.AppendLine(string.Format("Invalid Reasons: {0}", string.Join(",", invalidReasons)));
                us.ErrorList.AppendLine();
            }
            if (us.InvalidVins > 0)
            {
                us.ErrorList.AppendLine(string.Format("Invalid Vins: {0}", string.Join(",", invalidVins)));
                us.ErrorList.AppendLine();
            }

            if (us.NonUniqueVinAndOwningCountry > 0)
            {
                us.ErrorList.AppendLine(string.Format("Non Unique Vin + Owning Country: {0}", string.Join(",", notUniqueVinAndOwningCountry)));
                us.ErrorList.AppendLine();
            }

            return(parsedSummary);
        }
Ejemplo n.º 4
0
 public BulkUploadViewModel()
 {
     Summary = new UploadSummary {
         SummaryItems = new List <UploadSummaryExceptionItem>()
     };
 }