예제 #1
0
        public PageProjects(ComosWebSDK.IComosWeb web)
        {
            InitializeComponent();
            this.ShowHamburger  = false;
            this.ShowBackButton = true;
            this.web            = web;
            m_ProjectData       = new ViewModels.ProjectData();

            this.BindingContext = m_ProjectData;
        }
예제 #2
0
        private void GetAllDocuments()
        {
            List <ComosWebSDK.Data.CDocument> objects = null;

            Services.IDatabase     db          = Services.XServices.Instance.GetService <Services.IDatabase>();
            ViewModels.ProjectData projectdata = Services.XServices.Instance.GetService <ViewModels.ProjectData>();

            objects = db.GetAllDocuments(projectdata.SelectedProject.UID, projectdata.SelectedLayer.UID);

            listViewDocuments.ItemsSource = objects;
        }
예제 #3
0
        private void GetAllObjectsWithCachedAttributes()
        {
            List <ComosWebSDK.Data.CObject> objects = null;

            Services.IDatabase     db          = Services.XServices.Instance.GetService <Services.IDatabase>();
            ViewModels.ProjectData projectdata = Services.XServices.Instance.GetService <ViewModels.ProjectData>();

            objects = db.GetDevicesWithCachedAttributes(projectdata.SelectedProject.UID, projectdata.SelectedLayer.UID);
            List <ComosWebSDK.Data.CObject> pictures = db.GetDevicesWithCachedPictures(projectdata.SelectedProject.UID, projectdata.SelectedLayer.UID);

            foreach (var item in pictures)
            {
                if (objects.Select(x => x.UID == item.UID).Count() == 0)
                {
                    objects.Add(item);
                }
            }


            listViewUploads.ItemsSource = objects;
        }
예제 #4
0
        private void CompleteTask_Toggled(object sender, ToggledEventArgs e)
        {
            if (!isUpdating)
            {
                Switch                 completeTaskSwitch = (Switch)sender;
                Services.XDatabase     db          = Services.XServices.Instance.GetService <Services.XDatabase>();
                ViewModels.ProjectData ProjectData = Services.XServices.Instance.GetService <ViewModels.ProjectData>();
                ViewModel              task        = (ViewModel)this.BindingContext;

                string value = task.Items[4].Text.Equals("0") ? "1" : "0";

                db.WriteCacheSpecValue(task.Items[0].UID, "Z10T00002.Z10A00048", ProjectData.SelectedProject.UID,
                                       ProjectData.SelectedLayer.UID, value, task.Columns[4].DisplayDescription, task.Items[0].Text, task.Items[1].Text);

                if (value.Equals("1"))
                {
                    db.WriteCacheSpecValue(task.Items[0].UID, "Z10T00002.Z10A00047", ProjectData.SelectedProject.UID,
                                           ProjectData.SelectedLayer.UID, "100%", task.Columns[6].DisplayDescription, task.Items[0].Text, task.Items[1].Text);
                }
            }
        }
예제 #5
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);
        }
예제 #6
0
        private async Task <bool> GetTaskInfoByUID(string UID, bool push = false)
        {
            IComosWeb m_ComosWeb = Services.XServices.Instance.GetService <IComosWeb>();

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

            List <CSpecification> Specifications;

            try
            {
                Specifications = await m_ComosWeb.GetObjectSpecification(
                    projectdata.SelectedDB.Key,
                    projectdata.SelectedProject.UID,
                    projectdata.SelectedLayer.UID,
                    projectdata.SelectedLanguage.LCID,
                    UID);
            }
            catch (Exception e)
            {
                await App.Current.MainPage.DisplayAlert("Error", "Error al obtener atributos: " + e.Message, Services.TranslateExtension.TranslateText("OK"));

                return(false);
            }

            foreach (var item in Specifications)
            {
                if (item.Name.Equals(Constants.MobileTabName))
                {
                    CSystemObject sysobj;
                    try
                    {
                        sysobj = await m_ComosWeb.GetObject(projectdata.SelectedLayer, UID, projectdata.SelectedLanguage.LCID);
                    }
                    catch (Exception ex)
                    {
                        await App.Current.MainPage.DisplayAlert("Error", "Error al cargar OT´s: " + ex.Message, Services.TranslateExtension.TranslateText("OK"));

                        return(false);
                    }

                    if (sysobj == null)
                    {
                        return(false);
                    }

                    CObject o = new CObject()
                    {
                        ClassType       = sysobj.SystemType,
                        Description     = sysobj.Description,
                        IsClientPicture = sysobj.IsClientPicture,
                        Name            = sysobj.Name,
                        UID             = sysobj.UID,
                        OverlayUID      = projectdata.SelectedLayer.UID,
                        Picture         = sysobj.Picture,
                        ProjectUID      = projectdata.SelectedProject.ProjectUID,
                        SystemFullName  = sysobj.Name,
                    };

                    //Get OT Number
                    string otNumber = "";
                    var    objects  = await m_ComosWeb.GetNavigatorNodes_Children(projectdata.SelectedLayer.Database, projectdata.SelectedProject.UID, projectdata.SelectedLayer.UID, projectdata.SelectedLanguage.LCID, sysobj.UID, "U");

                    CObject[] devices = objects.ToArray();
                    foreach (var device in devices)
                    {
                        if (device.Description.Equals(Constants.WP_OTCode_Description))
                        {
                            otNumber = device.Name;
                        }
                    }

                    PageAttributes page = new PageAttributes(projectdata.SelectedDB.Key, projectdata.SelectedLanguage.LCID, item, o, "wp", otNumber);
                    //WorkPackageDetail page = new WorkPackageDetail(item,UID);
                    if (push)
                    {
                        await this.Navigation.PushAsync(page);
                    }

                    return(true);
                }
            }

            this.ShowToast(Services.TranslateExtension.TranslateText("mobile_tab_not_found"));

            return(false);
        }
예제 #7
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();
        }
예제 #8
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();
                }
            }
        }
예제 #9
0
        public static async Task <bool> LoadLogBookForm()
        {
            CQuerieResult m_QueryResult;

            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, Constants.QueryLogBookTypesFullName);

                if (o == null)
                {
                    try
                    {
                        o = await m_ComosWeb.GetObjectBySystemFullName(projectdata.SelectedLayer, Constants.QueryLogBookTypesFullName);
                    }
                    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("no_logbook_types_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)
                    {
                        logBook = new ViewModel(m_QueryResult.Columns, m_QueryResult.Rows[0]);
                        return(true);
                    }
                    else
                    {
                        await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), Services.TranslateExtension.TranslateText("no_logbook_types_found"), "OK");

                        return(false);
                    }
                }
                else
                {
                    await App.Current.MainPage.DisplayAlert(Services.TranslateExtension.TranslateText("error"), Services.TranslateExtension.TranslateText("no_logbook_types_found"), "OK");

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

                return(false);
            }
        }
예제 #10
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);
        }