Exemple #1
0
        public void Initialise(string oprFile)
        {
            if (oprFile == "")
            {
                Open();
            }

            status = new BindingList <ProgressStatus>();

            Status   = RunStatus.Runable;
            _oprFile = new FileInfo(oprFile);

            _runManager = new CompositionRun();
            _logCache   = new List <CompositionRun.State>();



            List <UIModel>      models;
            List <UIConnection> connections;

            Opr.Load(_oprFile, out models, out connections);

            if (models.Count == 0)
            {
                throw new InvalidDataException("No models found in " + _oprFile.FullName);
            }

            // LinkableComponents

            int nOprIndex = -1;

            foreach (UIModel model in models)
            {
                ++nOprIndex;

                status.Add(new ProgressStatus(model.LinkableComponent));


                if (model.IsTrigger)
                {
                    _nOprIndexTrigger = nOprIndex;
                }
            }



            dataGridViewStatus.DataSource = status;

            btnOk.Text = "Run";

            UpdateTitleText(null);
            Refresh();
        }
Exemple #2
0
        public ActionResult MenuLogs(string Selection)
        {
            int Month = 1;

            if (Selection != "" && Selection != null)
            {
                string[] S = Selection.Split(';');
                int      Y = Convert.ToInt16(S[0]);

                Month = Opr.MonthObratno(S[1]);
                List <string> Day = new List <string>();
                for (int i = 1; i <= DateTime.DaysInMonth(Y, Month); i++)
                {
                    Day.Add(i.ToString());
                }
                ViewBag.Day = Day;
            }
            else
            {
                List <string> Day = new List <string>();
                for (int i = 1; i <= DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); i++)
                {
                    Day.Add(i.ToString());
                }
                ViewBag.Day = Day;
            }
            List <string> M = new List <string> {
                "Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"
            };

            M.RemoveAt(Month - 1);
            M.Insert(0, Opr.MonthOpred(Month));
            ViewBag.Month = M;
            List <string> Year = new List <string>();

            for (int i = DateTime.Now.Year; i >= 2018; i--)
            {
                Year.Add(i.ToString());
            }

            ViewBag.Year = Year;

            return(View());
        }
Exemple #3
0
        public ActionResult Index()
        {//Поменять на ОБСД
            List <string>   IPUKI = new List <string>();
            List <string>   Head  = new List <string>();
            List <DateTime> dates = db.IPUs.Select(x => x.Date).Distinct().ToList();//даты загрузок без повторений

            foreach (DateTime D in dates)
            {
                Head.Add(Opr.MonthOpred(D.Month) + " " + D.Year.ToString());
                //доделать вывод по файлам
                IPUKI.Add(db.IPUs.Where(y => y.Date == D).Count().ToString());
            }



            ViewBag.Head  = Head;
            ViewBag.IPUKI = IPUKI;
            return(View());
        }
Exemple #4
0
        public ActionResult SpisokLogs(string Selection)
        {
            DateTime D = DateTime.Now;

            if (Selection != null && Selection != "")
            {
                string[]   s     = Selection.Split(';');
                int        Day   = Convert.ToInt16(s[0]);
                int        Month = Opr.MonthObratno(s[1]);
                int        Year  = Convert.ToInt16(s[2]);
                List <Log> L     = db.Logs.Where(x => x.Date.Year == Year && x.Date.Month == Month && x.Date.Day == Day).ToList();
                return(View(L));
            }
            else
            {
                List <Log> L = db.Logs.Where(x => x.Date.Year == D.Year && x.Date.Month == D.Month && x.Date.Day == D.Day - 1).ToList();
                return(View(L));
            }
        }
Exemple #5
0
        public ActionResult Index()
        {
            List <List <string> > UEVKI = new List <List <string> >();
            List <string>         Head  = new List <string>();
            List <DateTime>       dates = db.UEVs.Select(x => x.Date).Distinct().ToList();//даты загрузок без повторений

            foreach (DateTime D in dates)
            {
                Head.Add(Opr.MonthOpred(D.Month) + " " + D.Year.ToString());
                //доделать вывод по файлам
                UEVKI.Add(db.UEVs.Where(y => y.Date == D).Include(s => s.Adres).Select(z => z.Adres.Adress + " Отопление Гкал.=" + z.OtEnergyGkal + " Вода Гкал.=" + z.HwEnergyGkal + " ВодаМ3=" + z.HwVodaM3).Distinct().ToList());
            }



            ViewBag.Head  = Head;
            ViewBag.UEVKI = UEVKI;
            return(View());
        }
