public void SaveFilter() { FileInfo filterFile = new FileInfo("TempFilter.dat"); using (FileStream writeFileStream = new FileStream(filterFile.Name, FileMode.Create)) { BinaryFormatter formatter = new BinaryFormatter(); try { formatter.Serialize(writeFileStream, FilterData); } catch (System.Runtime.Serialization.SerializationException) { //ignored } } if (!filterFile.Exists) return; byte[] biteArray; //read filder data from stream to biteArray using (FileStream readFileStream = new FileStream(filterFile.Name, FileMode.Open)) { biteArray = new byte[readFileStream.Length]; readFileStream.Position = 0; readFileStream.Read(biteArray, 0, (int)readFileStream.Length); } filterFile.Delete(); //insert or update filter to DB if (Id == -1) { var dmFilter = new DataModel.Filter { Id = ACore.Db.GetNextIdFor<DataModel.Filter>(), Name = Title, Data = biteArray, ParentId = (Parent as Filter)?.Id }; ACore.Db.InsertOnSubmit(dmFilter); ACore.Db.SubmitChanges(); Id = dmFilter.Id; } else { Data.Data = biteArray; Data.Name = Title; ACore.Db.UpdateOnSubmit(Data); ACore.Db.SubmitChanges(); } }
public Filter(DataModel.Filter data, Filter parent) : this() { Data = data; Parent = parent; Id = data.Id; Title = data.Name; }