Esempio n. 1
0
        public ActionResult DeleteConfirmed(int id)
        {
            Arendator arendator = db.Arendators.Find(id);

            db.Arendators.Remove(arendator);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 2
0
 public ActionResult Edit([Bind(Include = "Id,AdresId,Name,Ploshad,Teplota,Teplota12,HotWater,ColdWater,Date")] Arendator arendator)
 {
     if (ModelState.IsValid)
     {
         db.Entry(arendator).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AdresId = new SelectList(db.Adres, "Id", "Adress", arendator.AdresId);
     return(View(arendator));
 }
Esempio n. 3
0
        // GET: Arendators/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Arendator arendator = db.Arendators.Find(id);

            if (arendator == null)
            {
                return(HttpNotFound());
            }
            return(View(arendator));
        }
Esempio n. 4
0
        // GET: Arendators/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Arendator arendator = db.Arendators.Find(id);

            if (arendator == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AdresId = new SelectList(db.Adres, "Id", "Adress", arendator.AdresId);
            return(View(arendator));
        }
Esempio n. 5
0
        public ActionResult Upload(HttpPostedFileBase upload, DateTime Date, bool JQ = false)
        {
            int    progress = 0;
            double pro100   = 0;
            int    procount = 0;

            if (upload != null)
            {
                //найдем старые данные за этот месяц и заменим их не щадя
                List <Arendator> dbArendator = db.Arendators.Where(x => x.Date.Year == Date.Year && x.Date.Month == Date.Month).ToList();
                List <string>    AR          = new List <string>();

                pro100 = dbArendator.Count;

                try
                {
                    db.Arendators.RemoveRange(dbArendator);
                    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 = System.IO.Path.GetFileName(upload.FileName);
                // сохраняем файл в папку Files в проекте
                if (Directory.Exists(Server.MapPath("~/Files/")) == false)
                {
                    Directory.CreateDirectory(Server.MapPath("~/Files/"));
                }
                upload.SaveAs(Server.MapPath("~/Files/" + fileName));
                //обрабатываем файл после загрузки



                string OpenText = Server.MapPath("~/Files/" + fileName);

                string Vkladka = Date.Month.ToString();//укажем номер вкладки
                List <List <string> > Dannie;

                int[]    X     = new int[] { 1, 2, 3, 4, 6, 8, 10 };
                string[] Names = new string[] { "адрес", "№дома", "теплотаотопл, гкалфактич", "площадь", "теплота1/12(гкал,)", "гвкуб,м", "хвкуб,м" };
                string   Error;
                List <List <string> > excel = ExcelSVNUpload.IMPORT(Server.MapPath("~/Files/" + fileName), Names, out Error, Vkladka, X);
                if (excel.Count < 1)
                {
                    ViewBag.Error = Error;
                    ViewBag.Names = Names;
                    //если нифига не загрузилось то
                    Console.WriteLine("Пустой массив значит файл не загрузился!(он уже удалился)");

                    if (!JQ)
                    {
                        return(View("NotUpload"));
                    }
                    else
                    {
                        return(Json(Error));
                    }
                }

                string HomeAdress;
                string ADRESS = "";
                string CODE   = "";
                progress = 0;
                pro100   = excel.Count;
                procount = 0;
                for (int i = 0; i < excel.Count; i++)
                {
                    Arendator Ar     = new Arendator();
                    bool      swsave = false;
                    // for (int j = 0; j < Dannie[i].Count; j++)
                    //{
                    if (excel[i][1] != null)
                    {
                        excel[i][1] = excel[i][1].Replace(" ", "");
                    }
                    if (excel[i][1] != null && excel[i][1] != "")//Когда дошли до номера дома значит это дом и в нем есть арендаторы
                    {
                        decimal ploshad = 0;
                        try { ploshad = Convert.ToDecimal(excel[i][3]); } catch { }
                        decimal teplota12 = 0;
                        try { teplota12 = Convert.ToDecimal(excel[i][4]); } catch { }
                        string adr = excel[i][0].ToString();
                        adr = adr.ToUpper();
                        adr = adr.Replace("ПР.", "");
                        adr = adr.Replace("М.ДЖАЛИЛЯ", "МУСЫ ДЖАЛИЛЯ");
                        if (adr.Equals("ШЛЮЗОВАЯ"))
                        {
                        }
                        int ii = adr.IndexOf(" ");
                        if (ii == adr.Length - 1)
                        {
                            adr = adr.Replace(" ", "");
                        }
                        if (ii < adr.Length - 1 && ii != -1)
                        {
                            //  adr = adr.Replace(" ", "");
                            adr = adr.Replace(",", "");
                            string s1 = adr.Remove(ii);
                            s1 = s1.Replace(",", "");
                            s1 = s1.Replace(" ", "");

                            string s2 = adr.Remove(0, ii);
                            s2 = s2.Replace(",", "");

                            s2 = s2.Replace(" ", "");

                            adr = s1 + " " + s2;
                        }

                        string adr2 = excel[i][1].ToString();
                        adr += " " + adr2;                                              //сохраняем в формате [ХХХХ 123]
                        adr  = adr.ToUpper();
                        adr  = adr.Replace(",", "").Replace(" ", "").Replace("A", "А"); //Английскую в русскую А

                        int AdrId = 0;
                        try
                        {
                            AdrId = db.Adres.Where(x => x.Adress.Equals(adr)).Select(y => y.Id).First();//сохранили адрес
                        }
                        catch {
                            continue;
                        }//если адрес не нашли то пропустим данный шаг в цикле
                        string Adr = "";
                        if (AdrId != 0 && ploshad != 0)
                        {
                            Adres A = db.Adres.Where(x => x.Id == AdrId).First();
                            A.Ploshad = ploshad;
                            if (teplota12 != 0)
                            {
                                A.Teplota12 = teplota12;
                            }
                            db.Entry(A).State = EntityState.Modified;
                            db.SaveChanges();
                            Adr = A.Adress;
                        }

                        Ar.AdresId = AdrId;//пишем в адрес
                        Ar.Date    = Date;
                        int j = i + 1;

                        while (j < excel.Count && excel[j][1] == "0")
                        {
                            try { Ar.Name = excel[j][0]; } catch {
                            }
                            try { Ar.Teplota = Convert.ToDecimal(excel[j][2]); } catch {
                            }
                            try { Ar.Ploshad = Convert.ToDecimal(excel[j][3]); } catch {
                            }
                            try { Ar.Teplota12 = Convert.ToDecimal(excel[j][4]); } catch {
                            }
                            try { Ar.HotWater = Convert.ToDecimal(excel[j][5]); } catch {
                            }
                            try { Ar.ColdWater = Convert.ToDecimal(excel[j][6]); } catch {
                            }
                            db.Arendators.Add(Ar);
                            db.SaveChanges();
                            AR.Add(Adr + ";" + Ar.Name + ";" + Ar.HotWater);
                            j++;
                        }

                        i = j - 1;
                    }
                    procount++;
                    progress = Convert.ToInt16(i / pro100 * 100);
                    if (procount > pro100)
                    {
                        procount = Convert.ToInt32(pro100);
                    }
                    ProgressHub.SendMessage("Обрабатываем файл аренды...", progress);
                }



                if (excel.Count < 1)
                {
                    //если нифига не загрузилось то
                    Console.WriteLine("Пустой массив значит файл не загрузился!(он уже удалился)");

                    if (!JQ)
                    {
                        return(View("NotUpload"));
                    }
                    else
                    {
                        return(Json(Error));
                    }
                }
                else
                {
                    pro100 = excel.Count;
                    Arendator    ArendatorKA = new Arendator();
                    List <Adres> Adresa      = db.Adres.ToList();// грузим все адреса из БД

                    List <TableService>   TSdb     = db.TableServices.ToList();
                    List <List <string> > Services = new List <List <string> >();
                    //один раз преобразуем таблицу сервисов для сравнения чтоб в цикле не вызывать
                    int ser = 0;
                    foreach (TableService T in TSdb)
                    {
                        T.Type = T.Type.Replace(" ", "").ToUpper();
                        Services.Add(new List <string>());
                        Services[ser].Add(T.Type);//для проверки сохраняем
                        ser++;
                    }
                    //для каждой строки в экселе

                    List <string> Adr = Adresa.Select(x => x.Adress).ToList();
                    for (int a = 0; a < Adr.Count; a++)
                    {
                        Adr[a] = Adr[a].Replace(" ", "").ToUpper();
                    }


                    ViewBag.VsegoServices = TSdb.Count;
                    ViewBag.Services      = Services;
                    ViewBag.date          = Date;
                    ViewBag.file          = fileName;
                    ViewBag.AR            = AR;


                    if (!JQ)
                    {
                        return(View("UploadComplete"));
                    }
                    else
                    {
                        return(Json("Ошибок загрузки нет!"));
                    }
                }
            }
            if (!JQ)
            {
                return(RedirectToAction("NotUpload"));
            }
            else
            {
                return(Json("Файл не выбран или неверный формат файла."));
            }
        }