public ReturnClass PutResult([FromBody] IEnumerable <VMathsExercise> listdata) { ReturnClass rtn = new ReturnClass(); rtn.Message = "Great!Great!"; MathsExercisesBll exerBll = new MathsExercisesBll(this._context); if (exerBll.Update(listdata)) { rtn.Message = "Great! You have submitted all of answers."; } else { rtn.Message = "Sorry! It happened error when the system saved the answers"; } return(rtn); }
public IEnumerable <VMathsExercise> GetQuestion(string hashvalue, int amount, string operation, int quantityarithmetic, string maxValueType, int maxValue) { #region Initial paramter if (hashvalue.Length != 36) { // wrong value for hashvalue; return(null); } int _amount = 20; List <string> operations = new List <string>(); int _quantityarithmetic = 2; // ensure quantity is valid data. switch (amount) { case 5: _amount = amount; break; case 10: _amount = amount; break; case 30: _amount = amount; break; case 40: _amount = amount; break; case 50: _amount = amount; break; default: _amount = 20; break; } Char[] items = operation.ToLower().ToCharArray(); foreach (char item in items) { if (item == 'a') { operations.Add("+"); continue; } if (item == 'b') { operations.Add("-"); continue; } if (item == 'c') { operations.Add("*"); continue; } if (item == 'd') { operations.Add("/"); continue; } } //ensure operations has one action at least. if (operations.Count <= 0) { operations.Add("+"); } //ensure quantityarithmetic is between 1 and 5; switch (quantityarithmetic) { case 1: _quantityarithmetic = quantityarithmetic; break; case 3: _quantityarithmetic = quantityarithmetic; break; case 4: _quantityarithmetic = quantityarithmetic; break; case 5: _quantityarithmetic = quantityarithmetic; break; default: _quantityarithmetic = 2; break; } // string _maxValueType = "2"; int _maxValue = maxValue < 1?20:maxValue; Setting setting = new Setting(); setting.CreateTime = DateTime.Now; setting.Amount = _amount; setting.QuantityOfOperation = _quantityarithmetic; setting.MaxValue = _maxValue; setting.GUIDValue = hashvalue; setting.Operations = ""; foreach (string item in operations) { setting.Operations += item; } // _context.Setting.Add(setting); // _context.SaveChanges(); SettingBll settingBll = new SettingBll(this._context); if (settingBll.Insert(setting)) { setting = settingBll.GetOne(hashvalue); } else { return(null); } #endregion MathsExercisesBll exerBll = new MathsExercisesBll(this._context); List <MathsExercises> Exercises = new List <MathsExercises>(); for (int i = 0; i < _amount; i++) { // Console.WriteLine("I=" + i.ToString()); MathsExercises item = new MathsExercises(); item.SettingId = setting.ID; item.Formula = Logic.GetRandomFormula(operations, _quantityarithmetic, _maxValueType, _maxValue); item.UserAnswer = ""; item.RightAnswer = CalcParenthesesExpression.CalculateParenthesesExpression(item.Formula); item.CreateTime = DateTime.Now; item.SaveTime = null; // { HashValue = guid.ToString(),Formula = "1+2", Anwser = "", CreateTime = DateTime.Now, SaveTime = null // _context.Exercises.Add(item); Exercises.Add(item); } exerBll.Create(Exercises); List <MathsExercises> result = exerBll.GetData(setting.ID); List <VMathsExercise> rtn = new List <VMathsExercise>(); foreach (MathsExercises question in result) { VMathsExercise item = new VMathsExercise(); item.ID = question.ID; item.Formula = question.Formula; item.SettingId = question.SettingId; item.CreateTime = question.CreateTime; item.RightAnswer = question.RightAnswer; rtn.Add(item); } return(rtn); }