Example #1
0
        public HttpResponseMessage BulkAllDocs(string dbName, [FromBody] object msg)
        {
            Console.WriteLine("Adding Bulk of new Docs");

            JObject msgJson = JObject.Parse(msg.ToString());

            var data = msgJson["docs"];
            List <PouchData> newData = new List <PouchData>();

            foreach (var cPouchData in data)
            {
                Console.WriteLine(JsonConvert.SerializeObject(cPouchData));

                //TODO: Make this smarter!!!
                if (dbName.Equals("Tickets"))
                {
                    newData.Add(JsonConvert.DeserializeObject <Ticket>(JsonConvert.SerializeObject(cPouchData)));
                }
            }

            using (DatabaseContext db = new DatabaseContext())
            {
                if (dbName.Equals("Tickets"))
                {
                    List <Ticket> ticketsToAdd = new List <Ticket>();
                    foreach (Ticket cTicket in newData)
                    {
                        if (MessageController.AlreadyExists(cTicket, "Tickets"))
                        {
                            // tempItemToAdd = DatabaseHelper.Instance.EditItem(tempItem, "Tickets");
                            Console.WriteLine(cTicket._rev + " already exists, skipping (change to edit if different)");
                            continue;
                        }
                        ticketsToAdd.Add(cTicket);
                    }
                    db.Tickets.AddRange(ticketsToAdd);
                }
                db.SaveChanges();
            }

            // TODO: Add new edits. What is it used for?
            // msgJson["new_edits"];

            // Add new Changes
            foreach (PouchData cPouchData in newData)
            {
                using (MessageControllerHelper helper = new MessageControllerHelper())
                {
                    helper.AddNewChange(cPouchData, dbName);
                }
            }

            using (MessageControllerHelper helper = new MessageControllerHelper())
            {
                return(helper.GetJsonResponse(HttpStatusCode.OK, new StringContent("[]")));
            }
        }