Beispiel #1
0
 public BikeModel(BikeModel m)
 {
     id = m.id;
     name = m.name;
     description = m.description;
     imageUrl = m.imageUrl;
     currentLenderId = m.currentLenderId;
     isActive = m.isActive;
     isInDangerousZone = m.isInDangerousZone;
     lastLendingDate = m.lastLendingDate;
     session = m.session;
     lastSession = m.lastSession;
     lender = m.lender;
 }
        public ActionResult Create(BikeModel m, int MyLenders = -1, HttpPostedFileBase ImgFile = null)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception();
                }

                var bikeModelToInsert = new BikeModel(m);

                if (MyLenders > -1)
                {
                    try
                    {
                        DataRepository.GetLendersOfUser((Guid)Membership.GetUser().ProviderUserKey).Single(l => l.id == MyLenders);
                        bikeModelToInsert.currentLenderId = MyLenders;
                    }
                    catch
                    {
                        ModelState.AddModelError("", "A választott kölcsönző nincs Önhöz rendelve.");
                        throw new Exception();
                    }
                }

                bikeModelToInsert = DataRepository.GetBike(DataRepository.InsertBike(bikeModelToInsert));
                bikeModelToInsert.imageUrl = UploadImage(ImgFile, (int)bikeModelToInsert.id);
                DataRepository.UpdateBike(bikeModelToInsert);

                return RedirectToAction("Index");
            }
            catch
            {
                ViewBag.active_menu_item_id = "menu-btn-bikes";
                var favouriteLender = Request.Cookies.Get("favourite_lender");

                try
                {
                    CreateSelectableLenders(int.Parse(favouriteLender.Value));
                }
                catch
                {
                    CreateSelectableLenders(null);
                }

                return View(m);
            }
        }
        /// <summary>
        /// Inserts a bike into the database
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int InsertBike(BikeModel m)
        {
            var db = new BicikliDataClassesDataContext();
            var bike = new Bike()
                {
                    description = m.description,
                    is_active = m.isActive,
                    name = m.name,
                    current_lender_id = m.currentLenderId
                };
            db.Bikes.InsertOnSubmit(bike);
            db.SubmitChanges();

            return bike.id;
        }
 /// <summary>
 /// Updates a bike in the database
 /// </summary>
 /// <param name="m"></param>
 public static void UpdateBike(BikeModel m)
 {
     var db = new BicikliDataClassesDataContext();
     var bikeToUpdate = db.Bikes.Single(b => b.id == m.id);
     if (bikeToUpdate.name != m.name)
     {
         bikeToUpdate.name = m.name;
     }
     if (bikeToUpdate.description != m.description)
     {
         bikeToUpdate.description = m.description;
     }
     if (bikeToUpdate.is_active != m.isActive)
     {
         bikeToUpdate.is_active = m.isActive;
     }
     if (bikeToUpdate.current_lender_id != m.currentLenderId)
     {
         bikeToUpdate.current_lender_id = m.currentLenderId;
     }
     if (bikeToUpdate.image_url != m.imageUrl)
     {
         bikeToUpdate.image_url = m.imageUrl;
     }
     db.SubmitChanges();
 }
        public ActionResult Edit(BikeModel m, int MyLenders = -1, HttpPostedFileBase ImgFile = null)
        {
            var bike = DataRepository.GetBike((int)m.id);
            if (bike.currentLenderId != null)
            {
                try
                {
                    DataRepository.GetLendersOfUser((Guid)Membership.GetUser().ProviderUserKey).Single(l => l.id == bike.currentLenderId);
                }
                catch
                {
                    return new HttpStatusCodeResult(HttpStatusCode.Forbidden);
                }
            }

            try
            {
                if (!ModelState.IsValid)
                {
                    throw new Exception();
                }

                var bikeModelToUpdate = DataRepository.GetBike((int)m.id);
                bikeModelToUpdate.name = m.name;
                bikeModelToUpdate.description = m.description;
                bikeModelToUpdate.isActive = m.isActive;

                if (bikeModelToUpdate.session == null)
                {
                    if (MyLenders < 0)
                    {
                        bikeModelToUpdate.currentLenderId = null;
                    }
                    else if (bikeModelToUpdate.currentLenderId != MyLenders)
                    {
                        try
                        {
                            DataRepository.GetLendersOfUser((Guid)Membership.GetUser().ProviderUserKey).Single(l => l.id == MyLenders);
                            bikeModelToUpdate.currentLenderId = MyLenders;
                        }
                        catch
                        {
                            ModelState.AddModelError("", "A választott kölcsönző nincs Önhöz rendelve.");
                            throw new Exception();
                        }
                    }
                }
                bikeModelToUpdate.imageUrl = UploadImage(ImgFile, (int)m.id) ?? bikeModelToUpdate.imageUrl;

                DataRepository.UpdateBike(bikeModelToUpdate);
                return RedirectToAction("Index");
            }
            catch
            {
                ViewBag.active_menu_item_id = "menu-btn-bikes";
                CreateSelectableLenders(m.currentLenderId);
                return View(m);
            }
        }
        public ActionResult Delete(BikeModel m)
        {
            BikeModel bikeToDelete = null;
            try
            {
                bikeToDelete = DataRepository.GetBike((int)m.id);

                if (bikeToDelete.currentLenderId != null)
                {
                    try
                    {
                        DataRepository.GetLendersOfUser((Guid)Membership.GetUser().ProviderUserKey).Single(l => l.id == bikeToDelete.currentLenderId);
                    }
                    catch
                    {
                        return new HttpStatusCodeResult(HttpStatusCode.Forbidden);
                    }
                }

                if (bikeToDelete.lastLendingDate != null)
                {
                    ModelState.Clear();
                    ModelState.AddModelError("", "Nem törölhető olyan kerékpár, amely már ki volt kölcsönözve.");
                    throw new Exception();
                }

                DataRepository.DeleteBike((int)m.id);

                return RedirectToAction("Index");
            }
            catch
            {
                ViewBag.active_menu_item_id = "menu-btn-bikes";
                return View(bikeToDelete ?? m);
            }
        }