Beispiel #1
0
        public HttpResponseMessage BulkGetDocs(string dbName, bool revs, bool latest, [FromBody] object msg)
        {
            Console.WriteLine("Bulk Get");

            Console.WriteLine(msg.ToString());
            JObject msgJson = JObject.Parse(msg.ToString());
            var     data    = msgJson["docs"];
            // TODO: CHANGE TO ALSO GET MuLTIPLE AT ONCE!!!
            int           length = data.Count();
            List <string> _ids   = new List <string>();
            List <string> _revs  = new List <string>();


            List <object> results = new List <object>();


            for (int i = 0; i < length; i++)
            {
                _ids.Add(data[i]["id"].ToString());
                _revs.Add(data[i]["rev"].ToString());

                // Returns id and latest doc with given id and rev
                List <PouchData> cData = new List <PouchData>();
                using (DatabaseContext db = new DatabaseContext())
                {
                    if (dbName.Equals("Tickets"))
                    {
                        List <Ticket> ctempData = db.Tickets.ToList();

                        foreach (Ticket cTicket in ctempData)
                        {
                            if (cTicket._rev.Equals(_revs[i]) && cTicket._id.Equals(_ids[i]))
                            {
                                cData.Add(cTicket);
                            }
                        }
                    }
                }

                List <object> cDocs = new List <object>();
                using (ReturnParser parser = new ReturnParser())
                {
                    cDocs = parser.ParseGetDocs(cData, _ids[i]);
                }

                object cObject = new
                {
                    id   = _ids[i],
                    docs = cDocs
                };
                results.Add(cObject);
            }

            using (MessageControllerHelper helper = new MessageControllerHelper())
            {
                return(helper.GetJsonResponse(HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(new { results = results }))));
            }
        }