コード例 #1
0
 public void Dispose()
 {
     masterLayout = null;
     progressBar = null;
     listContainer = null;
     gemsList = null;
     mainTitleBar = null;
     masterScroll = null;
     masterStack = null;
     headingLayout = null;
     gemsGoalsObject = null;
     pendingGoalsObject = null;
     GC.Collect();
 }
コード例 #2
0
        public bool SavePendingGoalsDetails(PendingGoalsObject pendingGoals)
        {
            try
            {
                if (pendingGoals == null || pendingGoals.resultarray == null  )
                {
                    return false;
                }

                List<PendingGoalsDetailsDB> listPendingGoalsDetails = new List<PendingGoalsDetailsDB>();
                List<PendingActionTitle> listPendingActionTitle = new List<PendingActionTitle>();

                foreach (var item in pendingGoals.resultarray)
                {

                    // Emotion details
                    PendingGoalsDetailsDB goal = new PendingGoalsDetailsDB()
                    {
                        goal_details = item.goal_details,
                        goal_id = item.goal_id,
                        goal_media = item.goal_media,
                        user_id = item.user_id,
                        code = pendingGoals.code,
                       
                    };
                    listPendingGoalsDetails.Add(goal);

                    foreach (var itemTitle in item.pending_action_title)
                    {
                        listPendingActionTitle.Add(itemTitle);
                    }
                    
                }

                Connection.InsertAll(listPendingGoalsDetails);
                Connection.InsertAll(listPendingActionTitle);

                listPendingActionTitle.Clear();
                listPendingGoalsDetails.Clear();

                listPendingActionTitle = null;
                listPendingGoalsDetails = null;

                return true;
            }
            catch (Exception ex)
            {

                return false;
            }

        }
コード例 #3
0
        async void OnAppearing(object sender, EventArgs e)
        {
			if (gemsGoalsObject != null && gemsGoalsObject.resultarray != null && gemsGoalsObject.resultarray.Count > 0)
				return;

            IProgressBar progress = DependencyService.Get<IProgressBar>();
            progress.ShowProgressbar("Loading pending items..");


            try
            {
			    pendingGoalsObject = await ServiceHelper.GetAllPendingGoalsAndActions ();
				if( pendingGoalsObject == null || pendingGoalsObject.resultarray == null )
				{
					progress.HideProgressbar();
					var success = await DisplayAlert (Constants.ALERT_TITLE, "Error in fetching Pending goals", Constants.ALERT_OK, Constants.ALERT_RETRY);
					if (!success) 
					{
						OnAppearing (sender, EventArgs.Empty);
						return;
					} 
					else
					{
                        if (Device.OS != TargetPlatform.WinPhone)
                            pendingGoalsObject = App.Settings.GetPendingGoalsObject();
						progress.HideProgressbar ();
					}
				}
                else
                {
                    App.Settings.DeleteAllPendingGoals();
                    App.Settings.SavePendingGoalsDetails( pendingGoalsObject );
                }

				gemsGoalsObject = await ServiceHelper.GetAllMyGoals();
				if( gemsGoalsObject == null || gemsGoalsObject.resultarray == null )
				{
					var success = await DisplayAlert (Constants.ALERT_TITLE, "Error in fetching all goals", Constants.ALERT_OK, Constants.ALERT_RETRY);
					if (!success) 
					{
						OnAppearing (sender, EventArgs.Empty);
						return;
					} 
					else
					{
                        if (Device.OS != TargetPlatform.WinPhone)
                            gemsGoalsObject = App.Settings.GetCompletedGoalsObject();
                        progress.HideProgressbar();
					}
				}
                else
                {
                    App.Settings.DeleteAllCompletedGoals();
                    App.Settings.SaveCompletedGoalsDetails(gemsGoalsObject);
                }
				
				if( pendingGoalsObject.resultarray.Count  + gemsGoalsObject.resultarray.Count < 30 )
				{
					#region PENDING GOALS
					CreatePendingGoalsView( true );
					#endregion

					#region ALL GOALS HEADING
					CreateAllGoalsHeading();
					#endregion

					#region ALL GOALS
					CreateAllGoalsView();
					#endregion
				}
				else if( pendingGoalsObject.resultarray.Count > 30 )
				{
					pendingGoalsObject.resultarray = pendingGoalsObject.resultarray.Skip(0).Take(30).ToList();
					#region PENDING GOALS
					CreatePendingGoalsView( true );
					#endregion
				}



                masterScroll.Padding = new Thickness(10, 10, 10, 0);
                masterScroll.Scrolled += OnScroll;
                masterScroll.Content = masterStack;

                masterLayout.AddChildToLayout(mainTitleBar, 0, 0);
                //  masterLayout.AddChildToLayout(subTitleBar, 0, Device.OnPlatform(9, 10, 10));
                masterLayout.AddChildToLayout(masterScroll, 0, 10);
                Content = masterLayout;


            }
            catch (Exception)
            {
                
            }
            progress.HideProgressbar();
        }
