예제 #1
0
        private async void IncidentsPage_Appearing(object sender, EventArgs e)
        {
            if (first_time)
            {
                this.ShowSpinner(Services.TranslateExtension.TranslateText("loading_incident_types"));

                m_QueryResult           = null;
                IncidentTypesCollection = null;
                var result = await LoadIncidentTypes();

                if (result != false)
                {
                    for (int i = 0; i < IncidentTypesCollection.Length; i++)
                    {
                        incidentTypesList.Add(new Types
                        {
                            Name = IncidentTypesCollection[i].Row.Items[2].Text,
                            UID  = IncidentTypesCollection[i].Row.UID,
                        });
                    }
                }
                ListViewIncidents.ItemsSource = incidentTypesList;
                this.HideSpinner();
                first_time = false;
            }
        }
예제 #2
0
        public void GetQueryCachedValues(CQuerieResult query)
        {
            Services.IDatabase     cachedb     = Services.XServices.Instance.GetService <Services.IDatabase>();
            ViewModels.ProjectData ProjectData = Services.XServices.Instance.GetService <ViewModels.ProjectData>();


            foreach (var row in query.Rows)
            {
                for (int i = 0; i < row.Items.Length; i++)
                {
                    string uid  = row.Items[0].UID;
                    CCell  item = row.Items[i];

                    string cachedvalue = cachedb.ReadCacheSpecValue(uid, "", ProjectData.SelectedProject.ProjectUID, ProjectData.SelectedLayer.UID, query.Columns[i].DisplayDescription);
                    if (cachedvalue != "")
                    {
                        int result = 0;
                        item.Text = cachedvalue;

                        if (int.TryParse(cachedvalue, out result))
                        {
                            item.NumericValue = result;
                        }

                        item.IsCachedValue = true;
                    }
                }
            }
        }
예제 #3
0
        private List <ResultItem> QueryResultToResultItem(CQuerieResult query)
        {
            List <ResultItem> list = new List <ResultItem>();

            for (int i = 0; i < query.Rows.Length; i++)
            {
                list.Add(new ResultItem {
                    DisplayName = query.Rows[i].Items[0].Text, DisplayDescription = query.Rows[i].Items[1].Text, UID = query.Rows[i].Items[0].UID
                });
            }
            return(list);
        }
예제 #4
0
        private CQuerieResult GetFavoritesData()
        {
            CQuerieResult q         = new CQuerieResult();
            var           db        = Services.XServices.Instance.GetService <Services.XDatabase>();
            List <string> favorites = db.GetFavorites();

            CColumn[] columns = new CColumn[2];
            CRow[]    rows    = new CRow[favorites.Count];

            columns[0] = new CColumn()
            {
                DisplayDescription = "Name"
            };
            columns[1] = new CColumn()
            {
                DisplayDescription = "Description"
            };
            //columns[2] = new CColumn() { DisplayDescription = "Pic" };

            q.Columns = columns;
            q.Rows    = rows;

            int i = 0;

            foreach (var item in favorites)
            {
                CRow    row    = new CRow();
                CObject output = Newtonsoft.Json.JsonConvert.DeserializeObject <CObject>(item);
                m_Query.SetMainObject(output);
                row.Items = new CCell[2];

                row.Items[0] = new CCell()
                {
                    Text = output.Name, UID = output.UID, Picture = output.Picture
                };
                row.Items[1] = new CCell()
                {
                    Text = output.Description, UID = output.UID, Picture = output.Picture
                };
                //row.Items[2] = new CCell() { Text = output.Picture, UID = output.UID, Picture = output.Picture };

                row.UID = output.UID;
                rows[i] = row;

                i++;
            }

            m_Query.SetNavigator(this.Navigator.Database);
            m_Query.Query = q;
            m_Query.ShowListQuery();

            return(q);
        }
