Esempio n. 1
0
        public ActionResult ElementSelect(string selection)
        {
            int id = 0;

            try
            {
                id = Convert.ToInt32(selection);
            }
            catch { }
            DefectEdit     DE = new DefectEdit();
            Element        E  = db.Elements.Where(x => x.Id == id).First();
            List <Defect>  D  = db.Defects.Where(x => x.ElementId == E.Id).Distinct().ToList();
            List <DefWork> W  = db.DefWorks.Where(x => x.ElementId == E.Id).Distinct().ToList();


            return(View(DE));
        }
Esempio n. 2
0
        public ActionResult DefectEdit(string selection, string del, string addd, string addw, int xd = 0, int xw = 0)
        {
            List <Element> Elements = db.Elements.ToList();



            List <SelectListItem> Result = new List <SelectListItem>();

            foreach (Element El in Elements)
            {
                SelectListItem R = new SelectListItem();
                R.Text  = El.Name + "(" + El.ElementType + ")";
                R.Value = El.Id.ToString();
                Result.Add(R);
            }



            int id = Elements[0].Id;

            try
            {
                if (selection != null)
                {
                    id = Convert.ToInt32(selection);
                }
            }
            catch { }
            if (addd != null)
            {
                Defect d = new Defect();
                d.Def       = addd;
                d.ElementId = id;

                db.Defects.Add(d);
                db.SaveChanges();
            }
            if (addw != null)
            {
                DefWork d = new DefWork();
                d.Work      = addw;
                d.ElementId = id;

                db.DefWorks.Add(d);
                db.SaveChanges();
            }
            DefectEdit DE = new DefectEdit();
            Element    E  = null;

            try
            {
                E = db.Elements.Where(x => x.Id == id).First();
            }
            catch { }
            if (E != null)
            {
                List <Defect> D = new List <Defect>();
                try
                {
                    D = db.Defects.Where(x => x.ElementId == E.Id).Distinct().ToList();
                }
                catch { }

                List <DefWork> W = new List <DefWork>();
                try
                {
                    W = db.DefWorks.Where(x => x.ElementId == E.Id).Distinct().ToList();
                }
                catch { }
                //если есть что почистить

                if (del != null)
                {
                    del = del.Replace(" ", "");
                    if (del != "")
                    {
                        List <Defect> DD = new List <Defect>();
                        try
                        {
                            DD = D.Where(x => x.Def.Contains(del)).ToList();
                            foreach (Defect c in DD)
                            {
                                D.Remove(c);
                            }
                            db.Defects.RemoveRange(DD);
                            db.SaveChanges();
                        }
                        catch { }

                        /*  List<DefWork> DW = new List<DefWork>();
                         * try
                         * {
                         *    DW = W.Where(x => x.Work.Contains(del)).ToList();
                         *    foreach (DefWork c in DW)
                         *    {
                         *        W.Remove(c);
                         *    }
                         *    db.DefWorks.RemoveRange(DW);
                         *    db.SaveChanges();
                         *
                         * }
                         * catch { }
                         */
                    }
                }
                if (xd != 0)
                {
                    try
                    {
                        Defect DD = db.Defects.Where(x => x.Id == xd).First();
                        D.Remove(DD);
                        db.Defects.Remove(DD);
                        db.SaveChanges();
                    }
                    catch (Exception e) { }
                }
                if (xw != 0)
                {
                    try
                    {
                        DefWork DD = db.DefWorks.Where(x => x.Id == xw).First();
                        W.Remove(DD);
                        db.DefWorks.Remove(DD);
                        db.SaveChanges();
                    }
                    catch (Exception e) { }
                }
                //удаляем дубликаты навсегда
                List <Defect>  NoD = new List <Defect>();
                List <DefWork> NoW = new List <DefWork>();
                //удаляем дубликаты дефектов
                foreach (Defect DD in D)
                {
                    List <Defect> N = new List <Defect>();
                    try
                    {
                        N = NoD.Where(x => x.Def.Replace(" ", "").ToLower().Equals(DD.Def.Replace(" ", "").ToLower())).ToList();
                        if (N.Count > 0)
                        {
                            try
                            {//если уже есть такой в последовательности то удаляем
                                db.Defects.Remove(DD);

                                db.SaveChanges();
                            }
                            catch { }
                        }
                        else
                        {
                            NoD.Add(DD);
                        }
                    }
                    catch
                    {
                        //если нет дубликата то добавляем в не дублированные
                        NoD.Add(DD);
                    }
                }
                //удаляем дубликаты работ
                foreach (DefWork DD in W)
                {
                    List <DefWork> N = new List <DefWork>();
                    try
                    {
                        N = NoW.Where(x => x.Work.Replace(" ", "").ToLower().Equals(DD.Work.Replace(" ", "").ToLower())).ToList();
                        if (N.Count > 0)
                        {
                            try
                            {//если уже есть такой в последовательности то удаляем
                                db.DefWorks.Remove(DD);

                                db.SaveChanges();
                            }
                            catch { }
                        }
                        else
                        {
                            NoW.Add(DD);
                        }
                    }
                    catch
                    {
                        //если нет дубликата то добавляем в не дублированные
                        NoW.Add(DD);
                    }
                }
                D          = NoD.OrderBy(x => x.Def).ToList();
                W          = NoW.OrderBy(x => x.Work).ToList();
                DE.Element = E;
                DE.DefWork = W;
                DE.Defect  = D;
            }
            //  int ind = Convert.ToInt16(Result.Where(x => x.Value.Equals(id.ToString())).Select(x=>x.Value).First());
            //   SelectListItem S = Result[ind];
            //   Result.Remove(S);
            //  Result.Insert(0, S);
            ViewBag.Name   = id;
            ViewBag.Result = Result;
            return(View(DE));
        }