public bool SaveTransactionImages(TransactionImageList transactionImages) { try { bool updateFound = false; using (EntityContext context = new EntityContext()) { foreach (var item in transactionImages) { if (item.TransactionImageId > 0) //Update { var original = context.TransactionImage.Where(t => t.TransactionImageId == item.TransactionImageId && t.ModifiedDate < item.ModifiedDate && !t.IsDeleted).FirstOrDefault(); if (original != null) { item.HasChanges = false; original.CreatedUser = context.User.Where(k => !k.IsDeleted).Single(p => p.UserId == item.CreatedUser.UserId); original.ModifiedUser = context.User.Where(k => !k.IsDeleted).Single(p => p.UserId == item.ModifiedUser.UserId); context.Entry(original).CurrentValues.SetValues(item); updateFound = true; } } else //Insert { item.CreatedUser = context.User.Where(k => !k.IsDeleted).Single(p => p.UserId == item.CreatedUser.UserId); item.ModifiedUser = context.User.Where(k => !k.IsDeleted).Single(p => p.UserId == item.ModifiedUser.UserId); item.Transaction.Category = null; item.Transaction.TransactionImages = null; item.Transaction.TransactionReasonType = null; item.Transaction.TransactionType = null; item.Transaction.ModifiedUser = null; item.Transaction.CreatedUser = null; context.Entry(item.Transaction).State = EntityState.Unchanged; context.TransactionImage.Add(item); updateFound = true; } } if (updateFound) context.SaveChanges(); } return true; } catch (DbEntityValidationException e) { StringBuilder s = new StringBuilder(); foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); s.Append(string.Format("{0} - {1}", ve.PropertyName, ve.ErrorMessage)); } } throw new DbEntityValidationException(s.ToString()); } catch (Exception) { throw; } }
public TransactionImageList GetImagesForTransaction(int transactionId) { TransactionImageList result = new TransactionImageList(); using(EntityContext context = new EntityContext()) { var query = context.TransactionImage .Include(x => x.Transaction) .Include(x => x.CreatedUser) .Include(x => x.ModifiedUser) .Where(x =>x.Transaction.TransactionId == transactionId && !x.IsDeleted); query.ToList().ForEach(x=> { x.Transaction.TransactionImages = null; result.Add(x); }); result.AcceptChanges(); } return result; }
public ServiceData() { TransactionList = new TransactionList(); TransactionImageList = new TransactionImageList(); BudgetList = new BudgetList(); }
private static void SaveTransactionImages(ServiceReference1.MainClient a, User usr) { var transactions = a.GetAllTransactions(usr.UserId); var trans = transactions[0]; var transWithImages = transactions.FirstOrDefault(x => x.TransactionId == 11132); var transImages = a.GetImagesForTransaction(transWithImages.TransactionId); var transImage = new TransactionImage(usr) { Transaction = trans, Path = "/Assets/login_white.png", Name = string.Format("{0} [{1}]", "aaaa", "bbbb"), Image = transImages[0].Image, Thumbnail = transImages[0].Image }; var transImageList = new TransactionImageList(); transImageList.Add(transImage); transImages.Add(transImage); trans.TransactionImages = (TransactionImageList)transImages; trans.ModifiedDate = DateTime.Now; trans.OptimizeOnTopLevel(Transaction.ImageRemovalStatus.Unchanged); a.SaveTransactions(new ObservableCollection<Transaction> { trans }); // a.SaveTransactionImages(transImages); }
private async void LoadCachedTransactionImages(Action<TransactionImageList, Exception> callback) { var retVal = new TransactionImageList(); try { foreach (var item in await StorageUtility.ListItems(TRANSACTIONIMAGES_FOLDER, App.Instance.User.UserName)) { var trans = await StorageUtility.RestoreItem<TransactionImage>(TRANSACTIONIMAGES_FOLDER, item, App.Instance.User.UserName); TransactionImageList.Add(trans); } } catch (Exception ex) { Debug.WriteLine(ex.ToString()); //callback(null, ex); } //SetupTransactionImageList(retVal); //TransactionImageList = retVal; callback(TransactionImageList, null); }