예제 #5
0
        private async void searchBar_SearchButtonPressed(object sender, EventArgs e)
        {
            string tosearch   = searchBar.Text;
            var    db         = Services.XServices.Instance.GetService <Services.XDatabase>();
            string servername = db.ReadSetting("ServerNameBR", "http://siemens.southcentralus.cloudapp.azure.com:5109/Service.svc");


            if (tosearch != "")
            {
                this.ShowSpinner(Services.TranslateExtension.TranslateText("searching"));

                try
                {
                    CQuerieResult result = await m_comosbrweb.SearchDevicesByNameAndDescription(servername, m_ProjectData.SelectedProject.UID,
                                                                                                m_ProjectData.SelectedLayer.UID,
                                                                                                m_ProjectData.SelectedLanguage.LCID,
                                                                                                tosearch, SystemFullNameIncidentObjectsRoot);

                    /*
                     * query.Query = result;
                     * await query.ShowListQuery();
                     * query.SetNavigator(this.Navigator.Database);
                     * query.FilterVisible = true;
                     * query.OnCellTaped += Query_OnCellTaped;
                     */

                    if (result == null)
                    {
                        this.ShowToast("Error al buscar la query. Intente nuevamente");
                        return;
                    }

                    m_List.ItemsSource = QueryResultToResultItem(result);

                    string message = Services.TranslateExtension.TranslateText("results_found");
                    message = message.Replace("@", result.Rows.Count().ToString());

                    this.ShowToast(message);
                }
                catch (Exception ex)
                {
                    this.ShowToast(Services.TranslateExtension.TranslateText("search_error") + ex.Message);
                }
                finally
                {
                    this.HideSpinner();
                }
            }
        }
예제 #6
0
        protected async void DevicesContainerPage_Appearing(object sender, EventArgs e)
        {
            try
            {
                noDeviceWasClicked = true;
                if (first_time)
                {
                    this.ShowSpinner("Cargando...");

                    m_QueryResult             = null;
                    DeviceContainerCollection = null;
                    var result = await LoadDevices();

                    if (result != false)
                    {
                        for (int i = 0; i < DeviceContainerCollection.Length; i++)
                        {
                            deviceContainerList.Add(new DeviceInfo
                            {
                                Name                 = DeviceContainerCollection[i].Row.Items[1].Text + " | " + DeviceContainerCollection[i].Row.Items[3].Text + " | " + DeviceContainerCollection[i].Row.Items[4].Text, // descripcion | owner | descripcion de equipo
                                UID                  = DeviceContainerCollection[i].Row.Items[1].UID,
                                AditionalInfo        = DeviceContainerCollection[i].Row.Items[0].Text + " | " + DeviceContainerCollection[i].Row.Items[2].Text,                                                          // label | ingeniero
                                belongsToAnEquipment = GetBelongsToAnEquipmentIcon(DeviceContainerCollection[i].Row.Items[3].Text),
                                buttonColor          = GetButtonColor(DeviceContainerCollection[i].Row.Items[3].Text),
                            });
                        }
                    }
                    ((ListView)ListViewDevices_).ItemsSource = deviceContainerList;
                    this.HideSpinner();
                    first_time = false;
                }
            }
            catch (Exception ex)
            {
                ShowToast(GetExceptionMessageWhenDevicesContainerDontAppear() + ex.Message);
            }
        }
