Ejemplo n.º 1
0
        public ActionResult Apply(string NewAmountZones, string AddZones, string Type_zone,string Address)
        {
            ViewData["Apply"] = "Изменения прошли успешно";
            ViewDataSelectList("");
            
                Int32 AmountZones = 0;
                Int32 AddZone = 0;
                int ap = mp.parkingzone.Count(x =>x.type_parking.Name==Type_zone);
                type_parking name = mp.type_parking.Where(x => x.Name == Type_zone).FirstOrDefault();
            //позже учесть если не исчез, т.е. не null

                if (NewAmountZones == null & AddZones == null)
                {
                    ViewData["Apply"] = "Изменений не произошло.";
                    return View(mp.parkingzone.ToList());
                }


                if (NewAmountZones != null & AddZones == null)
                    {
                        try
                        {
                            AmountZones = Convert.ToInt32(NewAmountZones);
                            if (AmountZones < 0) //|| AmountPlace == ap)
                            {
                                ViewData["Apply"] = "Неверный формат ввода. Значение должно быть положительным и целочисленным"; //+ отличаться от текущего количества мест в уровне.";
                                return View(mp.parkingzone.ToList());
                            }
                        }
                        catch
                        {
                            ViewData["Apply"] = "Неверный формат ввода. Значение должно быть положительным и целочисленным"; //+ отличаться от текущего количества мест в уровне.";
                            return View(mp.parkingzone.ToList());
                        }
                        if (AmountZones <= ap)
                        {
                            //Если добавлять поле "Количество удаляемых мест из уровня, то в качестве параметра AmountPlace отсылать значение: ap-amount_delete_place
                            //таким образом я как бы вновь получу новое количество мест, а это значит, что и номер последнего места.
                            //ViewData["EditLevel"] = "Количество мест в уровне уменьшилось на " + Convert.ToString(ap-AmountPlace);
                            //place dis = new place();
                            ViewData["Apply"] = "Функция обрезания количества уровней временно недоступна";//dis.Disable(id_location_level, AmountPlace, "Disabled");
                            return View(mp.parkingzone.ToList());



                        }
                        else if (AmountZones > ap)
                        {

                            parkingzone lz = mp.parkingzone.OrderByDescending(x => x.Parking_zone).FirstOrDefault();
                            if (lz != null)
                            {
                                for (int i = lz.Parking_zone + 1; i <= (lz.Parking_zone+AmountZones-ap); i++)
                                {
                                    parkingzone nl = new parkingzone();
                                    nl.Parking_zone = i;
                                    nl.id_type = name.id_type;
                                    nl.Address = Address;
                                    mp.parkingzone.Add(nl);
                                    mp.SaveChanges();
                                }
                            }
                            else
                            {
                                //с единицы
                                for (int i = 1; i <= AmountZones; i++)
                                {
                                    parkingzone nl = new parkingzone();
                                    nl.Parking_zone = i;
                                    nl.id_type = name.id_type;
                                    nl.Address = Address;
                                    mp.parkingzone.Add(nl);
                                    mp.SaveChanges();
                                }
                            }

                        }


                    }
                else if (NewAmountZones == null & AddZones != null)
                    {
                        try
                        {
                            AddZone = Convert.ToInt32(AddZones);
                            if (AddZone <= 0)
                            {
                                ViewData["Apply"] = "Неверный формат ввода. Значение должно быть больше нуля и целочисленным.";
                                return View(mp.parkingzone.ToList());
                            }
                        }
                        catch
                        {
                            ViewData["Apply"] = "Неверный формат ввода. Значение должно быть больше нуля и целочисленным.";
                            return View(mp.parkingzone.ToList());
                        }


                        parkingzone lz = mp.parkingzone.OrderByDescending(x => x.Parking_zone).FirstOrDefault();
                        if (lz != null)
                        {
                            for (int i = lz.Parking_zone + 1; i <= lz.Parking_zone + AddZone; i++)
                            {
                                parkingzone nl = new parkingzone();
                                nl.Parking_zone = i;
                                nl.id_type = name.id_type;
                                nl.Address = Address;
                                mp.parkingzone.Add(nl);
                                mp.SaveChanges();
                            }
                        }
                        else
                        {
                            //с единицы
                            for (int i = 1; i <= AddZone; i++)
                            {
                                parkingzone nl = new parkingzone();
                                nl.Parking_zone = i;
                                nl.id_type = name.id_type;
                                nl.Address = Address;
                                mp.parkingzone.Add(nl);
                                mp.SaveChanges();
                            }
                        }
                    }

                return View(mp.parkingzone.ToList());
        } 
