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); }
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(); } }
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(); } }
// 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); } }
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); }