예제 #1
0
        public async Task LoadRacks()
        {
            if (IsEditMode)
            {
                return;
            }

            RacksIsLoaded      = false;
            RacksIsBeingLoaded = true;
            try
            {
                List <Rack> racks = await NAV.GetRackList(LocationCode, Code, true, 1, int.MaxValue, ACD.Default).ConfigureAwait(true);

                if (!IsDisposed)
                {
                    SubSchemeElements.Clear();
                    foreach (Rack rack in racks)
                    {
                        SubSchemeElement sse = CreateSSE(rack);

                        if (Global.SearchResponses is List <SearchResponse> )
                        {
                            List <SearchResponse> list = Global.SearchResponses.FindAll(x => x.ZoneCode == Code && x.RackNo == rack.No);
                            if (list is List <SearchResponse> )
                            {
                                sse.Selection = new List <SubSchemeSelect>();
                                foreach (SearchResponse sr in list)
                                {
                                    SubSchemeSelect sss = new SubSchemeSelect
                                    {
                                        Section = sr.Section,
                                        Level   = sr.Level,
                                        Depth   = sr.Depth
                                    };
                                    sse.Selection.Add(sss);
                                }
                            }
                        }
                        SubSchemeElements.Add(sse);
                    }
                    RacksIsLoaded = SubSchemeElements.Count > 0;
                }
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
            }
            finally
            {
                RacksIsBeingLoaded = false;
            }
        }
예제 #2
0
        public async void RunUDS(UserDefinedSelectionViewModel udsvm)
        {
            if (NotNetOrConnection)
            {
                return;
            }

            try
            {
                udsvm.State = ModelState.Loading;
                List <UserDefinedSelectionResult> list = await NAV.RunUDS(Zone.LocationCode, Zone.Code, udsvm.ID, ACD.Default).ConfigureAwait(true);

                if (list is List <UserDefinedSelectionResult> )
                {
                    foreach (RackViewModel rvm in RackViewModels)
                    {
                        rvm.UDSSelects.RemoveAll(x => x.FunctionID == udsvm.ID);
                    }

                    foreach (UserDefinedSelectionResult udsr in list)
                    {
                        RackViewModel rvm = RackViewModels.ToList().Find(x => x.No == udsr.RackNo);

                        if (rvm is RackViewModel)
                        {
                            SubSchemeSelect sss = new SubSchemeSelect()
                            {
                                FunctionID = udsr.FunctionID,
                                Section    = udsr.Section,
                                Level      = udsr.Level,
                                Depth      = udsr.Depth,
                                Value      = udsr.Value,
                                HexColor   = udsr.HexColor
                            };
                            rvm.UDSSelects.Add(sss);
                        }
                    }
                }
                MessagingCenter.Send(this, "UDSRunIsDone");
            }
            catch (OperationCanceledException e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
                ErrorText     = e.Message;
                LoadAnimation = false;
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine(e.Message);
            }
            udsvm.State = ModelState.Normal;
        }
예제 #3
0
        private void ExistInUDS(BinViewModel bvm)
        {
            if (LinkToRackViewModel is RackViewModel)
            {
                if (LinkToRackViewModel.UDSSelects.Count > 0)
                {
                    SubSchemeSelect sss = LinkToRackViewModel.UDSSelects.Find(
                        x => x.Section == bvm.Section &&
                        x.Level == bvm.Level &&
                        x.Depth == bvm.Depth);

                    if (sss is SubSchemeSelect)
                    {
                        bvm.Color                   = Color.FromHex(sss.HexColor);
                        bvm.SearchQuantity          = sss.Value;
                        bvm.IsSearchQuantityVisible = true;
                    }
                }
            }
        }
예제 #4
0
 private void FillRackViewModelsByUDSList(List <UserDefinedSelectionResult> list)
 {
     foreach (UserDefinedSelectionResult udsr in list)
     {
         RackViewModel rvm = RackViewModels.ToList().Find(x => x.ID == udsr.RackID);
         if (rvm is RackViewModel)
         {
             SubSchemeSelect sss = new SubSchemeSelect()
             {
                 FunctionID = udsr.FunctionID,
                 Section    = udsr.Section,
                 Level      = udsr.Level,
                 Depth      = udsr.Depth,
                 Value      = udsr.Value,
                 HexColor   = udsr.HexColor
             };
             rvm.UDSSelects.Add(sss);
         }
     }
 }
예제 #5
0
 private void CheckGlobalSearch(Rack rack, SubSchemeElement sse)
 {
     if (Global.SearchResponses is List <SearchResponse> )
     {
         List <SearchResponse> list = Global.SearchResponses.FindAll(x => x.ZoneCode == Code && x.RackID == rack.ID);
         if (list is List <SearchResponse> )
         {
             sse.Selection = new List <SubSchemeSelect>();
             foreach (SearchResponse sr in list)
             {
                 SubSchemeSelect sss = new SubSchemeSelect
                 {
                     Section = sr.Section,
                     Level   = sr.Level,
                     Depth   = sr.Depth
                 };
                 sse.Selection.Add(sss);
             }
         }
     }
 }
예제 #6
0
 public void GetSearchSelection()
 {
     if (Global.SearchResponses is List <SearchResponse> )
     {
         List <SearchResponse> list = Global.SearchResponses.FindAll(
             x => x.ZoneCode == ZoneCode &&
             x.RackNo == No);
         if (list is List <SearchResponse> )
         {
             foreach (SearchResponse sr in list)
             {
                 SubSchemeSelect sss = new SubSchemeSelect()
                 {
                     Section  = sr.Section,
                     Level    = sr.Level,
                     Depth    = sr.Depth,
                     HexColor = "#e3125c",
                     Value    = sr.QuantityBase
                 };
                 SubSchemeSelects.Add(sss);
             }
         }
     }
 }