public void CantEditSubgroup()
 {
     using (EF_ZMT_DbContext.EF_ZMT_DbContext context = new EF_ZMT_DbContext.EF_ZMT_DbContext())
     {
         FixedAssetService transaction = new FixedAssetService();
         context.Context.ExecuteStoreCommand("DELETE FROM Subgroup");
         Subgroup subgroup = new Subgroup() { name = "Środki wysokiej wartości", short_name = "N491" };
         Assert.AreEqual(context.Context.Subgroups.Count(), 0);
         transaction.EditSubgroup(subgroup);
     }
 }
 public void CanAddSubgroup()
 {
     using(EF_ZMT_DbContext.EF_ZMT_DbContext context = new EF_ZMT_DbContext.EF_ZMT_DbContext())
     {
         FixedAssetService transaction = new FixedAssetService();
         context.Context.ExecuteStoreCommand("DELETE FROM Subgroup");
         Subgroup subgroup = new Subgroup() { name = "Środki wysokiej wartości", short_name = "N491" };
         transaction.AddSubgroup(subgroup);
         Assert.AreEqual(context.Context.Subgroups.Count(), 1);
         subgroup = context.Context.Subgroups.FirstOrDefault(x => x.short_name == "N491");
         Assert.IsNotNull(subgroup);
         Assert.AreEqual(subgroup.name, "Środki wysokiej wartości");
     }
 }
 public void AddSubgroup(Subgroup subgroup)
 {
     using (EF_ZMT_DbContext.EF_ZMT_DbContext context = new EF_ZMT_DbContext.EF_ZMT_DbContext())
     {
         try
         {
             context.Context.Subgroups.AddObject(subgroup);
             context.SaveChanges();
         }
         catch (UpdateException)
         {
             throw new FaultException(string.Format(
             "Nie udało się dodać podgrupy. Popraw dane i spróbuj ponownie"));
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message.ToString());
         }
     }
 }
 public void DeleteSubgroup(Subgroup subgroup)
 {
     using (EF_ZMT_DbContext.EF_ZMT_DbContext context = new EF_ZMT_DbContext.EF_ZMT_DbContext())
     {
         try
         {
             context.Context.Subgroups.Attach(subgroup);
             context.Context.Subgroups.DeleteObject(subgroup);
             context.SaveChanges();
         }
         catch (UpdateException)
         {
             throw new FaultException(string.Format(
             "Nie udało się usunąć podgrupy. Prawdopodobnie nie istnieje"));
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message.ToString());
         }
     }
 }
 public void EditSubgroup(Subgroup subgroup)
 {
     using (EF_ZMT_DbContext.EF_ZMT_DbContext context = new EF_ZMT_DbContext.EF_ZMT_DbContext())
     {
         try
         {
             context.Context.Subgroups.Attach(subgroup);
             context.Context.ObjectStateManager.ChangeObjectState(subgroup, System.Data.EntityState.Modified);
             context.Context.Subgroups.ApplyChanges(subgroup);
             context.SaveChanges();
         }
         catch (UpdateException)
         {
             throw new FaultException(string.Format(
             "Nie udało się edytować podgrupy. Popraw dane i spróbuj ponownie"));
         }
         catch (Exception ex)
         {
             throw new Exception(ex.Message.ToString());
         }
     }
 }
        public void GetFixedAssetsBySubgroupId()
        {
            Subgroup podrodzaj = new Subgroup { id = 1, name = "Środki wysokiej wartości", short_name = "N491" };

            Mock<IFixedAssetRepository> mock = new Mock<IFixedAssetRepository>();
            mock.Setup(a => a.FixedAssets).Returns(new FixedAsset[]
            {
                new FixedAsset { id = 1, inventory_number = "002/4/11111", id_subgroup = podrodzaj.id },
                new FixedAsset { id = 2, inventory_number = "002/4/22222", id_subgroup = podrodzaj.id },
                new FixedAsset { id = 3, inventory_number = "002/4/33333", id_subgroup = 3 },
                new FixedAsset { id = 4, inventory_number = "002/4/44444", id_subgroup = 4 },
                new FixedAsset { id = 5, inventory_number = "002/4/55555", id_subgroup = 6 },
                new FixedAsset { id = 6, inventory_number = "002/4/66666", id_subgroup = podrodzaj.id }
            }.AsQueryable());

            FixedAssetController ctrl = new FixedAssetController(mock.Object);
            object[] temp = ctrl.GetFixedAssetsBySubgroupId(podrodzaj.id);
            Assert.AreEqual(temp.Length, 3);
            Assert.AreEqual(((FixedAsset)temp[2]).inventory_number, "002/4/66666");

            temp = ctrl.GetFixedAssetsBySubgroupId(6);
            Assert.AreEqual(temp.Length, 1);

            temp = ctrl.GetFixedAssetsBySubgroupId(8);
            Assert.AreEqual(temp.Length, 0);
        }
     private void FixupSubgroup(Subgroup previousValue, bool skipKeys = false)
     {
         if (IsDeserializing)
         {
             return;
         }
 
         if (previousValue != null && previousValue.FixedAssets.Contains(this))
         {
             previousValue.FixedAssets.Remove(this);
         }
 
         if (Subgroup != null)
         {
             if (!Subgroup.FixedAssets.Contains(this))
             {
                 Subgroup.FixedAssets.Add(this);
             }
 
             id_subgroup = Subgroup.id;
         }
         else if (!skipKeys)
         {
             id_subgroup = null;
         }
 
         if (ChangeTracker.ChangeTrackingEnabled)
         {
             if (ChangeTracker.OriginalValues.ContainsKey("Subgroup")
                 && (ChangeTracker.OriginalValues["Subgroup"] == Subgroup))
             {
                 ChangeTracker.OriginalValues.Remove("Subgroup");
             }
             else
             {
                 ChangeTracker.RecordOriginalValue("Subgroup", previousValue);
             }
             if (Subgroup != null && !Subgroup.ChangeTracker.ChangeTrackingEnabled)
             {
                 Subgroup.StartTracking();
             }
         }
     }