Пример #1
0
        public void GivenInitialDataset()
        {
            using (var ctx = new GlossaryEntities())
            {
                if (ctx.Definitions.Any())
                {
                    var defs = from d in ctx.Definitions select d;
                    ctx.Definitions.RemoveRange(defs);
                }

                ctx.Definitions.AddRange(
                    new Definition[]
                {
                    new Definition {
                        Term = "abyssal plain", TermDefinition = "The ocean floor off the continental margin, usually very flat with a slight slope."
                    },
                    new Definition {
                        Term = "accrete", TermDefinition = "To add terranes (small land masses or pieces of crust) to another, usually larger, land mass."
                    },
                    new Definition {
                        Term = "alkaline", TermDefinition = "Term pertaining to highly basic, as opposed to acidic, substance"
                    }
                });
                ctx.SaveChanges();
            }
        }
        public IHttpActionResult PostDefinitions([FromBody] object json)
        {
            Debug.WriteLine(json);
            var definitions = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Models.DefinitionModel[]>(json.ToString());

            try
            {
                var records = 0;
                foreach (var def in definitions)
                {
                    // Validate
                    if (def.Term.Length >= 2 && def.Term.Length <= 80 &&
                        def.TermDefinition.Length >= 10)
                    {
                        var existing = (from d in db.Definitions where d.Term == def.Term select d).FirstOrDefault();
                        if (existing == null)
                        {
                            db.Definitions.Add(new Definition {
                                Term = def.Term, TermDefinition = def.TermDefinition
                            });
                        }
                        else
                        {
                            existing.TermDefinition = def.TermDefinition;
                        }
                    }
                    else
                    {
                        return(BadRequest($"Validation error in definition: {def.Term}"));
                    }

                    records++;
                }

                db.ChangeTracker.DetectChanges();
                var count = db.SaveChanges(); // commit

                return(Json(new { RecordsUpdated = count, RecordsTotal = records }));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
                return(BadRequest(ex.Message));
            }
        }
Пример #3
0
 // CREATE: Glossary
 public ActionResult Create([DataSourceRequest] DataSourceRequest request, Glossary item)
 {
     try
     {
         if (ModelState.IsValid)
         {
             db.Glossary.Add(item);
             db.SaveChanges();
             return(Json(new[] { item }.ToDataSourceResult(request, ModelState)));
         }
         else
         {
             return(Json(db.Glossary.ToList()));
         }
     }
     catch (Exception ex)
     {
         return(Json(ex.Message));
     }
 }
Пример #4
0
 private void InitializeDatabase()
 {
     using (var db = new GlossaryEntities())
     {
         foreach (var item in db.Glossary.ToList())
         {
             db.Glossary.Remove(item);
         }
         db.SaveChanges();
     }
 }
Пример #5
0
        public void UpdateTest()
        {
            using (var db = new GlossaryEntities())
            {
                db.Glossary.Add(new Glossary {
                    Term = "Term1", Definition = "Def1"
                });
                db.SaveChanges();

                var item = db.Glossary.First();
                item.Term = "Term2";

                var result = (JsonResult)controller.Update(new DataSourceRequest(), item);

                var item2 = db.Glossary.FirstOrDefault(q => q.Id == item.Id);

                Assert.IsNotNull(item2);
                Assert.AreEqual(item2.Term, "Term2");
            }
        }
Пример #6
0
        private void ReadInitialDefs()
        {
            using (var db = new GlossaryEntities())
            {
                foreach (var def in GivenTerms())
                {
                    var existing = (from d in db.Definitions where d.Term == def.Term select d).FirstOrDefault();
                    if (existing == null)
                    {
                        db.Definitions.Add(new Definition {
                            Term = def.Term, TermDefinition = def.TermDefinition
                        });
                    }
                    else
                    {
                        existing.TermDefinition = def.TermDefinition;
                    }
                }

                db.SaveChanges();
            }
        }
Пример #7
0
        public void ReadTest()
        {
            using (var db = new GlossaryEntities())
            {
                db.Glossary.Add(new Glossary {
                    Term = "Term1", Definition = "Def1"
                });
                db.Glossary.Add(new Glossary {
                    Term = "Term2", Definition = "Def2"
                });
                db.SaveChanges();
            }

            var result = (JsonResult)controller.Read(new DataSourceRequest());

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result.Data, typeof(DataSourceResult));
            Assert.IsNotNull(result.Data);
            Assert.IsInstanceOfType(((DataSourceResult)result.Data).Data, typeof(IEnumerable));
            Assert.IsNotNull(((DataSourceResult)result.Data).Data);

            Assert.AreEqual(((List <Glossary>)((DataSourceResult)result.Data).Data).Count, 2);
        }