public override void Add(Core.Model.RepairCard item)
        {
            if (item == null) return;

            if (Guid.Equals(item.Id, Guid.Empty))
            {
                item.Id = Guid.NewGuid();
            }

            if (Guid.Equals(item.Car.Id, Guid.Empty))
            {
                item.Car.Id = Guid.NewGuid();
            }

            item.FinishedDate = new DateTime(1800, 1, 1);
            item.Car.ProductionYear = new DateTime(1800, 1, 1);

            using (var dbContext = new CarServiceEntities())
            {
                var entity = MappingManager.Instance.Map<Core.Model.RepairCard, RepairCard>(item);
                dbContext.RepairCards.Add(entity);

                dbContext.SaveChanges();
            }
        }
 public override IEnumerable<Core.Model.RepairCard> Get()
 {
     using (var dbContext = new CarServiceEntities())
     {
         var entities = dbContext.RepairCards.OrderBy(x => x.Id);
         return MappingManager.Instance.Map<IEnumerable<RepairCard>, IEnumerable<Core.Model.RepairCard>>(entities);
     }
 }
 public override Core.Model.RepairCard Get(Guid id)
 {
     using (var dbContext = new CarServiceEntities())
     {
         var entity = dbContext.RepairCards.Where(x => x.Id == id).FirstOrDefault();
         return MappingManager.Instance.Map<RepairCard, Core.Model.RepairCard>(entity);
     }
 }
 public override Core.Model.Car GetCar(Guid id)
 {
     using (var dbContext = new CarServiceEntities())
     {
         var entity = dbContext.Cars.Where(x => x.Id == id).FirstOrDefault();
         var mapped = MappingManager.Instance.Map<Car, Core.Model.Car>(entity);
         return mapped;
     }
 }
 public override Model.Mechanic Get(Guid id)
 {
     using (var dbContext = new CarServiceEntities())
     {
         var result = dbContext.Mechanics.Where(x => x.Id == id).SingleOrDefault();
         var mapped = MappingManager.Instance.Map<Mechanic, Model.Mechanic>(result);
         mapped.ProviderName = EntityFrameworkMechanicsProvider.ProviderName;
         return mapped;
     }
 }
        public override void Delete(Guid id)
        {
            using (var dbContext = new CarServiceEntities())
            {
                var mechanic = dbContext.Mechanics.FirstOrDefault(m => m.Id == id);
                dbContext.Mechanics.Remove(mechanic);

                dbContext.SaveChanges();
            }
        }
        public override void AddCar(Core.Model.Car item)
        {
            using (var dbContext = new CarServiceEntities())
            {
                var entity = MappingManager.Instance.Map<Core.Model.Car, Car>(item);
                dbContext.Cars.Add(entity);

                dbContext.SaveChanges();
            }
        }
        public override IEnumerable<Model.Mechanic> Get()
        {
            using (var dbContext = new CarServiceEntities())
            {
                var result = dbContext.Mechanics.ToList<Mechanic>();

                var mapped = MappingManager.Instance.Map<IEnumerable<Mechanic>, IEnumerable<Model.Mechanic>>(result);
                mapped.All(m => { m.ProviderName = EntityFrameworkMechanicsProvider.ProviderName; return true; });

                return mapped;
            }
        }
        public override void Add(Model.Mechanic item)
        {
            if (item == null) return;

            if (Guid.Equals(item.Id, Guid.Empty))
            {
                item.Id = Guid.NewGuid();
            }

            var mapped = MappingManager.Instance.Map<Model.Mechanic, Mechanic>(item);
            using (var dbContext = new CarServiceEntities())
            {
                dbContext.Mechanics.Add(mapped);

                dbContext.SaveChanges();
            }
        }
        public override void Update(Model.Mechanic item)
        {
            if (item == null) return;

            var mapped = MappingManager.Instance.Map<Model.Mechanic, Mechanic>(item);
            using (var dbContext = new CarServiceEntities())
            {
                var entry = dbContext.Entry(mapped);
                entry.State = System.Data.EntityState.Modified;

                dbContext.SaveChanges();
            }
        }
        //
        // GET: /Repairs/Edit/5
        public ActionResult Edit(Guid id)
        {
            var repairCard = RepairsManager.GetManager().Get().Where(x => x.Id == id).SingleOrDefault();
            var model = MappingManager.Instance.Map<Core.Model.RepairCard, RepairCardModel>(repairCard);
            var userGUID = (Guid)Membership.GetUser(User.Identity.Name).ProviderUserKey;
            if (model == null || (!model.UserId.Equals(userGUID) && !Roles.IsUserInRole(User.Identity.Name, "Administrator")))
            {
                return RedirectToAction("Index", "Repairs");
            }

            var mechanics = Core.Managers.MechanicsManager.GetManager().Get();
            model.Mechanics = MappingManager.Instance.Map<IEnumerable<Core.Model.Mechanic>, IEnumerable<Mechanic>>(mechanics);

            model.SpareParts = SparePartsManager.GetInstance().GetAllActive<PartModel>();

            using (var dbContext = new CarServiceEntities())
            {
                var parts = dbContext.RepairCards.Find(model.Id).SpareParts;

                for (int i = 0; i < model.SpareParts.Count; i++ )
                {
                    if (parts.Any(x => x.Id == model.SpareParts[i].Id))
                    {
                        model.SpareParts[i].IsSelected = true;
                    }
                }
            }

            return View(model);
        }
 public override IEnumerable<Core.Model.Car> GetCars()
 {
     using (var context = new CarServiceEntities())
     {
         var cars = context.Cars.ToList();
         return MappingManager.Instance.Map<IEnumerable<Car>, IEnumerable<Core.Model.Car>>(cars);
     }
 }
        public override void UpdateCar(Core.Model.Car item)
        {
            using (var dbContext = new CarServiceEntities())
            {
                var entity = MappingManager.Instance.Map<Core.Model.Car, Car>(item);
                var entry = dbContext.Entry<Car>(entity);
                entry.State = System.Data.EntityState.Modified;

                dbContext.SaveChanges();
            }
        }