예제 #7
0
        private async Task <bool> LoadWorkPackages()
        {
            bool result = true;

            try
            {
                ViewModels.ProjectData projectdata = Services.XServices.Instance.GetService <ViewModels.ProjectData>();

                IComosWeb m_ComosWeb = Services.XServices.Instance.GetService <IComosWeb>();
                IDatabase db         = Services.XServices.Instance.GetService <IDatabase>();
                //this.ShowToast($"Finding CObject on DB");
                CObject o = db.GetCObjectByFullName(projectdata.SelectedLayer.UID, Constants.QueryWorkPackagesAnFailureSystemFullName);

                if (o == null)
                {
                    try
                    {
                        o = await m_ComosWeb.GetObjectBySystemFullName(projectdata.SelectedLayer, Constants.QueryWorkPackagesAnFailureSystemFullName);
                    }
                    catch (Exception ex)
                    {
                        await App.Current.MainPage.DisplayAlert("Error", "Error al cargar query: " + ex.Message, Services.TranslateExtension.TranslateText("OK"));

                        return(false);
                    }
                    db.InsertCObject(o, projectdata.SelectedLayer.UID);
                }

                if (o == null)
                {
                    await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), Services.TranslateExtension.TranslateText("my_wp_not_found"), "OK");

                    return(false);
                }

                if (!keepElements)
                {
                    try
                    {
                        m_QueryResult = await m_ComosWeb.GetqueriesResult(
                            projectdata.SelectedDB.Key, o.ProjectUID, o.OverlayUID, projectdata.SelectedLanguage.LCID, o.UID, null);
                    }
                    catch (Exception ex)
                    {
                        await App.Current.MainPage.DisplayAlert("Error", "Error al cargar query: " + ex.Message, Services.TranslateExtension.TranslateText("OK"));

                        return(false);
                    }
                }
                else
                {
                    keepElements = false;
                }

                if (m_QueryResult != null)
                {
                    if (m_QueryResult.Rows.Count() > 0)
                    {
                        List <WorkPackageViewModel> tasks = new List <WorkPackageViewModel>();
                        foreach (var row in m_QueryResult.Rows)
                        {
                            tasks.Add(new WorkPackageViewModel(m_QueryResult.Columns, row));
                        }

                        this.TasksCollection = tasks.ToArray();

                        OnPropertyChanged("TasksCollection");
                        OnPropertyChanged("TasksAttributeNames");
                        UpdateSortingAndGrouping();
                        OnPropertyChanged("SelectedIndex");
                    }
                    else
                    {
                        ShowToast(Services.TranslateExtension.TranslateText("no_wp_found"));
                    }

                    ListViewTasks.EndRefresh();
                }
                else
                {
                    //page not loaded at comosweboffline
                    ShowToast(Services.TranslateExtension.TranslateText("no_wp_found"));
                    ListViewTasks.EndRefresh();
                }
            }
            catch (Exception e)
            {
                await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), e.Message, "OK");

                return(false);
            }
            return(result);
        }
예제 #8
0
        public async void OnUploadClicked(object sender, EventArgs e)
        {
            if (!CheckOnline())
            {
                this.ShowToast(Services.TranslateExtension.TranslateText("uploading_tasks_only_online"));
                return;
            }

            if (TasksCollection == null || TasksCollection.Length == 0)
            {
                this.ShowToast(Services.TranslateExtension.TranslateText("no_tasks_found"));
                return;
            }

            Services.XDatabase     db          = Services.XServices.Instance.GetService <Services.XDatabase>();
            ViewModels.ProjectData projectdata = Services.XServices.Instance.GetService <ViewModels.ProjectData>();
            IBRServiceContracts.CWriteValueCollection totalvalues = new IBRServiceContracts.CWriteValueCollection();

            this.ShowSpinner(Services.TranslateExtension.TranslateText("saving_tasks"));

            foreach (var item in TasksCollection)
            {
                IBRServiceContracts.CWriteValueCollection values = db.GetAllCachedSpecsFromOwner(item.Row.Items[0].UID, projectdata.SelectedProject.UID, projectdata.SelectedLayer.UID);
                if (totalvalues.Values == null)
                {
                    totalvalues.Values = values.Values;
                }
                else
                {
                    totalvalues.Values = totalvalues.Values.Concat(values.Values).ToArray();
                }
            }


            string user         = projectdata.User;
            string project      = projectdata.SelectedProject.UID;
            string workinglayer = projectdata.SelectedLayer.UID;
            string language     = projectdata.SelectedLanguage.LCID;
            string servername   = db.ReadSetting("ServerNameBR", "http://siemens.southcentralus.cloudapp.azure.com:5109/Service.svc");
            var    m_comosbrweb = GetBRComosWeb();

            try
            {
                var result = await m_comosbrweb.WriteComosValues(totalvalues, servername, user, project, workinglayer, language);

                if (result)
                {
                    foreach (var item in totalvalues.Values)
                    {
                        db.ClearAllSpecsFromOwner(item.WebSystemUID, project, workinglayer);
                    }

                    m_QueryResult   = null;
                    TasksCollection = null;
                    Device.BeginInvokeOnMainThread(async() => { await LoadTasks(); });

                    ShowToast(Services.TranslateExtension.TranslateText("done"));
                }
                else
                {
                    ShowToast(Services.TranslateExtension.TranslateText("save_failed"));
                }
            }
            catch (Exception ex)
            {
                await App.Current.MainPage.DisplayAlert("Error", ex.Message, "OK");

                return;
            }

            this.HideSpinner();
        }
