Example #1
0
        /// <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;
        }
Example #2
0
 /// <summary>
 /// Add a code to the database
 /// </summary>
 public void Add(Code code)
 {
     db.Codes.Add(code);
     db.SaveChanges();
 }
Example #3
0
 /// <summary>
 /// Remove a code from database
 /// </summary>
 public void Remove(Code code)
 {
     db.Codes.Remove(code);
     db.SaveChanges();
 }
Example #4
0
        /// <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;
        }