public ActionResult DeleteConfirmed(int id)
        {
            if (!User.IsInRole("Owner") && !User.IsInRole("Admin"))
            {
                //Impedimento de o owner ver as reservas dos clientes da base de dados
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "You don't have authorization to go to webpage."));
                //--------------------------------------------------------------------
            }

            if (db.Reserves.Where(p => p.StationPostId == id).Any())
            {
                return(RedirectToAction("Index"));
            }

            StationPostsAtribuition ppp = db.StationPostsAtribuition.Where(p => p.StationPostId == id).Single();

            db.StationPostsAtribuition.Remove(ppp);

            var times = db.TimeAtribuitions.Where(o => o.StationPostId == id);

            db.TimeAtribuitions.RemoveRange(times);

            StationPost stationPost = db.StationPosts.Find(id);

            db.StationPosts.Remove(stationPost);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #2
0
        public ActionResult AddPost(StationPost stationPost, int?StationId)
        {
            if (!User.IsInRole("Owner") && !User.IsInRole("Admin"))
            {
                //Impedimento de o owner ver as reservas dos clientes da base de dados
                return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, "You don't have authorization to go to webpage."));
                //--------------------------------------------------------------------
            }

            if (NomePostoRepetido(stationPost))
            {
                ModelState.AddModelError("StationPostName", "Já existe um posto com este nome nesta ou noutra estação.");
                AddPost(StationId);
            }
            else
            {
                if (ModelState.IsValid)
                {
                    db.StationPosts.Add(stationPost);

                    for (int i = 0; i < db.TimeDatas.Count() / 2; i++)
                    {
                        if (i < stationPost.Start.Hour || i > stationPost.Finnish.Hour)
                        {
                            var             trueTimes = db.TimeDatas.Where(o => o.Time.Hour == i).Where(k => k.Status == false).Single();
                            TimeAtribuition ta        = new TimeAtribuition()
                            {
                                StationPostId = stationPost.StationPostId,
                                StationPost   = stationPost,
                                TimeData      = trueTimes,
                                TimeDataId    = trueTimes.TimeDataId
                            };

                            db.TimeAtribuitions.Add(ta);
                        }
                        else
                        {
                            var             trueTimes = db.TimeDatas.Where(o => o.Time.Hour == i).Where(k => k.Status == true).Single();
                            TimeAtribuition ta        = new TimeAtribuition()
                            {
                                StationPostId = stationPost.StationPostId,
                                StationPost   = stationPost,
                                TimeData      = trueTimes,
                                TimeDataId    = trueTimes.TimeDataId
                            };

                            db.TimeAtribuitions.Add(ta);
                        }
                    }

                    Station stat = db.Stations.Find(StationId);

                    StationPostsAtribuition sss = new StationPostsAtribuition()
                    {
                        Station       = stat,
                        StationId     = stat.StationId,
                        StationPost   = stationPost,
                        StationPostId = stationPost.StationPostId
                    };

                    db.StationPostsAtribuition.Add(sss);

                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
            }

            ViewBag.RechargeTypeId = new SelectList(db.RechargeTypes, "RechargeTypeId", "RechargeTypeName", stationPost.RechargeTypeId);
            return(View(stationPost));
        }