예제 #1
0
        public async Task <bool> UpdateEmployerJob(EmployerJobDetail job) // add new or existing job
        {
            DbAccessor db = new DbAccessor();

            // update job in both database and api to server if connection.
            var vjob = db.GetTableItems <EmployerJobs>().Where(x => x.JobPostId == job.JobPostId).FirstOrDefault();

            if (vjob != null)
            {
                vjob.JSON = JsonConvert.SerializeObject(job);
                // update here for db
                db.UpdateRecord <EmployerJobs>(vjob);

                // push update to api here
                // ***************** TODO ***************
            }
            else
            {
                var jb = new EmployerJobs {
                    JSON = JsonConvert.SerializeObject(job), JobPostId = job.JobPostId
                };
                db.InsertRecord <EmployerJobs>(jb);
            }

            // temp return
            return(true);
        }
 async void ProcessEditJob(EmployerJobDetail vals)
 {
     if (vals != null)
     {
         NavigationParameters paramx = new NavigationParameters();
         paramx.Add("MODE", "EDIT");
         paramx.Add("JOB", vals);
         await _nav.NavigateAsync(nameof(JobPage), paramx, false, true);
     }
 }
 async void ProcessViewJobWatched(EmployerJobDetail vals)
 {
     if (vals != null)
     {
         NavigationParameters paramx = new NavigationParameters();
         paramx.Add("MODE", "WATCHED");
         paramx.Add("DETAILS", vals);
         await _nav.NavigateAsync(nameof(DisplayJobPage), paramx, false, true);
     }
 }
        async void ProcessRemoveJobWatched(EmployerJobDetail vals)
        {
            if (vals != null)
            {
                ApiServiceIndividual api = new ApiServiceIndividual();
                await api.DeleteWatchListJobasync(vals.JobPostId);

                WatchListJobsSource.Remove(vals);

                await _dialog.DisplayAlertAsync("WatchList", "Removed from watchlist", "Ok");
            }
        }
        //        public DelegateCommand<EmployerJobDetail> EditJobCommand;
        //public ICommand EditJobCommand { get; }

        private async void ProcessDeleteJob(EmployerJobDetail vals)
        {
            TranslateExtension tran    = new TranslateExtension();
            string             confirm = tran.GetProviderValueString("ButtonConfirmDelete");
            string             delete  = tran.GetProviderValueString("ButtonDelete");
            string             cancel  = tran.GetProviderValueString("ButtonCancel");

            var res = await _dialog.DisplayActionSheetAsync("Confirm delete!!", "Cancel", "Delete", "");

            if (res.Equals(delete))
            {
                ApiService apiServ = new ApiService();
                if (await apiServ.DeleteEmployerJobasync(vals.JobPostId))
                {
                    JobPageSource.Remove(vals);
                }
            }
        }
        public void OnNavigatedTo(NavigationParameters parameters)
        {
            var mode = parameters["MODE"];

            if (mode != null && (!string.IsNullOrEmpty(mode.ToString())))
            {
                var jobDetails = parameters["JOB"];

                var modeVal = mode.ToString();
                switch (modeVal)
                {
                case "NEW":
                    JobDetails = new EmployerJobDetail();
                    SetNewMode();
                    break;

                case "EDIT":
                    if (jobDetails == null)
                    {
                        _dialog.DisplayAlertAsync("Error", "No job to edit.", "OK");
                        _nav.GoBackAsync();
                    }
                    else
                    {
                        JobDetails = jobDetails as EmployerJobDetail;
                        SetEditMode();
                    }
                    break;

                case "VIEW":
                    if (jobDetails == null)
                    {
                        _dialog.DisplayAlertAsync("Error", "No job to View.", "OK");
                        _nav.GoBackAsync();
                    }
                    else
                    {
                        JobDetails = jobDetails as EmployerJobDetail;
                        SetViewMode();
                        //set dynamic height for languages
                        if (JobDetails.JobLanguages != null && JobDetails.JobLanguages.Count > 0)
                        {
                            SetJobLanguagesHeight(JobDetails.JobLanguages.Count);
                        }
                        else
                        {
                            SetJobLanguagesHeight(0);
                        }
                        //set dynamic height for licences
                        if (JobDetails.JobLicenses != null && JobDetails.JobLicenses.Count > 0)
                        {
                            SetJobLicencesHeight(JobDetails.JobLicenses.Count);
                        }
                        else
                        {
                            SetJobLicencesHeight(0);
                        }
                        //set dynamic height for trainings
                        if (JobDetails.JobTraining != null && JobDetails.JobTraining.Count > 0)
                        {
                            SetJobTrainingHeight(JobDetails.JobTraining.Count);
                        }
                        else
                        {
                            SetJobTrainingHeight(0);
                        }
                    }
                    break;
                }

                //                JobDetails.SalaryFrom
            }
        }