/// <summary> /// Get Access Codes from the DeSciL Mturk Service /// </summary> /// <returns>Service response as Json</returns> public string GetCodes() { var contract = new RequestContract { Operation = "GetCodes", ServiceKey = _serviceKey, ProjectCode = _projectCode }; string json = JsonConvert.SerializeObject(contract); string result = Post(json); var response = JsonConvert.DeserializeObject<ResponseContract>(result); var codes = response.Codes; foreach(Code sc in response.Codes) { // Only add unlocked codes if (sc.Status == 0) { var code = _db.Codes.FirstOrDefault(x => x.AccessCode == sc.AccessCode); if (code == null) { var lc = new Segreg.Models.Code { AccessCode = sc.AccessCode, ExitCode = sc.ExitCode, IsUsed = false }; _db.Add(lc); } } } // Save codes from WebService to local store _db.Save(); return result; }
/// <summary> /// Add a code to the database /// </summary> public void Add(Code code) { db.Codes.Add(code); db.SaveChanges(); }
/// <summary> /// Remove a code from database /// </summary> public void Remove(Code code) { db.Codes.Remove(code); db.SaveChanges(); }
/// <summary> /// Generate new code for the debug / testing / auto mode /// </summary> /// <returns></returns> public string AutoAccessCode() { // Genereate a new access code var ac = System.Guid.NewGuid().ToString().Replace("-", ""); // Exit code must be invalid on auto code var ec = "invalid"; // Add the code to the database using (var db = new PersistedRepository()) { var code = new Code { AccessCode = ac, ExitCode = ec }; db.Add(code); db.Save(); } // Return the access code return ac; }