Exemple #6
0
        public Opr CreateReport(DataQualityReport dqr, TotalInsuredReport tir, SubscribeDataEntryReport sder, CommentHistory ch, string createdBy)
        {
            var now    = DateTime.Now;
            var report = new Opr
            {
                DataQualityReport        = dqr ?? new DataQualityReport(),
                TotalInsuredReport       = tir ?? new TotalInsuredReport(),
                SubscribeDataEntryReport = sder ?? new SubscribeDataEntryReport(),
                CommentHistory           = ch ?? new CommentHistory(),
                CreatedBy  = createdBy,
                ModifiedBy = createdBy,
                CreatedOn  = now,
                ModifiedOn = now
            };

            Opr.Add(report);

            SaveChanges();

            return(report);
        }
        // GET: Arendators
        public ActionResult Index()
        {
            List <List <string> > ArendatorKI = new List <List <string> >();
            List <string>         Head        = new List <string>();

            List <DateTime> dates = db.Arendators.Select(x => x.Date).Distinct().ToList();//даты загрузок без повторений

            foreach (DateTime D in dates)
            {
                Head.Add(Opr.MonthOpred(D.Month) + " " + D.Year.ToString());
                for (int i = 0; i < db.Arendators.Where(y => y.Date == D).Count(); i++)
                {
                    ArendatorKI.Add(db.Arendators.Where(y => y.Date == D).Include(s => s.Adres).Select(z => z.Adres.Adress + z.Name + " S=" + z.Ploshad).Distinct().ToList());
                }
            }



            ViewBag.Head        = Head;
            ViewBag.ArendatorKI = ArendatorKI;
            return(View());
        }
