예제 #1
0
 // DELETE api/values/5
 public void Delete(int id)
 {
     using (var cnt = new MvContext())
     {
         var item = cnt.Items.Where(t => t.Id == id).SingleOrDefault();
         if (item != null)
         {
             cnt.Items.Remove(item);
             cnt.SaveChanges();
         }
     }
 }
예제 #2
0
        public dynamic Put(int id, MvItemInput input)
        {
            if (ModelState.IsValid && input != null)
            {
                using (var cnt = new MvContext())
                {
                    var item = cnt.Items.Include("Values").Where(t => t.Id == id).SingleOrDefault();
                    if (item != null)
                    {
                        item.Modified = DateTime.Now;
                        var inputValues = input.Values.Where(t => t.Id > 0).ToDictionary(t => t.Id, t => t);

                        foreach (var value in item.Values.Where(t => inputValues.ContainsKey(t.Id)).ToArray())
                        {
                            var inputValue = inputValues[value.Id];
                            value.StringValue = inputValue.StringValue;
                            value.IntValue    = inputValue.IntValue;
                            value.DateValue   = inputValue.DateValue;
                            value.OptionId    = inputValue.OptionId;
                            value.Modified    = DateTime.Now;
                        }

                        var removeValues = item.Values.Where(t => !inputValues.ContainsKey(t.Id)).ToArray();
                        foreach (var value in removeValues)
                        {
                            cnt.Values.Remove(value);
                        }

                        var newValues = input.Values.Where(t => t.Id == 0).Select(t => new MvValue()
                        {
                            FieldId = t.FieldId, StringValue = t.StringValue, DateValue = t.DateValue, IntValue = t.IntValue, OptionId = t.OptionId, Modified = DateTime.Now
                        }).ToArray();
                        foreach (var value in newValues)
                        {
                            item.Values.Add(value);
                        }

                        cnt.SaveChanges();
                        return(new { Id = item.Id });
                    }
                }
            }
            return(new { });
        }
예제 #3
0
 public dynamic Put(int id, MvOptionInput input)
 {
     if (ModelState.IsValid && input != null)
     {
         using (var cnt = new MvContext())
         {
             var item = cnt.Options.Where(t => t.Id == id).SingleOrDefault();
             if (item != null)
             {
                 item.Title    = input.Title;
                 item.Order    = input.Order;
                 item.Modified = DateTime.Now;
                 cnt.SaveChanges();
                 return(new { Id = item.Id });
             }
         }
     }
     return(new { });
 }
예제 #4
0
 public dynamic Post(int fieldId, MvOptionInput input)
 {
     if (ModelState.IsValid && input != null)
     {
         using (var cnt = new MvContext())
         {
             if (cnt.Fields.Any(t => t.Id == fieldId))
             {
                 var item = new MvOption()
                 {
                     FieldId = fieldId, Title = input.Title, Order = input.Order, Modified = DateTime.Now
                 };
                 cnt.Options.Add(item);
                 cnt.SaveChanges();
                 return(new { Id = item.Id });
             }
         }
     }
     return(new { });
 }
예제 #5
0
 // POST api/values
 public dynamic Post(int listId, MvFieldInput input)
 {
     if (ModelState.IsValid && input != null)
     {
         using (var cnt = new MvContext())
         {
             if (cnt.Lists.Any(t => t.Id == listId))
             {
                 var field = new MvField()
                 {
                     ListId = listId, Format = (int)input.Format, IsRequired = input.IsRequired, Title = input.Title, Order = input.Order, Modified = DateTime.Now
                 };
                 cnt.Fields.Add(field);
                 cnt.SaveChanges();
                 return(new { Id = field.Id });
             }
         }
     }
     return(new { });
 }
예제 #6
0
 public dynamic Post(MvListInput input)
 {
     if (ModelState.IsValid && input != null)
     {
         using (var cnt = new MvContext())
         {
             var item = cnt.Lists.Where(t => t.Id == input.Id).SingleOrDefault();
             if (item == null)
             {
                 item = new MvList();
                 cnt.Lists.Add(item);
             }
             item.Title    = input.Title;
             item.Modified = DateTime.Now;
             cnt.SaveChanges();
             return(new { Id = item.Id });
         }
     }
     return(new { });
 }
예제 #7
0
 // POST api/values
 public dynamic Post(int listId, MvItemInput input)
 {
     if (ModelState.IsValid && input != null)
     {
         using (var cnt = new MvContext())
         {
             if (cnt.Lists.Any(t => t.Id == listId))
             {
                 var values = input.Values.Select(t => new MvValue()
                 {
                     FieldId = t.FieldId, StringValue = t.StringValue, DateValue = t.DateValue, IntValue = t.IntValue, OptionId = t.OptionId, Modified = DateTime.Now
                 }).ToList();
                 var item = new MvItem()
                 {
                     ListId = listId, Values = values, Modified = DateTime.Now
                 };
                 cnt.Items.Add(item);
                 cnt.SaveChanges();
                 return(new { Id = item.Id });
             }
         }
     }
     return(new { });
 }