Exemplo n.º 1
0
        public List <GrouppedTechRoutes> CheckDeletedTechOpers()
        {
            var result = new List <GrouppedTechRoutes>();

            var dmTechRoutes = new MongoDbDataManager <TechRoute>(_database);
            var dmTechOpers  = new MongoDbDataManager <TechOperation>(_database);
            var orders       = new MongoDbDataManager <Order>(_database).GetListCollection();

            var parentsIds = GetParentIds().ToList();

            var techRoutes   = dmTechRoutes.GetListCollection();
            var techOpers    = dmTechOpers.GetListCollection();
            var dictDrawings = new Dictionary <int, List <Drawing> >();
            var dictOrders   = new List <Order>();

            foreach (var techRoute in techRoutes)
            {
                var actualTechOpers = new List <TechOperation>();

                foreach (var actualTo in techRoute.TechOperations.Select(techOperation => techOpers.FirstOrDefault(x => x.Id == techOperation.Id)))
                {
                    if (actualTo != null)
                    {
                        actualTechOpers.Add(actualTo);
                    }
                    else
                    {
                        throw new Exception();
                    }
                }

                actualTechOpers = actualTechOpers.OrderBy(x => x.OrderInPrint).ToList();

                if (actualTechOpers.Any(x => x.IsDelete))
                {
                    foreach (var parentsId in parentsIds)
                    {
                        if (!dictDrawings.ContainsKey(parentsId))
                        {
                            var coll = new SepDrawingDataManager(_database, parentsId);
                            dictDrawings.Add(parentsId, coll.GetListCollection());
                        }

                        if (dictDrawings[parentsId].Any(x => x.TechRouteId == techRoute.Id))
                        {
                            var ss = orders.FirstOrDefault(x => x.DrawingId == parentsId);
                            if (dictOrders.All(x => x.Id != ss.Id))
                            {
                                dictOrders.Add(ss);
                                Debug.WriteLine($"Tech route {techRoute.Name}. Order no: {ss.OrderNo}");
                            }
                        }

                        result.Add(new GrouppedTechRoutes()
                        {
                            Name = techRoute.Name, Count = parentsId
                        });
                    }
                }
            }

            foreach (var dictOrder in dictOrders)
            {
                Debug.WriteLine(dictOrder.OrderNo);
            }

            return(result);
        }