コード例 #4
0
        public PendingGoalsObject GetPendingGoalsObject()
        {
            try
            {
                PendingGoalsObject masterObject = new PendingGoalsObject();

                List<PendingActionTitle> listPendingActionTitle = new List<PendingActionTitle>();
                List<PendingGoalsDetailsDB> listPendingDetailsDB = new List<PendingGoalsDetailsDB>();

                listPendingActionTitle = (from t in Connection.Table<PendingActionTitle>() select t).ToList();
                listPendingDetailsDB = (from t in Connection.Table<PendingGoalsDetailsDB>() select t).ToList();

                masterObject.resultarray = new List<PendingGoalsDetails>();

                foreach (var item in listPendingDetailsDB)
                {
                    PendingGoalsDetails resultArray = new PendingGoalsDetails();
                    resultArray.pending_action_title = new List<PendingActionTitle>();

                    resultArray.user_id = item.user_id;
                    resultArray.goal_id = item.goal_id;
                    resultArray.goal_title = item.goal_title;
                    resultArray.goal_details = item.goal_details;
                    resultArray.goal_media = item.goal_media;
                    masterObject.code = item.code;
    
                    resultArray.pending_action_title = new List<PendingActionTitle>();

                    // Title
                    foreach (var titeObject in listPendingActionTitle)
                    {
                        if (titeObject.goal_id == item.goal_id)
                            resultArray.pending_action_title.Add(titeObject);
                    }

                    masterObject.resultarray.Add(resultArray);
                }


                masterObject.code = (listPendingDetailsDB != null && listPendingDetailsDB.Count > 0) ? listPendingDetailsDB[0].code : "";
              
                return masterObject;
            }
            catch (Exception)
            {

                return null;
            }

        }
