public List <CheckListItem> GetDefaultCheckListItems(ChainsDBEntities context)
        {
            var defaultCollection = context.CheckListItemDefaultCollections.ToList();
            var checkListItems    = context.CheckListItems.Where(o => defaultCollection.Any(x => x.CheckListItemId == o.Id));

            return(checkListItems.ToList());
        }
 public List <PropertyCheckListitem> GetCheckListItemsForProperty(Guid propertyId)
 {
     using (var context = new ChainsDBEntities())
     {
         return(_databaseRepository.GetCheckListItemsForProperty(context, propertyId));
     }
 }
        public void DeleteProperty(ChainsDBEntities context, Guid id, string username, DateTime now)
        {
            var propertyToDelete = context.Properties.Find(id);

            propertyToDelete.DateDeleted = now;
            propertyToDelete.DeletedBy   = username;
            propertyToDelete.Deleted     = true;

            context.SaveChanges();
        }
        public void Update <T>(ChainsDBEntities context, T item, Guid id)
        {
            var entity = context.Set(typeof(T)).Find(id);

            if (entity == null)
            {
                return;
            }

            context.Entry(entity).CurrentValues.SetValues(item);
            context.SaveChanges();
        }
        private void AddPropertyCheckListItem(ChainsDBEntities context, Guid propertyId, List <CheckListItem> checkListItems)
        {
            var propertyCheckListItemsToAdd = new List <PropertyCheckListitem>();

            foreach (var checkListItem in checkListItems)
            {
                propertyCheckListItemsToAdd.Add(new PropertyCheckListitem {
                    Id = _guidRepository.NewGuid(), CheckListItemId = checkListItem.Id, Created = _dateRepository.Now(), PropertyId = propertyId
                });
            }

            _databaseRepository.AddPropertyCheckListItems(context, propertyCheckListItemsToAdd);
        }
 public bool Delete(Guid id, string username)
 {
     try
     {
         using (var context = new ChainsDBEntities())
         {
             _databaseRepository.DeleteProperty(context, id, username, _dateRepository.Now());
             return(true);
         }
     }
     catch (Exception ex)
     {
         _logger.ErrorFormat("Failed to delete property ID: {0} - Exception: {1}", id, ex.Message);
         return(false);
     }
 }
        public List <PropertyInformationViewModel> GetAllProperties()
        {
            using (var context = new ChainsDBEntities())
            {
                var returnList   = new List <PropertyInformationViewModel>();
                var propertyList = _databaseRepository.GetAllProperties(context).Where(o => !o.Deleted);

                propertyList.ForEach(o =>
                {
                    var property = Mapper.Map <PropertyInformationViewModel>((Property)o);
                    foreach (var checkListitem in o.PropertyCheckListitems)
                    {
                        property.PropertyCheckListitems.Add(new PropertyCheckListItemViewModel(checkListitem));
                    }
                    returnList.Add(property);
                });
                return(returnList);
            }
        }
        public bool Add(Feedback feedbackItem)
        {
            feedbackItem.AddedOn = _dateRepository.Now();
            feedbackItem.Id      = _guidRepository.NewGuid();

            try
            {
                using (var context = new ChainsDBEntities())
                {
                    _databaseRepository.AddItem <Feedback>(context, feedbackItem);

                    return(true);
                }
            }
            catch (Exception ex)
            {
                _logger.ErrorFormat("Could not save the feedback item. \r\nName: {0}\r\nEmail: {1}\r\nDetails: {2}\r\n\r\nException: {3}", feedbackItem.Name, feedbackItem.Email, feedbackItem.Details, ex.Message);
                return(false);
            }
        }
        public bool Upsert(PropertyInformationViewModel viewModel)
        {
            try
            {
                using (var context = new ChainsDBEntities())
                {
                    var      insert = viewModel.Id == _guidRepository.EmptyGuid();
                    Property propertyToUpsert;

                    if (insert)
                    {
                        var buyerCode = GetNewCode();
                        _databaseRepository.AddItem(context, buyerCode);
                        var sellerCode = GetNewCode();
                        _databaseRepository.AddItem(context, sellerCode);
                        propertyToUpsert = ConvertPropertyViewModelToDBType(viewModel, buyerCode.Id, sellerCode.Id);

                        var defaultCheckListItems = _databaseRepository.GetDefaultCheckListItems(context);
                        _databaseRepository.AddItem(context, propertyToUpsert);
                        AddPropertyCheckListItem(context, propertyToUpsert.Id, defaultCheckListItems);
                    }
                    else
                    {
                        propertyToUpsert = ConvertPropertyViewModelToDBType(viewModel, viewModel.BuyerCodeId, viewModel.SellerCodeId);
                        _databaseRepository.Update(context, propertyToUpsert, propertyToUpsert.Id);
                    }

                    return(true);
                }
            }
            catch (Exception ex)
            {
                _logger.ErrorFormat("Could not save the property with RMI: {0} \r\n Exception: {1}", viewModel.RightMoveIdentifier, ex.Message);
                return(false);
            }
        }
 public void AddPropertyCheckListItems(ChainsDBEntities context, List <PropertyCheckListitem> checkListItems)
 {
     context.PropertyCheckListitems.AddRange(checkListItems);
     context.SaveChanges();
 }
 public void AddItem <T>(ChainsDBEntities context, T item)
 {
     context.Set(typeof(T)).Add(item);
     context.SaveChanges();
 }
 public List <PropertyCheckListitem> GetCheckListItemsForProperty(ChainsDBEntities context, Guid propertyId)
 {
     return(context.PropertyCheckListitems.Where(o => o.PropertyId == propertyId).ToList());
 }
 public List <Property> GetAllProperties(ChainsDBEntities context)
 {
     return(context.Properties.Include("PropertyCheckListitems") /*.Include("PropertyCheckListitems.CheckListItem")*/.ToList());
 }