コード例 #1
0
        private async Task BuildSelectedLayerStructure(CWorkingLayer layer)
        {
            var projectdata = (ViewModels.ProjectData)BindingContext;

            projectdata.Layers = layer.Layers;

            if (layer.OwnerLayers != null)
            {
                StackBreadcrumb.Children.Clear();
                foreach (var item in layer.OwnerLayers)
                {
                    var btnl = new Button()
                    {
                        Text             = item.Name,
                        FontSize         = Device.GetNamedSize(NamedSize.Micro, typeof(Button)),
                        CommandParameter = item,
                    };
                    btnl.Clicked += Btn_Clicked;
                    StackBreadcrumb.Children.Add(btnl);
                }

                var btn = new Button()
                {
                    Text             = layer.Name,
                    FontSize         = Device.GetNamedSize(NamedSize.Micro, typeof(Button)),
                    CommandParameter = layer,
                };
                btn.Clicked += Btn_Clicked;
                StackBreadcrumb.Children.Add(btn);
            }
        }
コード例 #2
0
        public CWorkingLayer ReadSetting(string name, CWorkingLayer layer)
        {
            string tmp = m_DB.ReadSetting(name, null);

            if (tmp == null)
            {
                return(layer);
            }
            String[]      tokens = tmp.Split(Seperator);
            CWorkingLayer wo     = new CWorkingLayer()
            {
                Database        = tokens[0],
                Description     = tokens[1],
                IsClientPicture = bool.Parse(tokens[2]),
                Name            = tokens[3],
                OverlayUID      = tokens[4],
                Picture         = tokens[5],
                ProjectUID      = tokens[6],
                UID             = tokens[7],
            };

            try
            {
                wo.Layers      = Newtonsoft.Json.JsonConvert.DeserializeObject <CWorkingLayer[]>(tokens[8]);
                wo.OwnerLayers = Newtonsoft.Json.JsonConvert.DeserializeObject <CWorkingLayer[]>(tokens[9]);
            }
            catch (Exception)
            {
            }

            return(wo);
        }
コード例 #3
0
 public Navigator(CWorkingLayer layer, string language)
 {
     m_Layer    = layer;
     m_Language = language;
     //NavigateToRoot();
     Task myTask = StartNavigationInObject("U:8:A49XFBSUP5:");
 }
コード例 #4
0
        public async Task StartQuery(string navigator, CObject o, QueryViewMode mode = QueryViewMode.Accordion)
        {
            ViewModels.ProjectData m_ProjectData = Services.XServices.Instance.GetService <ViewModels.ProjectData>();
            m_Layer      = m_ProjectData.SelectedLayer;
            m_Language   = m_ProjectData.SelectedLanguage.LCID;
            m_Mainobject = o;

            m_Navigator = navigator;

            SetNavigator(navigator);
            SetMainObject(o);

            template = new PageTemplate();

            await UpdateQuery(o, m_Language);

            switch (view)
            {
            case QueryViewMode.Accordion:
                await ShowListQuery();

                break;

            case QueryViewMode.List:
                await ShowTableQuery();

                break;
            }
        }
コード例 #5
0
 public QueryControl()
 {
     InitializeComponent();
     m_ProjectData         = Services.XServices.Instance.GetService <ViewModels.ProjectData>();
     m_Layer               = m_ProjectData.SelectedLayer;
     m_Language            = m_ProjectData.SelectedLanguage.LCID;
     m_Navigator           = m_ProjectData.SelectedDB.Key;
     filter.BindingContext = this;
 }
コード例 #6
0
        public PageFavorites(CWorkingLayer layer, string language)
        {
            InitializeComponent();

            this.Navigator      = new ViewModels.Navigator(layer, language);
            this.Navigator.Nav  = this.NavigationBarControl;
            this.BindingContext = this.Navigator;

            GetFavoritesData();
        }
