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();
        }
Example #2
0
 public void AddRuleSet(RuleSet ruleSet)
 {
     context.RuleSets.Add(ruleSet);
 }