コード例 #5
0
        async void OnAppearing(object sender, EventArgs e)
        {
			if (commonGoalsObject != null && commonGoalsObject.GoalsDetails != null && commonGoalsObject.GoalsDetails.Count > 0)
				return;

	
			commonGoalsObject = null;
			commonGoalsObject = new CommonGoalsObject ();
			commonGoalsObject.GoalsDetails = new List<CommonGoalsDetails>();

            IProgressBar progress = DependencyService.Get<IProgressBar>();
            progress.ShowProgressbar("Loading pending items..");


            try
            {
			    pendingGoalsObject = await ServiceHelper.GetAllPendingGoalsAndActions ();
				if( pendingGoalsObject == null || pendingGoalsObject.resultarray == null )
				{
					var success = await DisplayAlert (Constants.ALERT_TITLE, "Error in fetching Pending goals", Constants.ALERT_OK, Constants.ALERT_RETRY);
					if (!success) 
					{
						OnAppearing (sender, EventArgs.Empty);
						return;
					} 
					else
					{
                        if (Device.OS != TargetPlatform.WinPhone)
                            pendingGoalsObject = App.Settings.GetPendingGoalsObject();
						progress.HideProgressbar ();
					}
				}
                else
                {

					foreach (var goalItem in pendingGoalsObject.resultarray) 
					{
						CommonGoalsDetails commonGoalsDetails = new CommonGoalsDetails();
						commonGoalsDetails.GoalMedia = goalItem.goal_media;
						commonGoalsDetails.GoalTitle = goalItem.goal_title;
						commonGoalsDetails.GoalID = goalItem.goal_id;
						commonGoalsDetails.GoalDesc = goalItem.goal_details;
						commonGoalsDetails.IsPending = true;
						commonGoalsDetails.ActionTitle = new List<CommonActionTitle>();


						foreach (var actionItem in goalItem.pending_action_title) 
						{
							CommonActionTitle commonTitle = new CommonActionTitle();
							commonTitle.actionstatus_id = actionItem.actionstatus_id;
							commonTitle.action_title = actionItem.action_title;
							commonTitle.goalaction_id = actionItem.goalaction_id;
							commonTitle.goal_id = actionItem.goal_id;
							commonTitle.savedgoal_id = actionItem.savedgoal_id;

							commonGoalsDetails.ActionTitle.Add( commonTitle );						
						}

						if ( null == commonGoalsObject.GoalsDetails.Find( tst => tst.GoalID == commonGoalsDetails.GoalID ))
							commonGoalsObject.GoalsDetails.Add( commonGoalsDetails );
					}
                    App.Settings.DeleteAllPendingGoals();
                    App.Settings.SavePendingGoalsDetails( pendingGoalsObject );
                }

				commonGoalsObject.GoalsDetails.Add( new CommonGoalsDetails{ GoalID="header"} );

				gemsGoalsObject = await ServiceHelper.GetAllMyGoals();
				if( gemsGoalsObject == null || gemsGoalsObject.resultarray == null )
				{
					var success = await DisplayAlert (Constants.ALERT_TITLE, "Error in fetching all goals", Constants.ALERT_OK, Constants.ALERT_RETRY);
					if (!success) 
					{
						OnAppearing (sender, EventArgs.Empty);
						return;
					} 
					else
					{
                        if (Device.OS != TargetPlatform.WinPhone)
                            gemsGoalsObject = App.Settings.GetCompletedGoalsObject();
                        progress.HideProgressbar();
					}
				}
                else
                {
					foreach (var allGoalItem in gemsGoalsObject.resultarray) 
					{
						CommonGoalsDetails commonGoalsDetails = new CommonGoalsDetails();
						commonGoalsDetails.GoalMedia = allGoalItem.goal_media;
						commonGoalsDetails.GoalTitle = allGoalItem.goal_title;
						commonGoalsDetails.GoalID = allGoalItem.goal_id;
						commonGoalsDetails.GoalDesc = allGoalItem.goal_details;
						commonGoalsDetails.ActionTitle = new List<CommonActionTitle>();
						commonGoalsDetails.IsPending = false;

						if( allGoalItem.action_title != null && allGoalItem.action_title.Count > 0 )
						{
							foreach (var allActionItem in allGoalItem.action_title) 
							{
								CommonActionTitle commonTitle = new CommonActionTitle();
								commonTitle.action_title = allActionItem.action_title;
								commonTitle.goalaction_id = allActionItem.goalaction_id;
								commonTitle.goal_id = allActionItem.goal_id;
								commonGoalsDetails.ActionTitle.Add( commonTitle );						
							}
						}


						if ( null == commonGoalsObject.GoalsDetails.Find( tst => tst.GoalID == commonGoalsDetails.GoalID ))
						commonGoalsObject.GoalsDetails.Add( commonGoalsDetails );
					}

                    App.Settings.DeleteAllCompletedGoals();
                    App.Settings.SaveCompletedGoalsDetails(gemsGoalsObject);
                }


				allCommonGoalsObject = new CommonGoalsObject();
				allCommonGoalsObject.GoalsDetails = commonGoalsObject.GoalsDetails.Skip(0).Take( commonGoalsObject.GoalsDetails.Count ).ToList();
			


				/*if( pendingGoalsObject.resultarray.Count  + gemsGoalsObject.resultarray.Count < 30 )
				{
					#region PENDING GOALS
					CreatePendingGoalsView( true );
					#endregion

					#region ALL GOALS HEADING
					CreateAllGoalsHeading();
					#endregion

					#region ALL GOALS
					CreateAllGoalsView();
					#endregion
				}
				else if( pendingGoalsObject.resultarray.Count > 30 )
				{
					pendingGoalsObject.resultarray = pendingGoalsObject.resultarray.Skip(0).Take(30).ToList();
					#region PENDING GOALS
					CreatePendingGoalsView( true );
					#endregion
				}*/

				commonGoalsObject.GoalsDetails = commonGoalsObject.GoalsDetails.Skip(0).Take( MAX_ROWS_AT_A_TIME ).ToList();

				await DownloadMedias();

				RenderGoalsPage( false );



                masterScroll.Padding = new Thickness(10, 10, 10, 0);
                masterScroll.Scrolled += OnScroll;
                masterScroll.Content = masterStack;

                masterLayout.AddChildToLayout(mainTitleBar, 0, 0);
                //  masterLayout.AddChildToLayout(subTitleBar, 0, Device.OnPlatform(9, 10, 10));
                masterLayout.AddChildToLayout(masterScroll, 0, 10);
                Content = masterLayout;


            }
            catch (Exception)
            {
                
            }
            progress.HideProgressbar();
        }
