コード例 #1
0
		public Promise SaveActivityState(ActivityState activityState)
		{
			Contract.ArgumentNotNull("activityState", activityState);

			Promise promise = new Promise();
			
			try
			{
				Uri serverUri = new Uri(appSettings.ServerURI, UriKind.RelativeOrAbsolute);
				Uri restUri = new Uri(serverUri, "rest/");
				
				ActivityStateRepository repo = new ActivityStateRepository(restUri);
				if (repo == null)
				{
					throw new Exception("ActivityStateRepository is not initialized.");
				}
				
				// Load ActivityState (if it exists)
				repo.Update(activityState, (ActivityStateRepository.Response response) =>
				{
					try
					{
						if (response.Success)
						{
							promise.Resolve(response.Item);
						}
						else
						{
							promise.Reject(new Exception(response.Error));							
						}
					}
					catch (Exception e)
					{
						promise.Reject(e);
					}
				});                   
			}
			catch (Exception e)
			{
				promise.Reject(e);
			}
			
			return promise;
		}
コード例 #2
0
		public Promise LoadActivityStates(string studentId, IEnumerable<string> activityIds)
		{
			Promise promise = new Promise();
			
			try
			{
				Uri serverUri = new Uri(appSettings.ServerURI, UriKind.RelativeOrAbsolute);
				Uri restUri = new Uri(serverUri, "rest/");
				
				ActivityStateRepository repo = new ActivityStateRepository(restUri);
				if (repo == null)
				{
					throw new Exception("ActivityStateRepository is not initialized.");
				}
				
				repo.GetActivityStates(studentId, activityIds, (ActivityStateRepository.Response response) =>
				{
					if (response.Success)
					{
						promise.Resolve(response.Items);
					}
					else
					{
						promise.Reject(new Exception(response.Error));
					}
				});                   
			}
			catch (Exception e)
			{
				promise.Reject(e);
			}
			
			return promise;
		}
コード例 #3
0
		public Promise LoadActivityState(string studentId, string activityId, bool createNewIfDoesNotExit = false)
		{
			Promise promise = new Promise();
			
			try
			{
				Uri serverUri = new Uri(appSettings.ServerURI, UriKind.RelativeOrAbsolute);
				Uri restUri = new Uri(serverUri, "rest/");
				
				ActivityStateRepository repo = new ActivityStateRepository(restUri);
				if (repo == null)
				{
					throw new Exception("ActivityStateRepository is not initialized.");
				}

				// Load ActivityState (if it exists)
				repo.GetActivityStates(studentId, new string[] { activityId },  (ActivityStateRepository.Response loadResponse) =>
				{
					try
					{
						if (loadResponse.Success)
						{
							if (loadResponse.Items != null && loadResponse.Items.Count > 0)
							{
								promise.Resolve(loadResponse.Items.OrderByDescending(s => s.ModifiedDate).First());							
							}
							else
							{
								// Create ActivityState
								ActivityState newState = new ActivityState()
								{
									ActivityId = activityId,
									StudentId = studentId
								};
								repo.Insert(newState, (ActivityStateRepository.Response insertResponse) =>
								{
									if (insertResponse.Success)
									{
										promise.Resolve(insertResponse.Item);
									}
									else
									{
										promise.Reject(new Exception(insertResponse.Error));
									}
								});

							}
						}
						else
						{
							promise.Reject(new Exception(loadResponse.Error));
						}
					}
					catch (Exception e)
					{
						promise.Reject(e);
					}
				});                   
			}
			catch (Exception e)
			{
				promise.Reject(e);
			}
			
			return promise;
		}