public static void SaveOrUpdateOwnRelation(string aborigenId, int flatNumber) { lock (Locker) { FlatsProvider.VerifyFlatNumber(flatNumber); LoadRelations(); OwnRelationModel ownRelationModel = ownRelations.FirstOrDefault(relation => relation.OwnerId == aborigenId); if (ownRelationModel != null) { ownRelationModel.FlatNumber = flatNumber; } else { ownRelations.Add(new OwnRelationModel { FlatNumber = flatNumber, OwnerId = aborigenId }); } using (var context = new SimpleDbContext <OwnRelationModel>()) { context.Objects.RemoveRange(context.Objects); context.Objects.AddRange(ownRelations); context.SaveChanges(); } } }
public static AborigenDecoratorViewModel GetFlatOwner(int flatNumber) { lock (Locker) { FlatsProvider.VerifyFlatNumber(flatNumber); LoadRelations(); //FlatViewModel flat = FloorsProvider.FindFlatByNumber(flatNumber); OwnRelationModel ownRelationModel = ownRelations.FirstOrDefault(relation => relation.FlatNumber == flatNumber); if (ownRelationModel == null) { return(AborigenDecoratorViewModel.CreateEmptyFake()); } AborigenModel ownerModel = AborigensProvider.GetAborigen(ownRelationModel.OwnerId); if (ownerModel == null) { return(AborigenDecoratorViewModel.CreateEmptyFake()); } return(AborigenDecoratorViewModel.Create(ownerModel)); } }
/// <summary> /// Найти номер квартиры, которой владеет данный житель. /// </summary> /// <param name="aborigenId">Идентификатор жителя.</param> /// <returns>Номер квартиры, которой владеет данный житель. Или <see cref="InvalidFlatNumber"/> - если житель ничем не владеет.</returns> public static int GetOwnedFlatNumber(string aborigenId) { lock (Locker) { LoadRelations(); OwnRelationModel ownRelationModel = ownRelations.FirstOrDefault(relation => relation.OwnerId == aborigenId); if (ownRelationModel != null) { return(ownRelationModel.FlatNumber); } return(InvalidFlatNumber); //throw new InvalidOperationException($"Житель с идентификатором '{ aborigenId }' не найден"); } }