public void Add(Fermentable fermentable)
 {
     using (var context = new MicrobrewitContext())
     {
         if (fermentable.Supplier != null)
             fermentable.Supplier = null;
         context.Entry(fermentable).State = EntityState.Added;
         try
         {
             context.SaveChanges();
         }
         catch (DbEntityValidationException dbEx)
         {
             foreach (var validationErrors in dbEx.EntityValidationErrors)
             {
                 foreach (var validationError in validationErrors.ValidationErrors)
                 {
                     Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName,
                         validationError.ErrorMessage);
                     Log.DebugFormat("Property: {0} Error: {1}", validationError.PropertyName,
                         validationError.ErrorMessage);
                 }
             }
         }
     }
 }
 public virtual void Update(Fermentable fermentable)
 {
     using (var context = new MicrobrewitContext())
     {
         context.Entry(fermentable).State = EntityState.Modified;
         context.SaveChanges();
     }
 }
        public void Add(Fermentable fermentable)
        {
            using (var context = DapperHelper.GetConnection())
            {
                context.Open();
                using (var transaction = context.BeginTransaction())
                {
                    try
                    {
                        var fermentableId =
                            context.Query<int>("INSERT Fermentables(Name,SuperFermentableId,EBC,Lovibond,PPG,SupplierId,Type,Custom) " +
                                               "VALUES(@Name,@SuperFermentableId,@EBC,@Lovibond,@PPG,@SupplierId,@Type,@Custom);" +
                                               "SELECT CAST(SCOPE_IDENTITY() as int);",
                                               new
                                               {
                                                   fermentable.Name,
                                                   fermentable.SuperFermentableId,
                                                   fermentable.EBC,
                                                   fermentable.Lovibond,
                                                   fermentable.PPG,
                                                   fermentable.SupplierId,
                                                   fermentable.Type,
                                                   fermentable.Custom,
                                               }, transaction);
                        fermentable.FermentableId = fermentableId.SingleOrDefault();
                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        Log.Error(e.ToString());
                        transaction.Rollback();
                        throw;
                    }

                }
            }
        }
 public async Task RemoveAsync_Gets_Removed()
 {
     var newFermentable = new Fermentable { Name = "newFermentable" + DateTime.Now.Ticks, Type = "Grain", Custom = true };
     await _fermentableRepository.AddAsync(newFermentable);
     await _fermentableRepository.RemoveAsync(newFermentable);
     var fermentables = await _fermentableRepository.GetAllAsync(0, 20);
     Assert.True(fermentables.All(o => o.FermentableId != newFermentable.FermentableId));
 }
 public void Remove_Gets_Removed()
 {
     var newFermentable = new Fermentable { Name = "newFermentable" + DateTime.Now.Ticks, Type = "Grain", Custom = true };
     _fermentableRepository.Add(newFermentable);
     _fermentableRepository.Remove(newFermentable);
     var fermentables = _fermentableRepository.GetAll();
     Assert.True(fermentables.All(o => o.FermentableId != newFermentable.FermentableId));
 }
 public void Add_FermentableId_Gets_Set()
 {
     var newFermentable = new Fermentable { Name = "newFermentable" + DateTime.Now.Ticks, Type = "Grain", Custom = true };
     _fermentableRepository.Add(newFermentable);
     var fermentable = _fermentableRepository.GetSingle(newFermentable.FermentableId);
     Assert.NotNull(fermentable);
 }
 public async Task AddAsync_Gets_Added()
 {
     var newFermentable = new Fermentable { Name = "newFermentable" + DateTime.Now.Ticks, Type = "Grain", Custom = true };
     await _fermentableRepository.AddAsync(newFermentable);
     var fermentables = await _fermentableRepository.GetAllAsync(0, 20);
     Assert.True(fermentables.Any(o => o.Name == newFermentable.Name));
 }
 public void Add_Gets_Added()
 {
     var newFermentable = new Fermentable {Name = "newFermentable" + DateTime.Now.Ticks, Type = "Grain", Custom = true};
     _fermentableRepository.Add(newFermentable);
     var fermentables = _fermentableRepository.GetAll();
     Assert.True(fermentables.Any(o => o.Name == newFermentable.Name));
 }
 public async Task RemoveAsync(Fermentable fermentable)
 {
     using (var context = DapperHelper.GetConnection())
     {
         context.Open();
         using (var transaction = context.BeginTransaction())
         {
             try
             {
                 await context.ExecuteAsync("DELETE FROM Fermentables WHERE FermentableId = @FermentableId",
                     new { fermentable.FermentableId }, transaction);
                 transaction.Commit();
             }
             catch (Exception e)
             {
                 Log.Error(e.ToString());
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
 public async Task<int> UpdateAsync(Fermentable fermentable)
 {
     using (var context = DapperHelper.GetConnection())
     {
         context.Open();
         using (var transaction = context.BeginTransaction())
         {
             try
             {
                 var result = await context.ExecuteAsync("Update Fermentables set Name = @Name,SuperFermentableId = @SuperFermentableId,EBC = @EBC,Lovibond = @Lovibond,PPG= @PPG,SupplierId = @SupplierId,Type = @Type, Custom = @Custom " +
                                 "WHERE FermentableId = @FermentableId;",
                                        new
                                        {
                                            fermentable.FermentableId,
                                            fermentable.Name,
                                            fermentable.SuperFermentableId,
                                            fermentable.EBC,
                                            fermentable.Lovibond,
                                            fermentable.PPG,
                                            fermentable.SupplierId,
                                            fermentable.Type,
                                            fermentable.Custom,
                                        }, transaction);
                 transaction.Commit();
                 return result;
             }
             catch (Exception e)
             {
                 Log.Error(e.ToString());
                 transaction.Rollback();
                 throw;
             }
         }
     }
 }
        public virtual async Task RemoveAsync(Fermentable fermentable)
        {
            using (var context = new MicrobrewitContext())
            {

                context.Entry(fermentable).State = EntityState.Deleted;
                try
                {
                    await context.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    Log.Debug(e);
                    throw;
                }
            }
        }
        public virtual async Task<int> UpdateAsync(Fermentable fermentable)
        {
            using (var context = new MicrobrewitContext())
            {
                context.Entry(fermentable).State = EntityState.Modified;
                try
                {
                    return await context.SaveChangesAsync();
                }
                catch (Exception e)
                {
                    throw;
                }

            }
        }
        public virtual async Task AddAsync(Fermentable fermentable)
        {
            using (var context = new MicrobrewitContext())
            {
                if (fermentable.Supplier != null)
                    fermentable.Supplier = null;
                context.Entry(fermentable).State = EntityState.Added;
                try
                {
                    await context.SaveChangesAsync();
                }
                catch (DbEntityValidationException dbEx)
                {
                    //foreach (var validationErrors in dbEx.EntityValidationErrors)
                    //{
                    //    foreach (var validationError in validationErrors.ValidationErrors)
                    //    {
                    //        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    //        Log.DebugFormat("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    //        throw dbEx;
                    //    }
                    //}
                    throw;
                }
                catch (Exception ex)
                {
                    throw;
                }
            }

        }