Exemple #8
0
        // GET: SVNs
        public ActionResult Index()
        {
            List <string>       SVNKI    = new List <string>();
            List <string>       Head     = new List <string>();
            List <TableService> Services = db.TableServices.ToList();
            List <DateTime>     dates    = db.SVNs.Select(x => x.Date).Distinct().ToList();//даты загрузок без повторений

            dates = dates.OrderByDescending(x => x.Date).ToList();
            foreach (DateTime D in dates)
            {
                Head.Add(Opr.MonthOpred(D.Month) + " " + D.Year.ToString());
                for (int i = 1; i < 4; i++)
                {
                    SVNKI.Add("Plan=" + db.SVNs.Where(y => y.Date == D).Where(h => h.Service.Id == i).Sum(x => x.Plan).ToString() + " Fact=" + db.SVNs.Where(y => y.Date == D).Where(h => h.Service.Id == i).Sum(x => x.Fact).ToString());
                }
            }



            ViewBag.Head  = Head;
            ViewBag.SVNKI = SVNKI;
            return(View());
        }
        public ActionResult Upload(HttpPostedFileBase upload, HttpPostedFileBase upload2, DateTime Date)
        {
            int    progress = 0;
            double pro100   = 0;
            int    procount = 0;

            if (upload != null)
            {
                HttpCookie cookie = new HttpCookie("My localhost cookie");

                //найдем старые данные за этот месяц и заменим их не щадя
                List <Musor> dbMusor = new List <Musor>();
                try { dbMusor = db.Musors.Where(x => x.Date.Year == Date.Year && x.Date.Month == Date.Month).ToList(); }
                catch { }
                pro100 = dbMusor.Count;
                foreach (Musor S in dbMusor)
                {
                    try
                    {
                        db.Musors.Remove(S);
                        db.SaveChanges();
                        procount++;
                        progress = Convert.ToInt16(procount / pro100 * 100);
                        if (procount > pro100)
                        {
                            procount = Convert.ToInt32(pro100);
                        }
                        ProgressHub.SendMessage("Удаляем старые данные...", progress);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }

                Excel.Application ApExcel = new Excel.Application();
                Excel.Workbooks   WB      = null;
                WB = ApExcel.Workbooks;
                Excel.Workbook WbExcel = ApExcel.Workbooks.Add(System.Reflection.Missing.Value);


                for (int h = 1; h <= 31; h++)
                {
                    ApExcel.Worksheets.Add(Type.Missing);//Добавляем лист
                    Excel.Worksheet WS = WbExcel.Sheets[1];
                    WS.Name = h.ToString() + ".01.2019";
                    Excel.Range range;              //рэндж
                    ApExcel.Visible        = false; //невидимо
                    ApExcel.ScreenUpdating = false; //и не обновляемо

                    //call this method inside your working action
                    ProgressHub.SendMessage("Инициализация и подготовка...", 0);

                    // получаем имя файла
                    string fileName  = Path.GetFileName(upload.FileName);
                    string fileName2 = Path.GetFileName(upload2.FileName);
                    // сохраняем файл в папку Files в проекте
                    if (Directory.Exists(Server.MapPath("~/Files/")) == false)
                    {
                        Directory.CreateDirectory(Server.MapPath("~/Files/"));
                    }
                    upload.SaveAs(Server.MapPath("~/Files/" + fileName));
                    upload2.SaveAs(Server.MapPath("~/Files/" + fileName2));

                    //обрабатываем файл после загрузки
                    //Загружаем файл ТБО
                    string[] Names2 = new string[] { "Государственный регистрационный знак", "Итого принято ТКО за смену, кг", "Итого принято ТКО за смену, куб.м." };
                    string   Error2 = "";
                    List <List <string> > excel2 = ExcelSVNUpload.IMPORT(Server.MapPath("~/Files/" + fileName2), Names2, out Error2, h.ToString());
                    //Загружаем файл наших выездов
                    string[] Names = new string[] { "Дата", "Автомобиль", "Улица", "Номер дома", "Объем ТКО за смену, м3" };
                    string   Error = "";
                    List <List <string> > excel  = ExcelSVNUpload.IMPORT(Server.MapPath("~/Files/" + fileName), Names, out Error, h.ToString());
                    List <Musor>          Result = new List <Musor>();
                    if (excel.Count < 1 || excel2.Count < 1)
                    {
                        //если нифига не загрузилось то
                        ViewBag.Error = Error + Error2;
                        ViewBag.Names = Names;
                        return(View("NotUpload"));
                    }
                    else
                    {
                        pro100 = excel.Count;

                        List <Musor>  Mus   = new List <Musor>();
                        List <string> NeMus = new List <string>();



                        //для каждой строки в экселе "Дата", "Автомобиль", "Улица", "Номер дома", "Объем ТКО за смену, м3"
                        Musor  Old  = new Musor();
                        string Name = "";
                        foreach (List <string> L in excel)
                        {
                            try
                            {
                                if (L[1] != null && L[1] != "" && L[1] != "0")
                                {
                                    Musor MusorKA = new Musor();

                                    MusorKA.Date   = Convert.ToDateTime(L[0]);
                                    MusorKA.Name   = L[1].ToUpper().Replace(" ", "").Replace("154", "").Replace("54", "").Replace("ГАЗ", "").Replace("САЗ", "").Replace("МАЗ", "").Replace("ВАЗ", "").Replace("ЗИЛ", "").Replace("МТЗ", "").Replace("-", "");
                                    MusorKA.AvtoID = 0;
                                    try
                                    {
                                        MusorKA.AvtoID = db.Avtomobils.Where(x => MusorKA.Name.Equals(x.Number)).Select(x => x.Id).First();
                                    }
                                    catch
                                    {
                                    }

                                    MusorKA.KgOut   = 0;
                                    MusorKA.Mesta   = (L[2] + L[3]).Replace(" ", "");
                                    MusorKA.ObiemIn = Convert.ToDecimal(L[4]);
                                    Mus.Add(MusorKA);
                                    Old = MusorKA;
                                }
                                else
                                {
                                    if (L[2] != "0" && L[2] != null && L[2] != "")
                                    {
                                        Musor MusorKA = new Musor();

                                        MusorKA.Date    = Old.Date;
                                        MusorKA.Name    = Old.Name;
                                        MusorKA.AvtoID  = Old.AvtoID;
                                        MusorKA.KgOut   = 0;
                                        MusorKA.Mesta   = (L[2] + L[3]).Replace(" ", "");
                                        MusorKA.ObiemIn = Convert.ToDecimal(L[4]);
                                        Mus.Add(MusorKA);
                                    }
                                    else
                                    {
                                        NeMus.Add(L[0] + ";" + L[1] + ";" + L[2] + ";" + L[3] + ";" + L[4] + ";");
                                        continue;
                                    }
                                }
                                // db.Musors.Add(MusorKA);
                                // db.SaveChanges();
                            }
                            catch
                            {
                                if (L[0] != "" && L[0] != null)
                                {
                                    Name = L[0].ToUpper().Replace(" ", "").Replace("154", "").Replace("54", "").Replace("ГАЗ", "").Replace("САЗ", "").Replace("МАЗ", "").Replace("ВАЗ", "").Replace("ЗИЛ", "").Replace("МАРШРУТ", "").Replace("МТЗ", "").Replace("-", "");
                                    if (Name.Contains("№"))
                                    {
                                        for (int i = 0; i < 10; i++)
                                        {
                                            Name = Name.Replace("№" + i.ToString(), "");
                                        }
                                    }
                                    Old.AvtoID = 0;
                                    try
                                    {
                                        Old.AvtoID = db.Avtomobils.Where(x => Name.Equals(x.Number)).Select(x => x.Id).First();
                                        Old.Name   = Name;
                                    }
                                    catch
                                    {
                                        NeMus.Add(L[0] + ";" + L[1] + ";" + L[2] + ";" + L[3] + ";" + L[4] + ";");
                                        continue;
                                    }
                                }
                                else
                                {
                                    NeMus.Add(L[0] + ";" + L[1] + ";" + L[2] + ";" + L[3] + ";" + L[4] + ";");
                                    continue;
                                }
                            }
                            procount++;
                            progress = Convert.ToInt16(50 + procount / pro100 * 50);
                            ProgressHub.SendMessage("Обрабатываем файл УЭВ...", progress);
                            if (procount > pro100)
                            {
                                procount = Convert.ToInt32(pro100);
                            }
                        }
                        List <string> Nam = Mus.Select(x => x.Name).Distinct().ToList();

                        foreach (string N in Nam)
                        {
                            if (N != "")
                            {
                                List <Musor> summa = Mus.Where(x => x.Name.Equals(N)).ToList();
                                string       Mest  = "";
                                decimal      sum   = 0;
                                for (int i = 0; i < summa.Count; i++)
                                {
                                    Mest += summa[i].Mesta + "\r\n";
                                    sum  += summa[i].ObiemIn;
                                }
                                Musor M = new Musor();
                                M.Date     = summa[0].Date;
                                M.AvtoID   = summa[0].AvtoID;
                                M.Mesta    = Mest;
                                M.Name     = N;
                                M.ObiemIn  = sum;
                                M.ObiemOut = 0;
                                M.KgOut    = 0;
                                //Теперь ищем объёмы с полигона "Государственный регистрационный знак", "Итого принято ТКО за смену, кг", "Итого принято ТКО за смену, куб.м."
                                foreach (List <string> P in excel2)
                                {
                                    if (P[0].ToUpper().Replace(" ", "").Contains(N))
                                    {
                                        M.ObiemOut = Convert.ToDecimal(P[2]);
                                        M.KgOut    = Convert.ToDecimal(P[1]);
                                        break;
                                    }
                                    else
                                    {
                                        continue;
                                    }
                                }

                                //Ищем водителя и пробег в ездках
                                Ezdka E = new Ezdka();
                                try
                                {
                                    E = db.Ezdkas.Where(x => x.Date.Year == M.Date.Year && x.Date.Month == M.Date.Month && x.Date.Day == M.Date.Day && x.AvtoId == M.AvtoID).First();
                                }
                                catch
                                {
                                }
                                if (E.Voditel == null)
                                {
                                    E.Voditel = "";
                                }
                                if (E.Probeg == null)
                                {
                                    E.Probeg = 0;
                                }
                                M.Driver = E.Voditel;
                                M.Probeg = E.Probeg;

                                Result.Add(M);
                            }
                        }
                    }

                    //Выводим отчет

                    int stroka = 1;
                    WS.Cells[stroka, 1] = "Приложение №3 ";
                    range = WS.get_Range("A" + stroka.ToString(), "P" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    stroka++;
                    WS.Cells[stroka, 1] = "к договору на оказание услуг по транспортированию твердых коммунальных отходов №______от " + Result[0].Date.ToString("dd/MM/yyyy");
                    range = WS.get_Range("A" + stroka.ToString(), "P" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    stroka++;
                    WS.Cells[stroka, 1] = "Выезд на маршрут";
                    range = WS.get_Range("A" + stroka.ToString(), "C" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 4] = "Загрузка ТКО";
                    range = WS.get_Range("D" + stroka.ToString(), "G" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true, 13, 70);
                    WS.Cells[stroka, 8] = "Транспортирование ТКО";
                    range = WS.get_Range("H" + stroka.ToString(), "J" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 11] = "Выгрузка ТКО";
                    range = WS.get_Range("K" + stroka.ToString(), "N" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 15] = "Примечание";
                    range = WS.get_Range("O" + stroka.ToString(), "O" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    stroka++;
                    WS.Cells[stroka, 1] = "Дата";
                    range = WS.get_Range("A" + stroka.ToString(), "A" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true, 13, 20);
                    WS.Cells[stroka, 2] = "Номер рейса";
                    range = WS.get_Range("B" + stroka.ToString(), "B" + (stroka + 1).ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 3] = "ФИО водителя";
                    range = WS.get_Range("C" + stroka.ToString(), "C" + (stroka + 1).ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 4] = "Место накопления(адрес загрузки мусоровоза)";
                    range = WS.get_Range("D" + stroka.ToString(), "D" + (stroka + 1).ToString());
                    Opr.RangeMerge(ApExcel, range, true, true, 13, 60);
                    WS.Cells[stroka, 5] = "Объем / тип контейнера";
                    range = WS.get_Range("E" + stroka.ToString(), "E" + (stroka + 1).ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 6] = "Время загрузки";
                    range = WS.get_Range("F" + stroka.ToString(), "F" + (stroka + 1).ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 7] = "Объем загрузки";
                    WS.Cells[stroka, 8] = "Показания одометра, км";
                    range = WS.get_Range("H" + stroka.ToString(), "I" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 10] = "Показания одометра Плечо доставки, км";
                    WS.Cells[stroka, 11] = "Место(адрес) выгрузки";
                    range = WS.get_Range("K" + stroka.ToString(), "K" + (stroka + 1).ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 12] = "Дата / время выгрузки";
                    range = WS.get_Range("L" + stroka.ToString(), "L" + (stroka + 1).ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    WS.Cells[stroka, 13] = "Объем и / или масса выгрузки";
                    range = WS.get_Range("O" + stroka.ToString(), "P" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true);
                    stroka++;
                    WS.Cells[stroka, 1] = "Время";
                    range = WS.get_Range("A" + stroka.ToString(), "A" + stroka.ToString());
                    Opr.RangeMerge(ApExcel, range, true, true, 13, 20);
                    WS.Cells[stroka, 7]  = "Объем, м³";
                    WS.Cells[stroka, 8]  = "Начало маршрута";
                    WS.Cells[stroka, 9]  = "Конец маршрута";
                    WS.Cells[stroka, 10] = "(от последнего места загрузки до места выгрузки)";
                    WS.Cells[stroka, 13] = "Объем, м³";
                    WS.Cells[stroka, 14] = "Масса, кг";
                    range                     = WS.get_Range("A1", "O15");
                    range.Font.Size           = 13;
                    range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                    range.VerticalAlignment   = Excel.XlHAlign.xlHAlignCenter;
                    range.WrapText            = true;
                    range.Font.Bold           = true;
                    range.ColumnWidth         = 15;
                    range                     = WS.get_Range("A1", "A1");
                    range.ColumnWidth         = 20;
                    range                     = WS.get_Range("B1", "B1");
                    range.ColumnWidth         = 6;
                    range                     = WS.get_Range("C1", "C1");
                    range.ColumnWidth         = 20;
                    range                     = WS.get_Range("D1", "D1");
                    range.ColumnWidth         = 60;
                    range                     = WS.get_Range("E1", "E1");
                    range.ColumnWidth         = 10;
                    range                     = WS.get_Range("G1", "G1");
                    range.ColumnWidth         = 10;
                    range                     = WS.get_Range("J1", "J1");
                    range.ColumnWidth         = 10;
                    range                     = WS.get_Range("M1", "O1");
                    range.ColumnWidth         = 10;
                    stroka++;
                    for (int i = 0; i < Result.Count(); i++)
                    {
                        WS.Cells[stroka, 1]  = Result[i].Date;
                        WS.Cells[stroka, 2]  = (i + 1).ToString();
                        WS.Cells[stroka, 3]  = Result[i].Driver;
                        WS.Cells[stroka, 4]  = Result[i].Mesta;
                        WS.Cells[stroka, 5]  = "0,75/M";
                        WS.Cells[stroka, 7]  = Result[i].ObiemIn;
                        WS.Cells[stroka, 10] = Result[i].Probeg;
                        WS.Cells[stroka, 11] = "Полигон ТБО";
                        WS.Cells[stroka, 13] = Result[i].ObiemOut;
                        WS.Cells[stroka, 14] = Result[i].KgOut;
                        WS.Cells[stroka, 15] = Result[i].Name;
                        range                     = WS.get_Range("A" + stroka, "A" + stroka);
                        range.RowHeight           = 50;
                        range.Font.Size           = 12;
                        range.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
                        range.VerticalAlignment   = Excel.XlHAlign.xlHAlignCenter;
                        range.WrapText            = true;
                        range.Borders.LineStyle   = Excel.XlLineStyle.xlContinuous;

                        stroka++;
                    }
                }


                string patch    = Server.MapPath("~/Content/OtchetECO.xlsx"); //@"C:\inetpub\Otchets\ASP" + "X" + Year.Remove(0, 2) + "X" + Month + ".xlsx";//Server.MapPath("~\\ASP" +"X"+ Year.Remove(0,2) +"X"+ Month + ".xlsx");
                string filename = "OtchetECO.xlsx";
                string path2    = Url.Content("~/Content/OtchetECO.xlsx");

                // RedirectToAction("DownloadPS", new {path,filename});
                string dat         = path2; //+ filename;
                string contentType = "application/vnd.ms-excel";
                //



                // Сохранение файла Excel.
                try
                {
                    Opr.EstLiFile(patch);
                    WbExcel.SaveCopyAs(patch);//сохраняем в папку
                }
                catch
                {
                }
                //WbExcel.PrintOutEx(1, 1, 1, true, null, null, null, null, null);//печать сразу после сохранения
                ApExcel.Visible        = false; //невидимо
                ApExcel.ScreenUpdating = false; //и не обновляемо
                                                // Закрытие книги.
                WbExcel.Close(false, "", Type.Missing);
                // Закрытие приложения Excel.


                ApExcel.Quit();


                Marshal.FinalReleaseComObject(WbExcel);
                Marshal.FinalReleaseComObject(WB);



                GC.Collect();
                Marshal.FinalReleaseComObject(ApExcel);
                GC.WaitForPendingFinalizers();



                ViewBag.date = Date;
                ViewBag.file = filename;
                ViewBag.dat  = dat;
                // return File(path2, contentType, filename);
                //  return Json(dat);
                return(View("UploadComplete"));
            }

            return(RedirectToAction("Upload"));
        }
Exemple #10
0
        public ActionResult IndexPoDomamPartial0()
        {
            List <string> GGEU = new List <string>();

            foreach (GEU G in db.GEUs)
            {
                GGEU.Add(G.Name);
            }
            ViewBag.GEU = GGEU;
            //создаем список годов
            ViewBag.Year = new string[DateTime.Now.Year - 2018 + 1];
            int counter = 0;

            for (int i = DateTime.Now.Year; i >= 2018; i--)
            {
                ViewBag.Year[counter] = i.ToString();
                counter++;
            }
            //формируем список домов в выборку ЖЭУ

            /*
             * List<SelectListItem> Ad = new List<SelectListItem>();
             *
             * foreach (Adres A in db.Adres)
             * {
             *  if (A.GEU != null && A.GEU.Equals(GGEU[0]))
             *  {
             *      SelectListItem AA = new SelectListItem();
             *      string ADR = A.Adress;
             *      int ind = 0;
             *      if (ADR.Contains("БОРОВАЯ ПАРТИЯ")|| ADR.Contains("МУСЫ ДЖАЛИЛЯ") || ADR.Contains("ГЕРОЕВ ТРУДА") || ADR.Contains("АКАДЕМИКА ТРОФИМУКА"))
             *      {
             *          ind = ADR.IndexOf(' ');
             *          string ADR2 = ADR.Remove(0, ind);
             *          ind = ADR2.IndexOf(' ');
             *      }
             *      else
             *      {
             *          ind = ADR.IndexOf(' ');
             *
             *      }
             *      string ADR3 = ADR.Remove(0, ind);
             *      int ind2 = ADR3.IndexOf(' ');
             *      ADR.Remove(ind2);
             *      ADR =ADR.Remove(ind)+","+ADR.Remove(0,ind+1);
             *      AA.Value = ADR;
             *      AA.Text = ADR;
             *      Ad.Add(AA);
             *  }
             * }
             *
             * SelectList SL = new SelectList(Ad, "Value", "Text");
             *
             */
            // ViewBag.Adres = SL;
            //Делаем список месяцев из них первый тот что в куки записан
            List <SelectListItem> Month = new List <SelectListItem>();

            for (int i = 1; i < 13; i++)
            {
                string mon = "";
                mon = Opr.MonthOpred(i);
                SelectListItem SLI = new SelectListItem();
                SLI.Text  = mon;
                SLI.Value = mon;//i.ToString();
                Month.Add(SLI);
            }
            SelectListItem M = new SelectListItem();

            //если в куки что-то есть
            if (HttpContext.Request.Cookies["Month"] != null)
            {
                M.Text           = HttpContext.Request.Cookies["Month"].Value;
                M.Value          = HttpContext.Request.Cookies["Month"].Value;//Opr.MonthObratno(M.Text).ToString();
                ViewBag.TekMonth = M.Value;
                //Month.RemoveAt(Opr.MonthObratno(M.Text) - 1);
                // Month.Insert(0, M);
            }

            M       = new SelectListItem();
            M.Text  = "Год";
            M.Value = "Год";
            Month.Add(M);
            ViewBag.Month = Month;



            ViewBag.Adres = AdresaForGeu(GGEU[0]);
            return(View());
        }
Exemple #11
0
 public IQueryable <Opr> GetReports()
 {
     return(Opr.AsQueryable());
 }
Exemple #12
0
        public ActionResult Upload(HttpPostedFileBase upload, HttpPostedFileBase upload2)
        {
            Excel.Application ApExcel = new Excel.Application();
            Excel.Workbooks   WB      = null;
            WB = ApExcel.Workbooks;
            Excel.Workbook WbExcel = ApExcel.Workbooks.Add(System.Reflection.Missing.Value);
            List <Element> Defects = new List <Element>();
            // получаем имя файла
            string fileName  = Path.GetFileName(upload.FileName);
            string fileName2 = Path.GetFileName(upload2.FileName);

            // сохраняем файл в папку Files в проекте
            if (Directory.Exists(Server.MapPath("~/Files/")) == false)
            {
                Directory.CreateDirectory(Server.MapPath("~/Files/"));
            }
            upload.SaveAs(Server.MapPath("~/Files/" + fileName));
            upload2.SaveAs(Server.MapPath("~/Files/" + fileName2));

            //обрабатываем файл после загрузки
            //Загружаем файл ТБО
            string[] Names = new string[] { "Id", "Element" };
            string   Error = "";
            List <List <string> > excel = ExcelSVNUpload.IMPORT(Server.MapPath("~/Files/" + fileName), Names, out Error);

            //Загружаем файл наших выездов
            string[] Names2 = new string[] { "ElementId", "Description", "Location", "DeffDesc" };
            string   Error2 = "";
            List <List <string> > excel2 = ExcelSVNUpload.IMPORT(Server.MapPath("~/Files/" + fileName2), Names2, out Error2);
            List <Musor>          Result = new List <Musor>();
            int elId = 0;

            if (excel.Count < 1 || excel2.Count < 1)
            {
                //если нифига не загрузилось то
                ViewBag.Error = Error + Error2;
                ViewBag.Names = Names;
                return(View("NotUpload"));
            }
            else
            {
                try
                {
                    List <Defect> Def = db.Defects.ToList();
                    if (Def.Count > 0)
                    {
                        foreach (Defect D in Def)
                        {
                            db.Defects.Remove(D);
                            db.SaveChanges();
                        }
                    }
                }
                catch { }
                try
                {
                    List <DefDescription> Def = db.DefDescriptions.ToList();
                    if (Def.Count > 0)
                    {
                        foreach (DefDescription D in Def)
                        {
                            db.DefDescriptions.Remove(D);
                            db.SaveChanges();
                        }
                    }
                }
                catch { }
                try
                {
                    List <DefWork> DefWorks = db.DefWorks.ToList();
                    if (DefWorks.Count > 0)
                    {
                        foreach (DefWork D in DefWorks)
                        {
                            db.DefWorks.Remove(D);
                            db.SaveChanges();
                        }
                    }
                }
                catch { }

                try
                {
                    List <Element> elem = db.Elements.ToList();
                    if (elem.Count > 0)
                    {
                        foreach (Element D in elem)
                        {
                            db.Elements.Remove(D);
                            db.SaveChanges();
                        }
                    }
                }
                catch { }

                for (int h = 1; h < excel.Count; h++)
                {
                    if (excel[h][1] != "NULL" && excel[h][1] != null && excel[h][1] != "")
                    {
                        Element E = new Element();
                        E.Name      = excel[h][1];
                        E.ElementId = Convert.ToInt32(excel[h][0]);
                        try
                        {
                            db.Elements.Add(E);
                            db.SaveChanges();
                        }
                        catch
                        {
                            db.Elements.Remove(E);
                        }
                    }
                }

                decimal pro100   = Convert.ToDecimal(excel2.Count);
                int     progress = 0;
                int     procount = 0;

                /*
                 * Excel.Range range;//рэндж
                 * ApExcel.Visible = false;//невидимо
                 * ApExcel.ScreenUpdating = false;//и не обновляемо
                 *
                 * //call this method inside your working action
                 * ProgressHub.SendMessage("Инициализация и подготовка...", 0);
                 * ApExcel.Visible = false;//невидимо
                 * ApExcel.ScreenUpdating = false;//и не обновляемо
                 */

                /*ApExcel.Worksheets.Add(Type.Missing);//Добавляем лист
                 * Excel.Worksheet WS = WbExcel.Sheets[1];
                 * try
                 * {
                 *  WS.Name = Defects[h].Element;
                 * }
                 * catch
                 * {
                 *  WS.Name = Defects[h].Element+h.ToString();
                 *
                 * }
                 */



                foreach (List <string> E in excel2)
                {
                    if (E[0] != null && E[0] != "")
                    {
                        int    id     = 0;
                        string E1     = E[1].ToLower().Replace(",", "").Replace(".", "").Replace("-", "");
                        string E3     = E[3].ToLower().Replace(",", "").Replace(".", "").Replace("-", "");
                        string E2     = E[2].ToLower().Replace(",", "").Replace(".", "").Replace("-", "");
                        Defect DEFECT = new Defect();
                        bool   go     = true;
                        try
                        {
                            id   = Convert.ToInt32(E[0]);
                            elId = db.Elements.Where(x => x.ElementId == id).Select(z => z.Id).First();
                        }
                        catch
                        {
                            go = false;
                        }
                        if (go)
                        {
                            List <Defect> D = new List <Defect>();



                            //если нет совпадений то ok
                            if (E1 != "" && E1 != "0" && E1 != "null")
                            {
                                DEFECT.Def       = E1;
                                DEFECT.ElementId = elId;

                                try
                                {
                                    db.Defects.Add(DEFECT);
                                    db.SaveChanges();
                                }
                                catch
                                {
                                    // db.DefDescriptions.Remove(DESC);
                                    // db.Defects.Remove(DEFECT);
                                }
                            }



                            //Работа
                            DefWork WORK = new DefWork();


                            //если нет совпадений то ok
                            if (E2 != "" && E2 != "0" && E2 != "null")
                            {
                                WORK.Work      = E2;
                                WORK.ElementId = elId;

                                try
                                {
                                    db.DefWorks.Add(WORK);
                                    db.SaveChanges();
                                }
                                catch
                                {
                                    // db.DefDescriptions.Remove(DESC);
                                    //db.DefWorks.Remove(WORK);
                                }
                            }
                            if (E3 != "" && E3 != "0" && E3 != "null")
                            {
                                WORK.Work      = E3;
                                WORK.ElementId = elId;

                                try
                                {
                                    db.DefWorks.Add(WORK);
                                    db.SaveChanges();
                                }
                                catch
                                {
                                    // db.DefDescriptions.Remove(DESC);
                                    // db.DefWorks.Remove(WORK);
                                }
                            }



                            //если нет совпадений то ok
                        }
                    }
                    procount++;
                    progress = Convert.ToInt16(50 + procount / pro100 * 50);
                    ProgressHub.SendMessage("Обрабатываем файл ...", progress);
                    if (procount > pro100)
                    {
                        procount = Convert.ToInt32(pro100);
                    }
                }
            }


            string patch    = Server.MapPath("~/Content/OtchetDefects.xlsx"); //@"C:\inetpub\Otchets\ASP" + "X" + Year.Remove(0, 2) + "X" + Month + ".xlsx";//Server.MapPath("~\\ASP" +"X"+ Year.Remove(0,2) +"X"+ Month + ".xlsx");
            string filename = "OtchetDefects.xlsx";
            string path2    = Url.Content("~/Content/OtchetDefects.xlsx");

            // RedirectToAction("DownloadPS", new {path,filename});
            string dat         = path2; //+ filename;
            string contentType = "application/vnd.ms-excel";

            //
            ViewBag.file = filename;
            ViewBag.dat  = dat;



            // Сохранение файла Excel.
            try
            {
                Opr.EstLiFile(patch);
                WbExcel.SaveCopyAs(patch);//сохраняем в папку
            }
            catch
            {
            }
            ApExcel.Visible        = true; //видимо
            ApExcel.ScreenUpdating = true; //и  обновляемо
            ApExcel.Quit();


            Marshal.FinalReleaseComObject(WbExcel);
            Marshal.FinalReleaseComObject(WB);



            GC.Collect();
            Marshal.FinalReleaseComObject(ApExcel);
            GC.WaitForPendingFinalizers();
            return(View("UploadComplete"));
        }