Пример #1
0
        private AddressShort ParseAddress(string rawAddress)
        {
            var array = rawAddress.Split(',');

            if (array.Length != 4)
            {
                return(null);
            }
            var street    = array[1].ToLower().Replace("улица", string.Empty).Trim();
            var house     = array[2].ToLower().Trim();
            var apartment = array[3].ToLower().Trim();
            var result    = new AddressShort
            {
                Street    = street,
                House     = house,
                Apartment = apartment
            };

            return(result);
        }
Пример #2
0
        private List <Verification> Parse(List <Address> addressList)
        {
            label_wait.Visible = true;
            label_wait.Text    = "Считывание и обработка данных...";
            var rowNumber = 0;
            var result    = new List <Verification>();

            try
            {
                Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
                Workbook   xlWorkbook  = xlApp.Workbooks.Open(textBox_path.Text, 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                _Worksheet xlWorksheet = (_Worksheet)xlWorkbook.Sheets[1];
                Microsoft.Office.Interop.Excel.Range xlRange = xlWorksheet.UsedRange;

                Verification verification = null;
                Counter      prevCounter  = null;
                progressBar1.Maximum = xlRange.Rows.Count;

                for (int i = 1; i < xlRange.Rows.Count; i++)
                {
                    rowNumber = i;
                    var addressCell = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 4];
                    if (addressCell.Font.Bold == true && !string.IsNullOrEmpty(addressCell.Value))
                    {
                        AddressShort shortAddress = ParseAddress(addressCell.Value.ToString());
                        if (verification != null)
                        {
                            result.Add(verification);
                            verification = null;
                        }



                        if (shortAddress == null)
                        {
                            continue;
                        }
                        var exist = addressList.FirstOrDefault(w => w.Street == shortAddress.Street &&
                                                               w.House == shortAddress.House && w.Apartment ==
                                                               shortAddress.Apartment);

                        if (exist == null)
                        {
                            continue;
                        }
                        verification = new Verification
                        {
                            Address  = addressCell.Value.ToString(),
                            Counters = new List <Counter>()
                        };
                    }
                    var typeCell = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 2];

                    if (verification != null)
                    {
                        var row = (Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 1];
                        if (string.IsNullOrEmpty(row.Value) || !Regex.IsMatch(row.Value.ToString(), "^[\\d]{1,2}$"))
                        {
                            continue;
                        }
                        var counter = new Counter();
                        counter.Name       = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 2])?.Value == null ? prevCounter?.Name : ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 2])?.Value.ToString();
                        counter.StartCount = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 12]).Value.ToString();
                        counter.EndCount   = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 13]).Value.ToString();
                        counter.StartDate  = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 14]).Value.ToString();
                        counter.EndDate    = ((Microsoft.Office.Interop.Excel.Range)xlWorksheet.Cells[rowNumber, 15]).Value.ToString();

                        verification.Counters.Add(counter);
                        prevCounter = counter;
                    }
                    progressBar1.PerformStep();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace);
                MessageBox.Show(ex.Message);
            }
            return(result);
        }
Пример #3
0
 public ActionResult DisplayAddressShort([Bind(Prefix = "Address", Exclude = "City")]
                                         AddressShort summary)
 {
     return(View(summary));
 }