コード例 #6
0
		bool  OnLoadMoreGemsClicked (object sender, EventArgs e)
		{
			try 
			{
				pendingGoalsObject = null;
				gemsGoalsObject = null;

				CommonGoalsDetails lastItem =   commonGoalsObject.GoalsDetails.Last ();

				CommonGoalsObject gemsObj =  new CommonGoalsObject();
				gemsObj.GoalsDetails = allCommonGoalsObject.GoalsDetails.Skip(0).Take( allCommonGoalsObject.GoalsDetails.Count ).ToList();

				int lastRendererItemIndex = gemsObj.GoalsDetails.FindIndex (itm => itm.GoalID == lastItem.GoalID);


				if (lastRendererItemIndex > 0 && ( lastRendererItemIndex + 1 ) < gemsObj.GoalsDetails.Count )
				{
					reachedEnd = false;
					reachedFront = false;
					int itemCountToCopy = gemsObj.GoalsDetails.Count - lastRendererItemIndex;
					itemCountToCopy = (itemCountToCopy > MAX_ROWS_AT_A_TIME) ? MAX_ROWS_AT_A_TIME : itemCountToCopy;
					commonGoalsObject = null;
					commonGoalsObject = new CommonGoalsObject ();
					commonGoalsObject.GoalsDetails = new List<CommonGoalsDetails>();

					commonGoalsObject.GoalsDetails = gemsObj.GoalsDetails.Skip (lastRendererItemIndex).Take (itemCountToCopy).ToList();

					gemsObj = null;


					masterStack.Children.Clear();

					masterScroll.Content = null;
					GC.Collect();




					if( itemCountToCopy < MAX_ROWS_AT_A_TIME )
						RenderGoalsPage( true );
					else
						RenderGoalsPage( false );

					masterScroll.Content = masterStack;
					return true;
				}
				else
				{
					reachedEnd = true;
					return false;
				}

			} 
			catch (Exception ex)
			{
				//DisplayAlert ( Constants.ALERT_TITLE, "Low memory error.", Constants.ALERT_OK );
				return false;
			}

		}
