Esempio n. 1
0
        public ActionResult Create(Station station, string UserName)
        {
            if (!User.IsInRole("Owner"))
            {
                //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 (NomeEstacaoRepetido(station))
            {
                ModelState.AddModelError("StationName", "Já existe uma estação com este nome.");
            }

            if (ModelState.IsValid)
            {
                //Atribuição ao Owner da Estação de carregamento
                var user             = db.Users.Where(o => o.UserName.Equals(UserName)).Single();
                StationAtribution sa = new StationAtribution()
                {
                    UserId    = user.Id,
                    Station   = station,
                    StationId = station.StationId
                };
                db.StationAtributions.Add(sa);
                //----------------------------------------------

                db.Stations.Add(station);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.LocalId = new SelectList(db.Locals, "LocalId", "LocalName", station.LocalId);
            return(View(station));
        }
Esempio n. 2
0
        public ActionResult DeleteConfirmed(int id, string UserName)
        {
            if (!User.IsInRole("Owner"))
            {
                //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 (UserName == null || UserName.Length == 0)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Station station = db.Stations.Find(id);

            //Eliminação da atribuição do Owner à estação de carregamento
            var user             = db.Users.Where(o => o.UserName.Equals(UserName)).Single();
            StationAtribution sa = db.StationAtributions.Where(o => o.UserId.Equals(user.Id) && station.StationId == o.StationId).Single();

            db.StationAtributions.Remove(sa);
            //-----------------------------------------------------------

            var stationPost = db.StationPostsAtribuition.Where(o => o.StationId == station.StationId).Select(o => o.StationPostId);

            if (stationPost != null)
            {
                foreach (int idPost in stationPost)
                {
                    var times = db.TimeAtribuitions.Where(o => o.StationPostId == idPost);

                    db.TimeAtribuitions.RemoveRange(times);
                }
            }

            var stationPostTrue = db.StationPostsAtribuition.Where(o => o.StationId == station.StationId).Select(o => o.StationPost);

            if (stationPostTrue != null)
            {
                db.StationPosts.RemoveRange(stationPostTrue);
            }

            var stationsAtt = db.StationPostsAtribuition.Where(o => o.StationId == station.StationId);

            if (stationsAtt != null)
            {
                db.StationPostsAtribuition.RemoveRange(stationsAtt);
            }

            db.Stations.Remove(station);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }