public IHttpActionResult Post() { var httpRequest = HttpContext.Current.Request; if (httpRequest.Files.Count > 0) { foreach (string file in httpRequest.Files) { var postedFile = httpRequest.Files[file]; var fileContent = ""; using (var reader = new StreamReader(postedFile.InputStream)) { fileContent = reader.ReadToEnd(); } dynamic ruleSetJson = System.Web.Helpers.Json.Decode(fileContent); string name; var rules = new List<string>(); try { name = ruleSetJson.Name; foreach (var rule in ruleSetJson.Rules) { var beats = new List<string>(); foreach (var beat in rule.beats) { beats.Add("\"" + beat + "\""); } rules.Add("{" + "\"name\": " + "\"" + rule.name + "\"," + "\"beats\": [" + string.Join(",", beats) + "]," + "\"img\": \"" + rule.img + "\"}"); } } catch (Exception) { return BadRequest("Invalid file format"); } var ruleSet = _repository.GetRuleSet(name); if (ruleSet == null) { ruleSet = new RuleSet { Name = name }; _repository.AddRuleSet(ruleSet); } ruleSet.Rules = "[" + string.Join(",", rules) + "]"; _repository.SaveChanges(); } return Ok(); } return BadRequest(); }
public void AddRuleSet(RuleSet ruleSet) { context.RuleSets.Add(ruleSet); }