コード例 #7
0
        public Task <List <CNode> > GetNavigatorNodes_TreeNodes(CWorkingLayer layer, string lcid, string target, string viewstate)
        {
            string url     = m_Url + "dbs/" + layer.Database + "/projects/" + layer.ProjectUID + "/navigator/nodes/" + target + "/treenodes?lcid=" + lcid + "&overlayid=" + layer.UID + "&view=" + viewstate;
            string content = m_DataBase.ReadUrlCache(url);

            if (content == null)
            {
                return(Task.FromResult <List <CNode> >(null));
            }
            var result = Task.FromResult <List <CNode> >(Newtonsoft.Json.JsonConvert.DeserializeObject <List <CNode> >(content));

            return(result);
        }
コード例 #8
0
 public PageNavigator(CWorkingLayer layer, string language, string navmode = "U")
 {
     InitializeComponent();
     this.Navigator = new ViewModels.Navigator(layer, language);
     this.Navigator.NavigationMode         = navmode;
     NavigationBarControl.IsVisible        = false;
     this.Navigator.Nav                    = this.NavigationBarControl;
     this.BindingContext                   = this.Navigator;
     this.NavigationBarControl.OnFiltered += SearchControl_OnFiltered;
     ListViewObjects.ItemTapped           += ListViewObjects_ItemTapped;
     this.ShowHome    = false;
     this.ShowSearch  = true;
     this.ShowRefresh = false;
 }
コード例 #9
0
        public Task <List <CWorkingLayer> > GetWorkingOverlays(CWorkingLayer layer)
        {
            string url     = m_Url + "dbs/" + layer.Database + "/projects/" + layer.ProjectUID + "/overlays?overlayid=" + layer.UID;
            string content = m_DataBase.ReadUrlCache(url);

            if (content == null)
            {
                return(Task.FromResult <List <CWorkingLayer> >(null));
            }

            var result = Task.FromResult <List <CWorkingLayer> >(Newtonsoft.Json.JsonConvert.DeserializeObject <List <CWorkingLayer> >(content));

            return(result);
        }
コード例 #10
0
        private CWorkingLayer[] GetOwnerLayers()
        {
            CWorkingLayer[] layers = new CWorkingLayer[StackBreadcrumb.Children.Count()];
            int             i      = 0;

            foreach (var item in StackBreadcrumb.Children)
            {
                Button btn = item as Button;
                layers[i]             = btn.CommandParameter as CWorkingLayer;
                layers[i].OwnerLayers = null;
                layers[i].Layers      = null;
                i++;
            }
            return(layers);
        }
コード例 #11
0
        public async Task <List <CNode> > GetNavigatorNodes_TreeNodes(CWorkingLayer layer, string lcid, string target, string viewstate)
        {
            if (m_Platform.IsOnline)
            {
                var tmp = await m_ComosWebOnline.GetNavigatorNodes_TreeNodes(layer, lcid, target, viewstate);

                if (tmp != null && tmp.Count > 0)
                {
                    string url    = m_Url + "dbs/" + layer.Database + "/projects/" + layer.ProjectUID + "/navigator/nodes/" + target + "/treenodes?lcid=" + lcid + "&overlayid=" + layer.UID + "&view=" + viewstate;
                    string output = Newtonsoft.Json.JsonConvert.SerializeObject(tmp);
                    m_Database.WriteUrlCache(url, output);
                    return(tmp);
                }
            }
            return(await m_ComosWebOffline.GetNavigatorNodes_TreeNodes(layer, lcid, target, viewstate));
        }
コード例 #12
0
        public async Task <List <CWorkingLayer> > GetWorkingOverlays(CWorkingLayer layer)
        {
            var tmp = await m_ComosWebOffline.GetWorkingOverlays(layer);

            if (tmp == null)
            {
                tmp = await m_ComosWebOnline.GetWorkingOverlays(layer);

                if (tmp != null)
                {
                    string url    = m_Url + "dbs/" + layer.Database + "/projects/" + layer.ProjectUID + "/overlays?overlayid=" + layer.UID;
                    string output = Newtonsoft.Json.JsonConvert.SerializeObject(tmp);
                    m_Database.WriteUrlCache(url, output);
                }
            }
            return(tmp);
        }