예제 #9
0
        public async Task <CQuerieResult> GetqueriesResult(string database, string projectuid, string layer, string lcid, string target, string start_objid)
        {
            var content = await communicationManager.GetqueriesResult(m_Url, database, projectuid, target, lcid, layer, start_objid, m_Session.Id, serverName);

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

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

            CQuerieResult q = new CQuerieResult()
            {
                UID = json.SelectToken("UID").Value <string>(),
            };
            List <int>     invisiblecolumns = new List <int>();
            int            index            = 0;
            List <CColumn> columns          = new List <CColumn>();

            foreach (var jcol in (JArray)json.SelectToken("Columns"))
            {
                CColumn c = new CColumn()
                {
                    Alignment          = jcol.SelectToken("Alignment").Value <int>(),
                    DisplayDescription = jcol.SelectToken("DisplayDescription").Value <string>(),
                    Id          = jcol.SelectToken("Id").Value <int>(),
                    IsDate      = jcol.SelectToken("IsDate").Value <bool>(),
                    Numeric     = jcol.SelectToken("Numeric").Value <bool>(),
                    Visible     = jcol.SelectToken("Visible").Value <bool>(),
                    Width       = jcol.SelectToken("Width").Value <int>(),
                    WithPicture = jcol.SelectToken("WithPicture").Value <bool>(),
                    WrapText    = jcol.SelectToken("WrapText").Value <bool>(),
                };

                if (c.Width > 0)
                {
                    columns.Add(c);
                }
                else
                {
                    invisiblecolumns.Add(index);
                }
                index++;
            }
            q.Columns = columns.ToArray();
            List <CRow> rows = new List <CRow>();

            foreach (var jrow in (JArray)json.SelectToken("Rows"))
            {
                CRow c = new CRow()
                {
                    UID = jrow.SelectToken("UID").Value <string>(),
                };
                List <CCell> cells = new List <CCell>();
                index = 0;

                foreach (var jcell in (JArray)jrow.SelectToken("Items"))
                {
                    CCell cell = new CCell()
                    {
                        IsClientPicture = jcell.SelectToken("IsClientPicture").Value <bool>(),
                        NumericValue    = jcell.SelectToken("NumericValue").Value <double>(),
                        Picture         = jcell.SelectToken("Picture").Value <string>(),
                        Text            = jcell.SelectToken("Text").Value <string>(),
                        UID             = jcell.SelectToken("UID").Value <string>(),
                    };
                    if (!invisiblecolumns.Contains(index))
                    {
                        cells.Add(cell);
                    }
                    index++;
                }
                c.Items = cells.ToArray();
                rows.Add(c);
            }
            q.Rows = rows.ToArray();

            return(q);
        }