コード例 #7
0
		bool OnLoadPreviousGemsClicked (object sender, EventArgs e)
		{
			try
			{
				pendingGoalsObject = null;
				gemsGoalsObject = null;

				CommonGoalsDetails firstItem =   commonGoalsObject.GoalsDetails.First ();

				CommonGoalsObject gemsObj =  new CommonGoalsObject();
				gemsObj.GoalsDetails = allCommonGoalsObject.GoalsDetails.Skip(0).Take( allCommonGoalsObject.GoalsDetails.Count ).ToList();
			

				int firstRendererItemIndex = gemsObj.GoalsDetails.FindIndex (itm => itm.GoalID == firstItem.GoalID);;//gemsObj.resultarray.IndexOf ( lastItem );
				if (firstRendererItemIndex > 0 && ( firstRendererItemIndex + 1 ) < gemsObj.GoalsDetails.Count )
				{
					reachedEnd = false;
					reachedFront = false;
					int itemCountToCopy = MAX_ROWS_AT_A_TIME;
					commonGoalsObject = null;
					commonGoalsObject = new CommonGoalsObject ();
					commonGoalsObject.GoalsDetails = new List<CommonGoalsDetails>();
					gemsObj.GoalsDetails.RemoveRange( firstRendererItemIndex, gemsObj.GoalsDetails.Count - firstRendererItemIndex );
					if( firstRendererItemIndex > MAX_ROWS_AT_A_TIME )
						gemsObj.GoalsDetails.RemoveRange( 0, firstRendererItemIndex - MAX_ROWS_AT_A_TIME );

					commonGoalsObject.GoalsDetails = gemsObj.GoalsDetails;

					gemsObj = null;

					masterStack.Children.Clear();

					masterScroll.Content = null;
					GC.Collect();

					RenderGoalsPage( false );

					masterScroll.Content = masterStack;
					return true;
				}
				else
				{
					reachedFront = true;
					return false;
				}
			} 
			catch (Exception ex) 
			{
				DisplayAlert ( Constants.ALERT_TITLE, "Low memory error.", Constants.ALERT_OK );
				return false;
			}
		}
コード例 #8
0
        async void OnPendingGoalsTapped(object sender, EventArgs e)
        {
            StackLayout layout = sender as StackLayout;
            if( layout != null && layout.Children != null && layout.Children.Count > 0 )
            {
                Image img = (Image)layout.Children[0];
				if (img != null && img.ClassId != null )
                {
					string[] delimiters = { "&&" };
					string[] clasIDArray = img.ClassId.Split(delimiters, StringSplitOptions.None);
					string selectedSavedGoalID = clasIDArray [1];
					string selectedGoalID = clasIDArray [0];


					if (!string.IsNullOrEmpty (selectedSavedGoalID)) 
					{

						IProgressBar progress = DependencyService.Get<IProgressBar> ();
						progress.ShowProgressbar ( "Completing action...." );

						var change = await ServiceHelper.ChangePendingActionStatus ( selectedSavedGoalID );
						if (!change) 
						{
                            progress.HideProgressbar();
							DisplayAlert (Constants.ALERT_OK, "Failed to complete action", Constants.ALERT_OK);
							return;
						} 
						else
						{
							await DisplayAlert (Constants.ALERT_OK, "Action is completed", Constants.ALERT_OK);
							/*App.masterPage.IsPresented = false;
							App.masterPage.Detail = new NavigationPage(new GoalsPage());
                            await DeletePendingActionRowFromStack(selectedGoalID, selectedSavedGoalID);*/
							masterScroll.Scrolled -= OnScroll;
							commonGoalsObject = null;
							pendingGoalsObject = null;
							gemsGoalsObject = null;
							masterStack.Children.Clear();

							masterScroll.Content = null;

							OnAppearing ( this, EventArgs.Empty );
							masterScroll.Scrolled += OnScroll;

						}
						progress.HideProgressbar ();
					}
	

                }
            }
        }