コード例 #13
0
        public void WriteSetting(string name, CWorkingLayer layer)
        {
            StringBuilder tmp = new StringBuilder();

            tmp.Append(layer.Database); tmp.Append(Seperator);
            tmp.Append(layer.Description); tmp.Append(Seperator);
            tmp.Append(layer.IsClientPicture); tmp.Append(Seperator);
            tmp.Append(layer.Name); tmp.Append(Seperator);
            tmp.Append(layer.OverlayUID); tmp.Append(Seperator);
            tmp.Append(layer.Picture); tmp.Append(Seperator);
            tmp.Append(layer.ProjectUID); tmp.Append(Seperator);
            tmp.Append(layer.UID); tmp.Append(Seperator);
            tmp.Append(Newtonsoft.Json.JsonConvert.SerializeObject(layer.Layers)); tmp.Append(Seperator);

            tmp.Append(Newtonsoft.Json.JsonConvert.SerializeObject(layer.OwnerLayers));

            m_DB.WriteSetting(name, tmp.ToString());
        }
コード例 #14
0
        public async Task <List <CWorkingLayer> > GetWorkingOverlays(CWorkingLayer layer)
        {
            if (m_Platform.IsOnline)
            {
                var tmp = await m_ComosWebOnline.GetWorkingOverlays(layer);

                if (tmp != null)
                {
                    List <CWorkingLayer> newTmp = tmp;                     //New layers have same Database
                    foreach (CWorkingLayer wl in newTmp)
                    {
                        wl.Database = layer.Database;
                    }
                    string url    = m_Url + "dbs/" + layer.Database + "/projects/" + layer.ProjectUID + "/overlays?overlayid=" + layer.UID;
                    string output = Newtonsoft.Json.JsonConvert.SerializeObject(tmp);
                    m_Database.WriteUrlCache(url, output);
                    return(tmp);
                }
            }
            return(await m_ComosWebOffline.GetWorkingOverlays(layer));
        }
コード例 #15
0
        public async Task <List <CWorkingLayer> > GetWorkingOverlays(CWorkingLayer layer)
        {
            var content = await communicationManager.GetWorkingOverlays(layer.Database, layer.ProjectUID, layer.UID, m_Url, m_Session.Id, serverName).ConfigureAwait(false);

            if (content == null)
            {
                return(null);
            }
            JObject json = JObject.Parse(content);

            if (json == null)
            {
                return(null);
            }

            List <CWorkingLayer> layers = new List <CWorkingLayer>();
            JArray array = (JArray)json.SelectToken("OverlayItems");

            layers = JsonConvert.DeserializeObject <List <CWorkingLayer> >(array.ToString());

            return(layers);
        }
コード例 #16
0
        public NavigatorTabbed(CWorkingLayer layer, string language)
        {
            InitializeComponent();

            NavigationPage.SetHasNavigationBar(this, false);

            PageNavigator unit = new PageNavigator(layer, language)
            {
                Title = "Units"
            };
            PageNavigator location = new PageNavigator(layer, language, "L")
            {
                Title = "Locations"
            };
            PageNavigator docs = new PageNavigator(layer, language, "D")
            {
                Title = "Documents"
            };

            Children.Add(unit);
            Children.Add(location);
            Children.Add(docs);
        }
コード例 #17
0
        public static async Task <CObject> GetObjectBySystemFullName(this IComosWeb comosweb, CWorkingLayer layer, string systemfullname)
        {
            CObject current = null;

            try
            {
                string[] names  = systemfullname.Split('|');
                string   target = layer.ProjectUID;
                bool     found  = false;

                var nodes = await comosweb.GetNavigatorNodes_TreeNodes(layer, "1033", target, "U");

                if (nodes == null)
                {
                    return(null);
                }
                var currentnode = nodes.FirstOrDefault();
                if (currentnode != null)
                {
                    List <CObject> items = currentnode.Items;
                    for (int i = 0; i < names.Length; i++)
                    {
                        foreach (var node in items)
                        {
                            if (string.Compare(node.Name, names[i]) == 0)
                            {
                                found   = true;
                                current = node;
                                target  = current.UID;
                                items   = await comosweb.GetNavigatorNodes_Children(layer.Database, layer.ProjectUID, layer.UID, "1033", target, "U");

                                break;
                            }
                        }
                        if (!found)
                        {
                            return(null);
                        }
                        found = false;
                    }
                }
            }
            catch (Exception e)
            {
            }

            return(current);
        }