예제 #10
0
        private async Task <bool> LoadDevices()
        {
            bool result = false;

            try
            {
                ViewModels.ProjectData projectdata = Services.XServices.Instance.GetService <ViewModels.ProjectData>();

                IComosWeb m_ComosWeb = Services.XServices.Instance.GetService <IComosWeb>();
                IDatabase db         = Services.XServices.Instance.GetService <IDatabase>();

                CObject o = db.GetCObjectByFullName(projectdata.SelectedLayer.UID, GetQueryFullName());

                if (o == null)
                {
                    try
                    {
                        o = await m_ComosWeb.GetObjectBySystemFullName(projectdata.SelectedLayer, GetQueryFullName());
                    }
                    catch (Exception ex)
                    {
                        await App.Current.MainPage.DisplayAlert("Error", "Error al cargar query: " + ex.Message, Services.TranslateExtension.TranslateText("OK"));

                        return(false);
                    }
                    db.InsertCObject(o, projectdata.SelectedLayer.UID);
                }

                if (o == null)
                {
                    await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), Services.TranslateExtension.TranslateText("event_container_not_found"), "OK");

                    return(false);
                }

                try
                {
                    m_QueryResult = await m_ComosWeb.GetqueriesResult(
                        projectdata.SelectedDB.Key, o.ProjectUID, o.OverlayUID, projectdata.SelectedLanguage.LCID, o.UID, null);
                }
                catch (Exception ex)
                {
                    await App.Current.MainPage.DisplayAlert("Error", "Error al cargar query: " + ex.Message, Services.TranslateExtension.TranslateText("OK"));

                    return(false);
                }

                if (m_QueryResult != null)
                {
                    Converters.IsQueryCachedValue cachehandler = new Converters.IsQueryCachedValue();
                    cachehandler.GetQueryCachedValues(m_QueryResult);

                    if (m_QueryResult.Rows.Length > 0)
                    {
                        List <ViewModel> unassignedEventsList = new List <ViewModel>();
                        foreach (var row in m_QueryResult.Rows)
                        {
                            unassignedEventsList.Add(new ViewModel(m_QueryResult.Columns, row));
                        }

                        this.DeviceContainerCollection = unassignedEventsList.ToArray();

                        OnPropertyChanged("EventContainerCollection");

                        /*OnPropertyChanged("TasksAttributeNames");
                         *          UpdateSortingAndGrouping();*/
                        result = true;
                    }
                    else
                    {
                        ShowToast("No hay resultados");
                        result = false;
                    }
                }
                else
                {
                    //page not loaded at comosweboffline
                    ShowToast("No hay resultados");
                }

                ((ListView)ListViewDevices_).EndRefresh();
            }
            catch (Exception e)
            {
                await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), e.Message,
                                                        "OK");

                return(false);
            }

            return(result);
        }
예제 #11
0
        private async void SearchForItems()
        {
            string tosearch = searchBarPageSearch.Text;

            if (tosearch != null && tosearch != "" && tosearch.Length > 3)
            {
                var m_Http = Services.XServices.Instance.GetService <HttpClient>();
                ComosWebSDK.brcomosweb.ComosBRWeb m_comosbrweb  = new ComosWebSDK.brcomosweb.ComosBRWeb(m_Http);
                ViewModels.ProjectData            m_ProjectData = Services.XServices.Instance.GetService <ViewModels.ProjectData>();
                var    db         = Services.XServices.Instance.GetService <Services.XDatabase>();
                string servername = db.ReadSetting("ServerNameBR", "http://siemens.southcentralus.cloudapp.azure.com:5109/Service.svc");

                this.ShowSpinner(Services.TranslateExtension.TranslateText("searching"));

                try
                {
                    CQuerieResult result = null;
                    if (toggletags.IsToggled && !toggledocs.IsToggled)
                    {
                        result = await m_comosbrweb.SearchDevicesByNameAndDescription(servername, m_ProjectData.SelectedProject.UID,
                                                                                      m_ProjectData.SelectedLayer.UID,
                                                                                      m_ProjectData.SelectedLanguage.LCID,
                                                                                      tosearch);
                    }
                    else if (!toggletags.IsToggled && toggledocs.IsToggled)
                    {
                        result = await m_comosbrweb.SearchDocumentsByNameAndDescription(servername, m_ProjectData.SelectedProject.UID,
                                                                                        m_ProjectData.SelectedLayer.UID,
                                                                                        m_ProjectData.SelectedLanguage.LCID,
                                                                                        tosearch);
                    }
                    else if (toggletags.IsToggled && toggledocs.IsToggled)
                    {
                        result = await m_comosbrweb.SearchAllByNameAndDescription(servername, m_ProjectData.SelectedProject.UID,
                                                                                  m_ProjectData.SelectedLayer.UID,
                                                                                  m_ProjectData.SelectedLanguage.LCID,
                                                                                  tosearch);
                    }

                    else if (!toggletags.IsToggled && !toggledocs.IsToggled)
                    {
                        // do nothing
                        result = new CQuerieResult {
                            Rows = new CRow[1], Columns = new CColumn[1]
                        };
                    }

                    if (result == null)
                    {
                        this.ShowToast("Error. Intente nuevamente");
                        return;
                    }

                    m_List.ItemsSource = QueryResultToResultItem(result);


                    //m_Query.Query = result;
                    //await m_Query.ShowListQuery();
                    //m_Query.SetNavigator(m_ProjectData.SelectedDB.Key);

                    string message = Services.TranslateExtension.TranslateText("results_found");
                    message = message.Replace("@", result.Rows.Count().ToString());
                    this.ShowToast(message);
                }
                catch (Exception ex)
                {
                    this.ShowToast(Services.TranslateExtension.TranslateText("search_error") + ex.Message);
                }
                finally
                {
                    this.HideSpinner();
                }
            }
        }
