Example #1
0
        internal string ParseAllDocsReturn(List <List <PouchData> > askedDataList)
        {
            // Get all Data

            List <PouchData> retPouchData = new List <PouchData>();
            // Iterate over whole list and only take highest rev ticket
            int highestRev;

            foreach (List <PouchData> cPouchDataList in askedDataList)
            {
                highestRev = 0;
                PouchData pouchDataToAdd = new PouchData();
                foreach (PouchData cPouchData in cPouchDataList)
                {
                    using (MessageControllerHelper helper = new MessageControllerHelper())
                    {
                        if (helper.ParseSeqId(cPouchData._rev) > highestRev)
                        {
                            highestRev     = helper.ParseSeqId(cPouchData._rev);
                            pouchDataToAdd = cPouchData;
                        }
                    }
                    retPouchData.Add(pouchDataToAdd);
                }
            }

            // Parse data into correct string
            string retMessage = "";

            // TODO: Find out if this is correct
            // Returns + 1 (First Row is extra, i guess)
            int totalrows = retPouchData.Count + 1;

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

            foreach (PouchData cPouchData in retPouchData)
            {
                object cData = new
                {
                    id    = cPouchData._id,
                    key   = cPouchData._id,
                    value = new
                    {
                        rev = cPouchData._rev
                    },
                    doc = cPouchData
                };
                rows.Add(cData);
            }

            object ret = new
            {
                total_rows = totalrows,
                rows       = rows
            };

            retMessage = JsonConvert.SerializeObject(ret);

            return(retMessage);
        }
Example #2
0
        public void AddNewChange(PouchData CPouchData, string dbName)
        {
            List <PouchData> data            = new List <PouchData>();
            Change           currentSequence = new Change();

            using (DatabaseContext db = new DatabaseContext())
            {
                currentSequence = db.Changes.Where(entity => entity.id.Equals(CPouchData._id)).SingleOrDefault();

                // TODO: Make smarter!
                if (dbName.Equals("Tickets"))
                {
                    List <Ticket> cTickets = db.Tickets.Where(entity => entity._id.Equals(CPouchData._id)).ToList();
                    if (cTickets != null)
                    {
                        foreach (Ticket cTicket in cTickets)
                        {
                            data.Add(cTicket);
                        }
                    }
                }
            }

            Change ChangeToAdd = new Change();

            // if here, currentSequence and newestPouchData = null, we create a new Change
            if (currentSequence == null)             // && newestPouchData == null)
            {
                ChangeToAdd.id           = CPouchData._id;
                ChangeToAdd.DatabaseName = dbName;
                ChangeToAdd.seq          = this.GetHighestSequenceId() + "-" + Guid.NewGuid().ToString();
                ChangeToAdd.deleted      = false;
                ChangeToAdd.changes      = new List <ChangeStringHelper> {
                    new ChangeStringHelper(CPouchData._rev)
                };
            }
            else
            {
                Console.WriteLine("This has not been added but edited, what do we do here?");
                ChangeToAdd.id           = CPouchData._id;
                ChangeToAdd.DatabaseName = dbName;
                ChangeToAdd.seq          = this.GetHighestSequenceId() + "-" + currentSequence.seq;
                ChangeToAdd.changes      = new List <ChangeStringHelper> {
                    new ChangeStringHelper(CPouchData._rev)
                };

                // TODO: Change to true if deleted was true!
                ChangeToAdd.deleted = false;
            }

            using (DatabaseContext db = new DatabaseContext())
            {
                db.Changes.Add(ChangeToAdd);
                db.SaveChanges();
            }
        }
Example #3
0
        public void AddNewChange(PouchData newData, string dbName)
        {
            List <Change> currentSequences = new List <Change>();
            Change        currentSequence  = new Change();

            using (DatabaseContext db = new DatabaseContext())
            {
                currentSequences = db.Changes.Where(entity => entity.id.Equals(newData._id)).ToList();
                foreach (Change cChange in currentSequences)
                {
                    if (cChange.seq.Equals(this.GetHighestSeqOfChanges(currentSequences)))
                    {
                        currentSequence = cChange;
                    }
                }
            }

            Change ChangeToAdd = new Change();

            // if here, currentSequence and newestPouchData = null, we create a new Change
            if (currentSequence.id == null)
            {
                ChangeToAdd.id           = newData._id;
                ChangeToAdd.DatabaseName = dbName;
                ChangeToAdd.seq          = this.GetHighestSequenceId() + "-" + Guid.NewGuid().ToString();
                ChangeToAdd.changes.Add(new ChangeStringHelper(newData._rev));

                ChangeToAdd.deleted = false;
            }
            else
            {
                Console.WriteLine("This has not been added but edited, what do we do here?");
                ChangeToAdd.id           = newData._id;
                ChangeToAdd.DatabaseName = dbName;
                ChangeToAdd.seq          = this.GetHighestSequenceId() + "-" + Guid.NewGuid().ToString();
                ChangeToAdd.changes.Add(new ChangeStringHelper(newData._rev));

                // TODO: Change to true if deleted was true!
                if (newData._deleted)
                {
                    ChangeToAdd.deleted = true;
                }
            }

            using (DatabaseContext db = new DatabaseContext())
            {
                db.Changes.Add(ChangeToAdd);

                db.SaveChanges();
            }
        }
Example #4
0
 // TODO: move somewhere else
 internal static bool AlreadyExists(PouchData tempItem, string dbName)
 {
     using (DatabaseContext db = new DatabaseContext())
     {
         // TODO: make smarter
         if (dbName.Equals("Tickets"))
         {
             var result = db.Tickets.SingleOrDefault(t => t._rev.Equals(tempItem._rev));
             if (result == null)
             {
                 return(false);
             }
         }
         return(true);
     }
 }
Example #5
0
        private string GetSequenceOfPouchItem(PouchData cPouchData)
        {
            List <Change> AllChanges = new List <Change>();

            using (DatabaseContext db = new DatabaseContext())
            {
                AllChanges = db.Changes.ToList();

                // First find corresponding ChangeHelper

                foreach (Change cChange in AllChanges)
                {
                    foreach (ChangeStringHelper cHelper in cChange.changes)
                    {
                        if (cHelper.revision.Equals(cPouchData._rev))
                        {
                            return(cChange.seq);
                        }
                    }
                }
            }
            return(null);
        }