Exemple #1
0
 public UEV(UEV source)
 {
     Name  = source.Name;
     Unit  = source.Unit;
     Value = source.Value;
     GeobiosphereEmergyBaseline = source.GeobiosphereEmergyBaseline;
     Reference = source.Reference;
 }
Exemple #2
0
        public ActionResult DeleteConfirmed(int id)
        {
            UEV uEV = db.UEVs.Find(id);

            db.UEVs.Remove(uEV);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #3
0
 public ActionResult Edit([Bind(Include = "Id,AdresId,Name,KodUEV,Pribor,OtEnergyRub,OtEnergyGkal,HwEnergyRub,HwEnergyGkal,HwVodaRub,HwVodaM3,Date")] UEV uEV)
 {
     if (ModelState.IsValid)
     {
         db.Entry(uEV).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AdresId = new SelectList(db.Adres, "Id", "Adress", uEV.AdresId);
     return(View(uEV));
 }
Exemple #4
0
        // GET: UEVs/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UEV uEV = db.UEVs.Find(id);

            if (uEV == null)
            {
                return(HttpNotFound());
            }
            return(View(uEV));
        }
Exemple #5
0
        // GET: UEVs/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UEV uEV = db.UEVs.Find(id);

            if (uEV == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AdresId = new SelectList(db.Adres, "Id", "Adress", uEV.AdresId);
            return(View(uEV));
        }
Exemple #6
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            string i_Name      = "";
            double i_Value     = 0;
            string i_Unit      = "";
            double i_GEB       = 0;
            string i_Reference = "";

            //TODO: Add defaults and optional fields
            if (!DA.GetData(0, ref i_Name))
            {
                return;
            }
            if (!DA.GetData(1, ref i_Value))
            {
                return;
            }
            if (!DA.GetData(2, ref i_Unit))
            {
                return;
            }
            if (!DA.GetData(3, ref i_GEB))
            {
                return;
            }
            if (!DA.GetData(4, ref i_Reference))
            {
                return;
            }

            UEV new_UEV = new UEV();

            new_UEV.Name  = i_Name;
            new_UEV.Value = i_Value;
            Units parsedUnit; //TODO: Better parsing

            if (!Enum.TryParse(i_Unit, out parsedUnit))
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Error, string.Format("\"{0}\" is not a supported unit", i_Unit));
                return;
            }
            new_UEV.Unit = parsedUnit;
            new_UEV.GeobiosphereEmergyBaseline = i_GEB;
            new_UEV.Reference = i_Reference;

            DA.SetData(0, new GH_UEVType(new_UEV));
        }
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            GH_UEVType i_GH_UEV = null;

            if (!DA.GetData(0, ref i_GH_UEV) || i_GH_UEV == null)
            {
                return;
            }

            UEV i_UEV = i_GH_UEV.Value;

            DA.SetData(0, i_UEV.Name);
            DA.SetData(1, i_UEV.Value);
            DA.SetData(2, i_UEV.Unit.ToString());
            DA.SetData(3, i_UEV.GeobiosphereEmergyBaseline);
            DA.SetData(4, i_UEV.Reference);
        }