예제 #12
0
        public async Task <bool> LoadIncidentTypes()
        {
            bool result = false;

            try
            {
                ViewModels.ProjectData projectdata = Services.XServices.Instance.GetService <ViewModels.ProjectData>();

                IComosWeb m_ComosWeb = Services.XServices.Instance.GetService <IComosWeb>();
                IDatabase db         = Services.XServices.Instance.GetService <IDatabase>();
                //this.ShowToast($"Finding CObject on DB");
                CObject o = db.GetCObjectByFullName(projectdata.SelectedLayer.UID, Constants.QueryIncidentTypesFullName);

                if (o == null)
                {
                    try
                    {
                        o = await m_ComosWeb.GetObjectBySystemFullName(projectdata.SelectedLayer, Constants.QueryIncidentTypesFullName);
                    }
                    catch (TaskCanceledException) { return(false); } // If there is a Logout Request
                    catch (Exception ex)
                    {
                        await App.Current.MainPage.DisplayAlert("Error", "Error al cargar query: " + ex.Message, Services.TranslateExtension.TranslateText("OK"));

                        return(false);
                    }
                    db.InsertCObject(o, projectdata.SelectedLayer.UID);
                }

                if (o == null)
                {
                    await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), Services.TranslateExtension.TranslateText("my_incidents_not_found"), "OK");

                    return(false);
                }

                try
                {
                    m_QueryResult = await m_ComosWeb.GetqueriesResult(
                        projectdata.SelectedDB.Key, o.ProjectUID, o.OverlayUID, projectdata.SelectedLanguage.LCID, o.UID, null);
                }
                catch (TaskCanceledException) { return(false); } // If there is a Logout Request
                catch (Exception ex)
                {
                    await App.Current.MainPage.DisplayAlert("Error", "Error al cargar query: " + ex.Message, Services.TranslateExtension.TranslateText("OK"));

                    return(false);
                }

                if (m_QueryResult != null)
                {
                    Converters.IsQueryCachedValue cachehandler = new Converters.IsQueryCachedValue();
                    cachehandler.GetQueryCachedValues(m_QueryResult);

                    if (m_QueryResult.Rows.Length > 0)
                    {
                        List <ViewModel> incidentTypes = new List <ViewModel>();
                        foreach (var row in m_QueryResult.Rows)
                        {
                            incidentTypes.Add(new ViewModel(m_QueryResult.Columns, row));
                        }
                        this.IncidentTypesCollection = incidentTypes.ToArray();

                        OnPropertyChanged("IncidentTypesCollection");

                        /*OnPropertyChanged("TasksAttributeNames");
                         * UpdateSortingAndGrouping();*/
                    }
                    else
                    {
                        ShowToast(Services.TranslateExtension.TranslateText("no_incidents_types_found"));
                    }

                    result = true;
                }
                else
                {
                    //page not loaded at comosweboffline
                    ShowToast(Services.TranslateExtension.TranslateText("no_incidents_types_found"));
                }

                ListViewIncidents.EndRefresh();
            }
            catch (Exception e)
            {
                await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), e.Message, "OK");

                return(false);
            }

            return(result);
        }