public object Clone() { TextAnswerValidationTask clonedTask = new TextAnswerValidationTask(this.ApplicationUserId, this.ResponseTipTaskID, this.expirationTime, this.taskPriceInDollars); clonedTask.id = this.id; clonedTask.arbiterAnswer = this.arbiterAnswer; clonedTask.taskPriceInBitcoin = this.taskPriceInBitcoin; clonedTask.taskStatus = this.taskStatus; clonedTask.timeAssigned = this.timeAssigned; clonedTask.expirationTime = this.expirationTime; return(clonedTask); }
/// <summary> /// checks if task is answered. if expiration time is passed "true" is returned and new arbiter will be added for the task.. /// </summary> /// <param name="task"></param> /// <returns></returns> public static bool TextAnswerValidation_WaitingForAnswer(TextAnswerValidationTask task) { switch (task.arbiterAnswer) { case TextAnswerValidation_ArbiterAnswerEnum.notValid: case TextAnswerValidation_ArbiterAnswerEnum.Valid: task.taskStatus = ArbiterTaskStatusesEnum.textAnswerValidation_answered; task.assignedArbiter.DecrementNumOfPuzzlesWaiting(); return false; case TextAnswerValidation_ArbiterAnswerEnum.skip: task.taskStatus = ArbiterTaskStatusesEnum.textAnswerValidation_finishedAsSkipped; task.assignedArbiter.IncrementNumOfPuzzlesSkipped(); task.assignedArbiter.DecrementNumOfPuzzlesWaiting(); return false; default: break; } if (DateTime.Now.CompareTo(task.timeAssigned.AddSeconds(task.expirationTime.TotalSeconds)) > 0) { task.expirationTime.Add(taskForArbiterExpirationTime); // task.taskStatus = ArbiterTaskStatusesEnum.textAnswerValidation_expired; // task.assignedArbiter.IncrementNumOfPuzzlesExpired(); // task.assignedArbiter.DecrementNumOfPuzzlesWaiting(); return true; } else { return false; } }
public static TextAnswerValidationTask[] TaskQuestionAnswered_CreateArbiterTasks(ResponseTipTask task,string[] arbiterIDs) { //if parent task is answered then dont add new arbiter tasks if(task.answerValidation!=AnswerValidationEnum.responseTip_notValidated) { return new TextAnswerValidationTask[0]; } TextAnswerValidationTask[] newArbiterTasks= new TextAnswerValidationTask[arbiterIDs.Count()]; for (int i = 0; i < arbiterIDs.Count(); i++) { newArbiterTasks[i] = new TextAnswerValidationTask(arbiterIDs[i], task.ResponseTipTaskID, taskForArbiterExpirationTime, taskForArbiterPriceInDollar); } return newArbiterTasks; }
//Arbiter methods public static void TextAnswerValidationCreated(TextAnswerValidationTask task) { // task.assignedArbiter.IncrementNumOfPuzzlesWaiting(); task.assignedArbiter.UpdateNumOfPuzzlesWaiting(); task.taskStatus = ArbiterTaskStatusesEnum.textAnswerValidation_waitingForAnswer; }
public object Clone() { TextAnswerValidationTask clonedTask = new TextAnswerValidationTask(this.ApplicationUserId,this.ResponseTipTaskID,this.expirationTime,this.taskPriceInDollars); clonedTask.id = this.id; clonedTask.arbiterAnswer = this.arbiterAnswer; clonedTask.taskPriceInBitcoin = this.taskPriceInBitcoin; clonedTask.taskStatus = this.taskStatus; clonedTask.timeAssigned = this.timeAssigned; clonedTask.expirationTime = this.expirationTime; return clonedTask; }