Exemple #8
0
        public ActionResult Upload(HttpPostedFileBase upload, DateTime Date, bool JQ = false)
        {
            int    progress = 0;
            double pro100   = 0;
            int    procount = 0;

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

                //найдем старые данные за этот месяц и заменим их не щадя
                List <UEV> dbUEV = db.UEVs.Where(x => x.Date.Year == Date.Year && x.Date.Month == Date.Month).ToList();

                pro100 = dbUEV.Count;
                foreach (UEV S in dbUEV)
                {
                    try
                    {
                        db.UEVs.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);
                    }
                }

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

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

                //обрабатываем файл после загрузки

                string[] Names = new string[] { "Kp", "№прибора", "Тариф", "Общийотпуск", "ИтогосуммасНДСруб.", "Тариф", "Общийотпуск", "ИтогосуммасНДСруб.", "Тариф", "Общийотпуск", "ИтогосуммасНДСруб." };
                string   Error = "";
                List <List <string> > excel       = ExcelSVNUpload.IMPORT(Server.MapPath("~/Files/" + fileName), Names, out Error);
                List <string>         Errors      = new List <string>();
                List <string>         SmallErrors = new List <string>();
                List <string>         Codes       = new List <string>(); //коды УЭВ все построчно для сверки с таблицей
                List <string>         Teplos      = new List <string>(); //рубли тепло
                List <string>         HWs         = new List <string>(); //рубли гв
                if (excel.Count < 1)
                {
                    //если нифига не загрузилось то
                    ViewBag.Error = Error;
                    ViewBag.Names = Names;
                    return(View("NotUpload"));
                }
                else
                {
                    procount = 0;
                    pro100   = excel.Count;
                    UEV          UEVKA  = new UEV();
                    List <Adres> Adresa = db.Adres.ToList();// грузим все адреса из БД


                    //для каждой строки в экселе
                    foreach (List <string> L in excel)
                    {
                        bool EstName = false;
                        int  CodUEV  = 0;
                        Codes.Add(L[0]);
                        Teplos.Add(L[4]);
                        HWs.Add(L[7]);
                        try
                        {
                            CodUEV = Convert.ToInt32(L[0]);
                        }
                        catch
                        {
                            SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Ошибка конвертации кода");
                        }
                        if (CodUEV != 0)
                        {
                            foreach (Adres A in Adresa)
                            {
                                if (A.UEV == CodUEV)
                                {
                                    //если в массиве адресов есть адрес из строчки то сохраняем айдишник
                                    EstName       = true;
                                    UEVKA.AdresId = A.Id;
                                    UEVKA.KodUEV  = A.UEV;
                                    UEVKA.Date    = Date;
                                    UEVKA.Name    = "";
                                    break;
                                }
                            }
                            //если имени нет в списке то и сохранять не будем
                            if (EstName)
                            {
                                int     Pribor       = 0;
                                decimal OtEnergyGkal = 0;
                                decimal OtEnergyRub  = 0;
                                decimal HwEnergyGkal = 0;
                                decimal HwEnergyRub  = 0;
                                decimal HwVodaM3     = 0;
                                decimal HwVodaRub    = 0;
                                try
                                {
                                    Pribor = Convert.ToInt32(L[1]);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Не преобразуется в инт " + UEVKA.AdresId + " " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не преобразуется ПУ");
                                }
                                try
                                {
                                    OtEnergyGkal = Convert.ToDecimal(L[3]);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Не преобразуется в децимал " + UEVKA.AdresId + " " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не преобразуется отопление энергия объём");
                                }
                                try
                                {
                                    OtEnergyRub = Convert.ToDecimal(L[4]);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Не преобразуется в децимал " + UEVKA.AdresId + " " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не преобразуется отопление энергия руб.");
                                }
                                try
                                {
                                    HwEnergyGkal = Convert.ToDecimal(L[6]);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Не преобразуется в децимал " + UEVKA.AdresId + " " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не преобразуется ГВ энергия");
                                }
                                try
                                {
                                    HwEnergyRub = Convert.ToDecimal(L[7]);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Не преобразуется в децимал " + UEVKA.AdresId + " " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не преобразуется ГВ энергия руб");
                                }
                                try
                                {
                                    HwVodaM3 = Convert.ToDecimal(L[9]);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Не преобразуется в децимал " + UEVKA.AdresId + " " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не преобразуется ГВ объём");
                                }
                                try
                                {
                                    HwVodaRub = Convert.ToDecimal(L[10]);
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Не преобразуется в децимал " + UEVKA.AdresId + " " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не преобразуется ГВ руб");
                                }
                                UEVKA.Pribor       = Pribor;
                                UEVKA.OtEnergyGkal = OtEnergyGkal;
                                UEVKA.OtEnergyRub  = OtEnergyRub;
                                UEVKA.HwEnergyGkal = HwEnergyGkal;
                                UEVKA.HwEnergyRub  = HwEnergyRub;
                                UEVKA.HwVodaM3     = HwVodaM3;
                                UEVKA.HwVodaRub    = HwVodaRub;


                                try
                                {
                                    db.UEVs.Add(UEVKA);
                                    db.SaveChanges();
                                }
                                catch (Exception e)
                                {
                                    Console.WriteLine("Ошибка записи в базу данных " + e.Message);
                                    SmallErrors.Add(L[0] + ";" + L[1] + ";" + L[2] + " Не смогли сохранить в БД адрес ИД=" + UEVKA.AdresId);
                                }
                            }
                            else
                            {//если имени нет в списке, значит нужно вывести предупреждение чтобы часами не искать
                                if (CodUEV != 0)
                                {
                                    if (Errors.Count == 0)
                                    {
                                        Errors.Add("Найдены коды, отсутствующие в БД!");
                                    }
                                    Errors.Add("Код=" + CodUEV.ToString() + " не найден в БД.");
                                }
                            }
                        }
                        procount++;
                        progress = Convert.ToInt16(50 + procount / pro100 * 50);
                        ProgressHub.SendMessage("Обрабатываем файл УЭВ...", progress);
                        if (procount > pro100)
                        {
                            procount = Convert.ToInt32(pro100);
                        }
                    }
                    List <string> Adr = Adresa.Select(x => x.Adress).ToList();
                    for (int a = 0; a < Adr.Count; a++)
                    {
                        Adr[a] = Adr[a].Replace(" ", "").ToUpper();
                    }

                    if (Errors.Count == 0)
                    {
                        Errors.Add("Ошибок загрузки нет!");
                    }
                    ViewBag.VsegoUEV = db.UEVs.Where(x => x.Date.Year == Date.Year && x.Date.Month == Date.Month).Count();
                    //ViewBag.Services = Services;
                    ViewBag.UEV         = db.UEVs.Where(x => x.Date == Date).Include(z => z.Adres.Adress).Select(y => y.Adres.Adress + "ОТ(энергия руб.)=" + y.OtEnergyRub + " ГВ(энергия руб.)=" + y.HwEnergyRub + "ГВ(теплоноситель руб.)=" + y.HwVodaRub).ToList();
                    ViewBag.date        = Date;
                    ViewBag.file        = fileName;
                    ViewBag.Gkal        = db.UEVs.Where(x => x.Date.Year == Date.Year && x.Date.Month == Date.Month).Sum(y => y.OtEnergyGkal);
                    ViewBag.M3Water     = db.UEVs.Where(x => x.Date.Year == Date.Year && x.Date.Month == Date.Month).Sum(y => y.HwVodaM3);
                    ViewBag.GkalWater   = db.UEVs.Where(x => x.Date.Year == Date.Year && x.Date.Month == Date.Month).Sum(y => y.HwEnergyGkal);
                    ViewBag.Errors      = Errors;
                    ViewBag.Codes       = Codes;
                    ViewBag.HWs         = HWs;
                    ViewBag.Teplos      = Teplos;
                    ViewBag.SmallErrors = SmallErrors;
                    if (JQ == false)
                    {
                        return(View("UploadComplete"));
                    }
                    else
                    {
                        Errors.Add(Error);
                        return(Json(Errors));
                    }
                }
            }
            if (!JQ)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(Json("Файл не выбран! Выберните файл EXCEL формата XLS или XLSX НЕ CSV!!!"));
            }
        }