public bool DeleteItemByKey(int key) { try { using (SpendingHelperDBEntities context = new SpendingHelperDBEntities()) { CFamilyDto family = context.CFamiliesDto.Where(f => f.FamilyID == key).FirstOrDefault(); if (family == null) { log.Info("Can't delete family because it doesn't exist in database (familyId = {0})", key); return(false); } context.CFamiliesDto.Remove(family); context.SaveChanges(); } } catch (Exception ex) { log.Error(ex, "Some error occure while trying to delete family (FamilyId = {1}). Message: {0}", ex.Message, key); return(false); } return(true); }
public bool UpdateItem(CFamilyDto item) { try { using (SpendingHelperDBEntities context = new SpendingHelperDBEntities()) { CFamilyDto family = context.CFamiliesDto.Where(f => f.FamilyID == item.FamilyID).FirstOrDefault(); if (family == null) { log.Info("Can't update family because it doesn't exist in database (familyId = {0})", item.FamilyID); return(false); } family.FamilyName = item.FamilyName; family.Budget = item.Budget; context.SaveChanges(); } } catch (Exception ex) { log.Error(ex, "Some error occure while trying to update family in BD (FamilyId = {1}). Message: {0}", ex.Message, item.FamilyID); return(false); } return(true); }
public Boolean JoinFamily(Int32 personId, Int32 familyId) { try { using (SpendingHelperDBEntities context = new SpendingHelperDBEntities()) { CFamilyDto familyDto = context.CFamiliesDto.Where(f => f.FamilyID == familyId).FirstOrDefault(); if (familyDto == null) { log.Warn("Person (id = {0}) cant join to the family (id = {1}) because family doesn't exist", personId, familyId); return(false); } CPersonDto personDto = context.CPeopleDto.Where(p => p.PersonID == personId).FirstOrDefault(); if (personDto == null) { log.Warn("Person (id = {0}) cant join to the family (id = {1}) because person doesn't exist", personId, familyId); return(false); } personDto.Family = familyDto; familyDto.MembersCounter++; context.SaveChanges(); } return(true); } catch (Exception ex) { log.Error(ex, "Some error occure while trying person (id={1}) to join to family (id={2}) in DB. Message: {0}", ex.Message, personId, familyId); return(false); } }
//Данный метод искуственно сделан через двойной context.SaveChanges, что бы выполнить задание - 2 изменения в одной транзацкии. public Boolean CreateFamily(Int32 personId, String familyName, Int32 budget) { try { using (SpendingHelperDBEntities context = new SpendingHelperDBEntities()) { CPersonDto personDto = context.CPeopleDto.Where(p => p.PersonID == personId).FirstOrDefault(); if (personDto == null) { log.Warn("Can't create new family because person (id = {0}) doesn't exist", personId); return(false); } if (personDto.FamilyID != null) { log.Warn("Can't create new family because person (id = {0}) already has family!", personId); return(false); } using (System.Data.Entity.DbContextTransaction transaction = context.Database.BeginTransaction()) { try { CFamilyDto familyDto = new CFamilyDto(); familyDto.FamilyName = familyName; familyDto.Budget = budget; familyDto.MembersCounter = 1; context.CFamiliesDto.Add(familyDto); context.SaveChanges(); Int32 familyId = familyDto.FamilyID; personDto.FamilyID = familyId; context.SaveChanges(); transaction.Commit(); } catch (Exception ex) { log.Error(ex, "There is an error in transaction when created new family. Message: {0}", ex.Message); transaction.Rollback(); return(false); } } } return(true); } catch (Exception ex) { log.Error(ex, "Some error occure while trying to create new family in DB. Message: {0}", ex.Message); return(false); } }
public bool AddItem(CFamilyDto item) { try { using (SpendingHelperDBEntities context = new SpendingHelperDBEntities()) { context.CFamiliesDto.Add(item); context.SaveChanges(); } } catch (Exception ex) { log.Error(ex, "Some error occure while trying to add family into DB. Message: {0}", ex.Message); return(false); } return(true); }