コード例 #18
0
 public async Task <CQuerieResult> GetqueriesResult(CWorkingLayer layer, string lcid, string target, string start_objid)
 {
     return(await this.GetqueriesResult(layer.Database, layer.ProjectUID, layer.UID, lcid, target, start_objid));
 }
コード例 #19
0
 public async Task <CSystemObject> GetObject(CWorkingLayer layer, string uid, string lcid = "")
 {
     return(await this.GetObject(layer.Database, layer.ProjectUID, layer.UID, uid, lcid));
 }
コード例 #20
0
 public async Task <string> GetNavigatorNodes_TreeNodes(string url, CWorkingLayer layer, string target, string lcid, string viewstate, string sessionId, string serverName)
 {
     return(await GetFromComosWeb($"{url}/dbs/{layer.Database}/projects/{layer.ProjectUID}/navigator/nodes/{target}/treenodes?lcid={lcid}&overlayid={layer.UID}&view={viewstate}", sessionId, serverName));
 }
コード例 #21
0
        public async Task <List <CNode> > GetNavigatorNodes_TreeNodes(CWorkingLayer layer, string lcid, string target, string viewstate)
        {
            var content = await communicationManager.GetNavigatorNodes_TreeNodes(m_Url, layer, target, lcid, viewstate, m_Session.Id, serverName);

            if (content == null)
            {
                return(null);
            }
            JArray       jarray = JArray.Parse(content);
            List <CNode> result = new List <CNode>();

            if (jarray == null)
            {
                return(result);
            }

            foreach (var token in jarray)
            {
                var   item = token.SelectToken("Item");
                CNode o    = new CNode()
                {
                    Item = new CObject()
                    {
                        ClassType       = item.SelectToken("ClassType").Value <string>(),
                        Description     = item.SelectToken("Description").Value <string>(),
                        IsClientPicture = item.SelectToken("IsClientPicture").Value <bool>(),
                        Picture         = item.SelectToken("Picture").Value <string>(),
                        Name            = item.SelectToken("Name").Value <string>(),
                        OverlayUID      = item.SelectToken("OverlayUID").Value <string>(),
                        ProjectUID      = item.SelectToken("ProjectUID").Value <string>(),
                        UID             = item.SelectToken("UID").Value <string>(),
                        SystemFullName  = item.SelectToken("SystemFullName").Value <string>()
                    }
                };
                if (o.Item.OverlayUID == null)
                {
                    o.Item.OverlayUID = layer.UID;
                }
                if (o.Item.ProjectUID == null)
                {
                    o.Item.ProjectUID = layer.ProjectUID;
                }
                List <CObject> Items = new List <CObject>();
                foreach (var child in (JArray)token.SelectToken("Items"))
                {
                    var Item = new CObject()
                    {
                        ClassType       = child.SelectToken("ClassType").Value <string>(),
                        Description     = child.SelectToken("Description").Value <string>(),
                        IsClientPicture = child.SelectToken("IsClientPicture").Value <bool>(),
                        Picture         = child.SelectToken("Picture").Value <string>(),
                        Name            = child.SelectToken("Name").Value <string>(),
                        OverlayUID      = child.SelectToken("OverlayUID").Value <string>(),
                        ProjectUID      = child.SelectToken("ProjectUID").Value <string>(),
                        UID             = child.SelectToken("UID").Value <string>(),
                        SystemFullName  = child.SelectToken("SystemFullName").Value <string>()
                    };
                    if (Item.OverlayUID == null)
                    {
                        Item.OverlayUID = layer.UID;
                    }
                    if (Item.ProjectUID == null)
                    {
                        Item.ProjectUID = layer.ProjectUID;
                    }
                    Items.Add(Item);
                }
                o.Items = Items;

                result.Add(o);
            }
            return(result);
        }