Ejemplo n.º 2
0
        public ActionResult Change_zone(parkingzone chpz, Int32 P_z, string Type_zone, string NewAmountLevels, string AddLevels, string Type_lev)
        {
            //В случае успеха можно вернуть
            // return RedirectToAction("ZonesLevelsPlaces", new { Value = "" });
            parkingzone pz = mp.parkingzone.Where(x => x.Parking_zone == P_z).FirstOrDefault();
            if (Type_zone != null)
            {
                if (ModelState.IsValid)
                {










                Int32 AmountLevels = 0;
                Int32 AddLevel = 0;
                int ap = mp.levelzone.Count(x =>x.Parking_zone== P_z & x.TypeLevel == Type_lev);


                if (pz.Address == chpz.Address & Type_zone == pz.type_parking.Name & NewAmountLevels == null & AddLevels == null)
                {
                    ViewData["EditZone1"] = "Изменений не произошло.";
                }
                else
                {
                    type_parking tp = mp.type_parking.Where(t => t.Name == Type_zone).FirstOrDefault();
                    pz.id_type = tp.id_type;
                    pz.Address = chpz.Address;
                    mp.Entry(pz).State = EntityState.Modified;
                    mp.SaveChanges();
                    ViewData["EditZone1"] = "Информация о зоне обновлена.";
                }

                    
                    if (NewAmountLevels != null  & AddLevels == null)
                    {
                        try
                        {
                            AmountLevels = Convert.ToInt32(NewAmountLevels);
                            if (AmountLevels < 0) //|| AmountPlace == ap)
                            {
                                ViewData["EditZone2"] = "Неверный формат ввода. Значение должно быть положительным и целочисленным"; //+ отличаться от текущего количества мест в уровне.";
                            }
                        }
                        catch
                        {
                            ViewData["EditZone2"] = "Неверный формат ввода. Значение должно быть положительным и целочисленным"; //+ отличаться от текущего количества мест в уровне.";
                        }
                        if (AmountLevels <= ap)
                        {
                            //Если добавлять поле "Количество удаляемых мест из уровня, то в качестве параметра AmountPlace отсылать значение: ap-amount_delete_place
                            //таким образом я как бы вновь получу новое количество мест, а это значит, что и номер последнего места.
                            //ViewData["EditLevel"] = "Количество мест в уровне уменьшилось на " + Convert.ToString(ap-AmountPlace);
                            //place dis = new place();
                            ViewData["EditZone2"] = "Функция обрезания количества уровней временно недоступна";//dis.Disable(id_location_level, AmountPlace, "Disabled");




                        }
                        else if (AmountLevels > ap)
                        {

                            levelzone lz = mp.levelzone.Where(x => x.TypeLevel == Type_lev & x.Parking_zone == P_z).OrderByDescending(x => x.Level).FirstOrDefault();
                            if (lz != null)
                            {
                                for (int i = lz.Level + 1; i <= AmountLevels; i++)
                                {
                                    levelzone nl = new levelzone();
                                    nl.Level = i;
                                    nl.Parking_zone = P_z;
                                    nl.TypeLevel = Type_lev;
                                    mp.levelzone.Add(nl);
                                    mp.SaveChanges();
                                }
                            }
                            else
                            {
                                //с единицы
                                for (int i = 1; i <= AmountLevels; i++)
                                {
                                    levelzone nl = new levelzone();
                                    nl.Level = i;
                                    nl.Parking_zone = P_z;
                                    nl.TypeLevel = Type_lev;
                                    mp.levelzone.Add(nl);
                                    mp.SaveChanges();
                                }
                            }

                                   /* place ad_pl = new place();
                                    string message = ad_pl.AddPlace(id_location_level, AmountPlace - ap, Status, (long)ChTariffForPlaces);
                                    if (message != "")
                                    {
                                        ViewData["EditZone2"] = message;
                                    }*/



                        }


                    }
                    else if (NewAmountLevels == null & AddLevels != null)
                    {
                        try
                        {
                            AddLevel = Convert.ToInt32(AddLevels);
                            if (AddLevel <= 0)
                            {
                                ViewData["EditZone2"] = "Неверный формат ввода. Значение должно быть больше нуля и целочисленным.";
                            }
                        }
                        catch
                        {
                            ViewData["EditZone2"] = "Неверный формат ввода. Значение должно быть больше нуля и целочисленным.";
                        }


                        levelzone lz = mp.levelzone.Where(x => x.TypeLevel == Type_lev & x.Parking_zone == P_z).OrderByDescending(x => x.Level).FirstOrDefault();
                        if (lz != null)
                        {
                            for (int i = lz.Level + 1; i <= lz.Level + AddLevel; i++)
                            {
                                levelzone nl = new levelzone();
                                nl.Level = i;
                                nl.Parking_zone = P_z;
                                nl.TypeLevel = Type_lev;
                                mp.levelzone.Add(nl);
                                mp.SaveChanges();
                            }
                        }
                        else
                        {
                            //с единицы
                            for (int i = 1; i <= AddLevel; i++)
                            {
                                levelzone nl = new levelzone();
                                nl.Level = i;
                                nl.Parking_zone = P_z;
                                nl.TypeLevel = Type_lev;
                                mp.levelzone.Add(nl);
                                mp.SaveChanges();
                            }
                        }

                    }















                }
                else
                {
                    ViewDataSelectList(pz.type_parking.Name);
                    return View(pz);
                }
            }
            else ViewData["EditZone1"] = "Не задан тип парковочной зоны!";
            ViewDataSelectList(pz.type_parking.Name);
            return View(pz);
        }