private void ProcessSeizureBlocksResponse()
		{
			if (this.SeizureBlockInfoInstance.sbYear == 0 && this.SeizureBlockInfoInstance.sbMonth == 0 && this.SeizureBlockInfoInstance.sbDay == 0)
			{
				if (SeizureBlocksDataInstance.seizureBlocksData.Count() > 0)
				{
					foreach (SeizureBlocksParameters seizureBlock in SeizureBlocksDataInstance.seizureBlocksData)
					{
						if (seizureBlock.sbRecordStatus == 1)
						{
							for (int i = 0; i < Constants.TOTAL_SEIZURE_BLOCKS_PER_RECORD; i++)
							{
								SeizureBlockInfo seizureRecordBlockToRead = new SeizureBlockInfo();
								seizureRecordBlockToRead.sbYear = seizureBlock.sbYear;
								seizureRecordBlockToRead.sbMonth = seizureBlock.sbMonth;
								seizureRecordBlockToRead.sbDay = seizureBlock.sbDay;
								seizureRecordBlockToRead.sbseizureRecordNo = seizureBlock.sbRecordNo;
								seizureRecordBlockToRead.sbSeizureBlock = i;


								this.SeizureToBeUploadedList.Add(seizureRecordBlockToRead);
							}
						}
					}
				}
			}
			else
			{
				if (this.SeizureBlocksContainsLastSeizureUpload())
				{
					bool lastSeizureRecordUploadCompleted = false;
					foreach (SeizureBlocksParameters seizureBlock in SeizureBlocksDataInstance.seizureBlocksData)
					{
						if (seizureBlock.sbYear == (this.SeizureBlockInfoInstance.sbYear - 2000) &&
							seizureBlock.sbMonth == this.SeizureBlockInfoInstance.sbMonth &&
							seizureBlock.sbDay == this.SeizureBlockInfoInstance.sbDay
							&& seizureBlock.sbHour == this.SeizureBlockInfoInstance.sbHour
							&& seizureBlock.sbMinute == this.SeizureBlockInfoInstance.sbMinute)
						{
							if (seizureBlock.sbRecordNo == 2)
							{
								if (this.SeizureBlockInfoInstance.sbSeizureBlock == Constants.TOTAL_SEIZURE_BLOCKS_PER_RECORD)
								{
									lastSeizureRecordUploadCompleted = true;
									continue;
								}
								else
								{
									if (seizureBlock.sbRecordStatus == 1)
									{
										//proceed uploading remaining blocks of oldest record
										for (int i = this.SeizureBlockInfoInstance.sbSeizureBlock; i < Constants.TOTAL_SEIZURE_BLOCKS_PER_RECORD; i++)
										{

											SeizureBlockInfo seizureRecordBlockToRead = new SeizureBlockInfo();
											seizureRecordBlockToRead.sbYear = seizureBlock.sbYear;
											seizureRecordBlockToRead.sbMonth = seizureBlock.sbMonth;
											seizureRecordBlockToRead.sbDay = seizureBlock.sbDay;
											seizureRecordBlockToRead.sbseizureRecordNo = seizureBlock.sbRecordNo;
											seizureRecordBlockToRead.sbSeizureBlock = i;

											this.SeizureToBeUploadedList.Add(seizureRecordBlockToRead);


										}
									}
								}

							}

							else
							{
								if (this.SeizureBlockInfoInstance.sbSeizureBlock == Constants.TOTAL_SEIZURE_BLOCKS_PER_RECORD)
								{
									continue;
								}
								else
								{
									if (seizureBlock.sbRecordStatus == 1)
									{
										//proceed uploading remaining blocks of newest record
										for (int i = this.SeizureBlockInfoInstance.sbSeizureBlock; i < Constants.TOTAL_SEIZURE_BLOCKS_PER_RECORD; i++)
										{

											SeizureBlockInfo seizureRecordBlockToRead = new SeizureBlockInfo();
											seizureRecordBlockToRead.sbYear = seizureBlock.sbYear;
											seizureRecordBlockToRead.sbMonth = seizureBlock.sbMonth;
											seizureRecordBlockToRead.sbDay = seizureBlock.sbDay;
											seizureRecordBlockToRead.sbseizureRecordNo = seizureBlock.sbRecordNo;
											seizureRecordBlockToRead.sbSeizureBlock = i;

											this.SeizureToBeUploadedList.Add(seizureRecordBlockToRead);


										}

									}

								}
							}

						}
						else
						{
							if (this.SeizureToBeUploadedList.Count() > 0 || lastSeizureRecordUploadCompleted)
							{
								if (seizureBlock.sbRecordStatus == 1)
								{
									for (int i = 0; i < Constants.TOTAL_SEIZURE_BLOCKS_PER_RECORD; i++)
									{
										SeizureBlockInfo seizureRecordBlockToRead = new SeizureBlockInfo();
										seizureRecordBlockToRead.sbYear = seizureBlock.sbYear;
										seizureRecordBlockToRead.sbMonth = seizureBlock.sbMonth;
										seizureRecordBlockToRead.sbDay = seizureBlock.sbDay;
										seizureRecordBlockToRead.sbseizureRecordNo = seizureBlock.sbRecordNo;
										seizureRecordBlockToRead.sbSeizureBlock = i;

										this.SeizureToBeUploadedList.Add(seizureRecordBlockToRead);

									}

								}

							}
						}
					}
				}
				else
				{
					foreach (SeizureBlocksParameters seizureBlock in SeizureBlocksDataInstance.seizureBlocksData)
					{
						if (seizureBlock.sbRecordStatus == 1)
						{
							for (int i = 0; i < Constants.TOTAL_SEIZURE_BLOCKS_PER_RECORD; i++)
							{

								SeizureBlockInfo seizureRecordBlockToRead = new SeizureBlockInfo();
								seizureRecordBlockToRead.sbYear = seizureBlock.sbYear;
								seizureRecordBlockToRead.sbMonth = seizureBlock.sbMonth;
								seizureRecordBlockToRead.sbDay = seizureBlock.sbDay;
								seizureRecordBlockToRead.sbseizureRecordNo = seizureBlock.sbRecordNo;
								seizureRecordBlockToRead.sbSeizureBlock = i;

								this.SeizureToBeUploadedList.Add(seizureRecordBlockToRead);


							}
                        }

               		}
				}
			}

			this.ProcessQeueue.Enqueue(Constants.SyncHandlerSequence.ReadStepsHeader);
			this.ProcessCommands();
		}
		private void SetSettingsFromGetDeviceInfoResponseWS(GetDeviceInfoResponse WSGetDeviceInfoResponseInstance)
		{

			UserInformationInstance.MemberDeviceId = WSGetDeviceInfoResponseInstance.MemberDeviceID;

			AppUpdateSettingsInstance.UpdateFlag = WSGetDeviceInfoResponseInstance.appUpdateInfo.UpdateFlag;
			AppUpdateSettingsInstance.UpdateType = WSGetDeviceInfoResponseInstance.appUpdateInfo.UpdateType;
			AppUpdateSettingsInstance.VersionOfNewApp = WSGetDeviceInfoResponseInstance.appUpdateInfo.VersionOfNewApp;

			this.updateType = AppUpdateSettingsInstance.UpdateType;

			FirmwareUpdateInfoInstance = new FirmwareUpdateInfo();
			FirmwareUpdateInfoInstance.ModelFirmwareID = WSGetDeviceInfoResponseInstance.deviceFwUpdateInfo.ModelFirmwareID;
			FirmwareUpdateInfoInstance.VersionOfNewFirmware = WSGetDeviceInfoResponseInstance.deviceFwUpdateInfo.VersionOfNewFirmware;

			MemberServerProfileInstance = new MemberServerProfile();
			MemberServerProfileInstance.MemberDeviceID = WSGetDeviceInfoResponseInstance.MemberDeviceID;
			MemberServerProfileInstance.UpdateFlag = (int)WSGetDeviceInfoResponseInstance.UpdateFlag;
			MemberServerProfileInstance.UpdateFlagChanges = 0;
			MemberServerProfileInstance.SynchronizationID = WSGetDeviceInfoResponseInstance.SynchronizationID;
			MemberServerProfileInstance.ServerDateTime = WSGetDeviceInfoResponseInstance.ServerDateTime;


			this.clearTracker = WSGetDeviceInfoResponseInstance.ClearTrackerDataFlag;


			ProcessSignatureUploaded(WSGetDeviceInfoResponseInstance.SignatureUploadedDates);
			this.SeizureBlockInfoInstance = new SeizureBlockInfo();
			if(WSGetDeviceInfoResponseInstance.lastSeizureDataUploadInfo != null)
				ProcessSeizureUploaded(WSGetDeviceInfoResponseInstance.lastSeizureDataUploadInfo.SeizureDate,WSGetDeviceInfoResponseInstance.lastSeizureDataUploadInfo.BlockNumber);


			//User Settings
			UserSettingsInstance.Stride = WSGetDeviceInfoResponseInstance.userSettings.Stride;
			UserSettingsInstance.Weight = WSGetDeviceInfoResponseInstance.userSettings.Weight;
			UserSettingsInstance.RestMetabolicRate = WSGetDeviceInfoResponseInstance.userSettings.RestMetabolicRate;
			UserSettingsInstance.UnitOfMeasure = WSGetDeviceInfoResponseInstance.userSettings.UnitOfMeasure;
			UserSettingsInstance.DOBYear = WSGetDeviceInfoResponseInstance.userSettings.DOBYear;
			UserSettingsInstance.DOBMonth = WSGetDeviceInfoResponseInstance.userSettings.DOBMonth;
			UserSettingsInstance.DOBDay = WSGetDeviceInfoResponseInstance.userSettings.DOBDay;
			UserSettingsInstance.Age = WSGetDeviceInfoResponseInstance.userSettings.Age;

			// Device Settings
			string serverTime = WSGetDeviceInfoResponseInstance.ServerDateTime;
			bool timeFormat = WSGetDeviceInfoResponseInstance.DeviceTimeFormat;

			DateTime st = Motion.Mobile.Utilities.Utils.GetServerDateTimeFromString(serverTime);

			//
			this.timeDiff = WSGetDeviceInfoResponseInstance.AllowableTimeDifference;


			Debug.WriteLine("Date Time" + st);
			DeviceSettingsInstance.Year = st.Year - 2000;
			DeviceSettingsInstance.Month = st.Month;
			DeviceSettingsInstance.Day = st.Day;
			DeviceSettingsInstance.Hour = st.Hour;
			DeviceSettingsInstance.Minute = st.Minute;
			DeviceSettingsInstance.Second = st.Second;
			DeviceSettingsInstance.HourType = timeFormat;



			//Company Settings
			CompanySettingsInstance.TenacitySteps = WSGetDeviceInfoResponseInstance.companySettings.TenacitySteps;
			CompanySettingsInstance.IntensitySteps = WSGetDeviceInfoResponseInstance.companySettings.IntensitySteps;
			CompanySettingsInstance.IntensityTime = WSGetDeviceInfoResponseInstance.companySettings.IntensityTime;
			CompanySettingsInstance.IntensityMinuteThreshold = WSGetDeviceInfoResponseInstance.companySettings.IntensityMinuteThreshold;
			CompanySettingsInstance.IntensityRestMinuteAllowed = WSGetDeviceInfoResponseInstance.companySettings.IntensityRestMinuteAllowed;
			CompanySettingsInstance.IntensityCycle = WSGetDeviceInfoResponseInstance.companySettings.IntensityCycle;
			CompanySettingsInstance.FrequencySteps = WSGetDeviceInfoResponseInstance.companySettings.FrequencySteps;
			CompanySettingsInstance.FrequencyCycleTime = WSGetDeviceInfoResponseInstance.companySettings.FrequencyCycleTime;
			CompanySettingsInstance.FrequencyCycle = WSGetDeviceInfoResponseInstance.companySettings.FrequencyCycle;
			CompanySettingsInstance.FrequencyCycleInterval = WSGetDeviceInfoResponseInstance.companySettings.FrequencyCycleInterval;


			//Exercise Settings
			ExerciseSettingsInstance.SyncTimeInterval = WSGetDeviceInfoResponseInstance.exerciseSettings.SyncTimeInterval;
			ExerciseSettingsInstance.DataSyncEnable = WSGetDeviceInfoResponseInstance.exerciseSettings.DataSyncEnable;
			ExerciseSettingsInstance.FrequencyAlarmEnable = WSGetDeviceInfoResponseInstance.exerciseSettings.FrequencyAlarmEnable;

			//Signature Settings
			SignatureSettingsInstance.SamplingFrequency = WSGetDeviceInfoResponseInstance.signatureSettings.SamplingFrequency;
			SignatureSettingsInstance.SamplingTime = WSGetDeviceInfoResponseInstance.signatureSettings.SamplingTime;
			SignatureSettingsInstance.SamplingCycle = WSGetDeviceInfoResponseInstance.signatureSettings.SamplingCycle;
			SignatureSettingsInstance.SamplingThreshold = WSGetDeviceInfoResponseInstance.signatureSettings.SamplingThreshold;
			SignatureSettingsInstance.SamplingTotalBlocks = WSGetDeviceInfoResponseInstance.signatureSettings.SamplingTotalBlocks;

			//Seizure Settings
			SeizureSettingsInstance.SeizureSettingsEnable = WSGetDeviceInfoResponseInstance.seizureSettings.SeizureSettingsEnable;
			SeizureSettingsInstance.SeizureSamplingFrequency = WSGetDeviceInfoResponseInstance.seizureSettings.SeizureSamplingFrequency;
			SeizureSettingsInstance.SeizureNumberOfRecords = WSGetDeviceInfoResponseInstance.seizureSettings.SeizureNumberOfRecords;
			SeizureSettingsInstance.SeizureSamplingTime = WSGetDeviceInfoResponseInstance.seizureSettings.SeizureSamplingTime;

		}