/// <summary> /// Aceasta metoda anuleaza stergerea fisierelor. /// Flag-ul "ToDelete" va deveni fals pentru toate fisierele. /// </summary> /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns> private static bool CancelDeletion() { using (ModelBDContainer1 context = new ModelBDContainer1()) { var files = context.Files.Where(x => x.ToDelete == true); foreach (var file in files) { file.ToDelete = false; } context.SaveChanges(); } return(true); }
/// <summary> /// Aceasta metoda permite adaugarea unei propietati in baza de date. /// </summary> /// <param name="description">Descrierea propietatii.</param> /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns> public static bool AddProperty(string description) { using (ModelBDContainer1 context = new ModelBDContainer1()) { Property property = new Property() { Description = description }; context.Properties.Add(property); context.SaveChanges(); } return(true); }
/// <summary> /// Aceasta metoda permite modificarea unui fisier si propietatile lui. /// </summary> /// <param name="file">Fisierul primit ca obiect. Campurile care nu sunt /// goale vor inlocui pe cele din baza de date.</param> /// <param name="propertyIndices">Lista cu id-urile propietatilor. Initial, /// toate propietatile vor fi sterse din fisier ca apoi sa fie inlocuite de acestea.</param> /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns> public static bool ModifyFile(File file, List <int> propertyIndices) { using (ModelBDContainer1 context = new ModelBDContainer1()) { var dbFile = context.Files.Find(file.Id); if (dbFile != null) { if (file.Description.Length != 0) { dbFile.Description = file.Description; } if (file.Name.Length != 0) { dbFile.Name = file.Name; } if (file.Path.Length != 0) { dbFile.Path = file.Path; } var presentProperties = GetFileProperties(dbFile.Id); var propertyList = context.PropertyLists.Where(x => x.FileId == file.Id); foreach (var _propertyList in propertyList) { context.PropertyLists.Remove(_propertyList); } foreach (var propertyIndex in propertyIndices) { var property = context.Properties.Find(propertyIndex); PropertyList newPropertyList = new PropertyList() { FileId = file.Id, PropertyId = property.Id }; context.PropertyLists.Add(newPropertyList); } context.SaveChanges(); } else { return(false); } } return(true); }
/// <summary> /// Aceasta metoda realizeaza stergerea fisierelor marcate. /// </summary> /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns> private static bool AcceptDeletion() { using (ModelBDContainer1 context = new ModelBDContainer1()) { var files = context.Files.Where(x => x.ToDelete == true); foreach (var file in files) { var propertyLists = context.PropertyLists.Where(x => x.FileId == file.Id); foreach (var propertyList in propertyLists) { context.PropertyLists.Remove(propertyList); } context.Files.Remove(file); } context.SaveChanges(); } return(true); }
/// <summary> /// Aceasta metoda adauga un fisier primit in baza de date. /// De asemenea, creeaza legaturi cu propietatile primite ca id-uri. /// </summary> /// <param name="file">Obiectul de tip fisier.</param> /// <param name="propertyIndices">O lista cu id-urile propietatilor pentru fisier.</param> /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns> public static bool AddFile(File file, List <int> propertyIndices) { using (ModelBDContainer1 context = new ModelBDContainer1()) { context.Files.Add(file); foreach (var propertyIndex in propertyIndices) { Property property = context.Properties.Find(propertyIndex); PropertyList auxPropertyList = new PropertyList() { FileId = file.Id, PropertyId = property.Id }; context.PropertyLists.Add(auxPropertyList); } context.SaveChanges(); return(true); } }
/// <summary> /// Aceasta metoda marcheaza fisierele primite ca id pentru a fi sterse /// atunci cand butonul "Confirm Delete" este apasat de catre utilizator. /// </summary> /// <param name="fileIndices">Lista cu id-urile fisierelor ce vor fi marcate.</param> /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns> public static bool MarkForDeletion(List <int> fileIndices) { using (ModelBDContainer1 context = new ModelBDContainer1()) { foreach (var fileIndex in fileIndices) { File file = context.Files.Find(fileIndex); var auxFile = context.Files.Find(file.Id); if (auxFile == null) { return(false); } auxFile.ToDelete = true; } context.SaveChanges(); return(true); } }
/// <summary> /// Aceasta metoda permite stergerea de propietati. /// </summary> /// <param name="propertyIndices">Lista cu id-uri pentru propietatile ce doresc a fi sterse.</param> /// <returns>Un boolean care spune daca adaugarea a fost realizata cu succes.</returns> public static bool DeleteProperties(List <int> propertyIndices) { using (ModelBDContainer1 context = new ModelBDContainer1()) { foreach (var propertyIndex in propertyIndices) { Property property = context.Properties.Find(propertyIndex); var propertyLists = context.PropertyLists.Where(x => x.PropertyId == property.Id); foreach (var propertyList in propertyLists) { context.PropertyLists.Remove(propertyList); } context.Properties.Remove(property); } context.SaveChanges(); } return(true); }