/// <summary>
        /// Potwierdzenie incydentu.
        /// </summary>
        /// <param name="id">ID incydentu.</param>
        /// <returns>Przekierowanie do akcji widoku głównego.</returns>
        public ActionResult ConfirmIncident(int id)
        {
            Incident incident = db.Incidents.Find(id);

            if (incident == null)
            {
                return(HttpNotFound());
            }
            var part = db.ServiceParticipations.Where(p => p.IncidentId == id);

            foreach (var p in part)
            {
                if (User.IsInRole(p.RoleName))
                {
                    db.ServiceParticipations.Remove(p);
                    ServiceParticipation sp = new ServiceParticipation();
                    sp.IncidentId = id;
                    sp.confirmed  = true;
                    sp.RoleId     = p.RoleId;
                    sp.RoleName   = p.RoleName;
                    db.ServiceParticipations.Add(sp);
                }
            }
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public ActionResult Create([Bind(Include = "ID,AddDate,DateOfIncident,TimeOfIncident,Type,About,Lat,Long,Address,City,ZipCode,Roles")] IncidentsViewModel incidentView)
        {
            if (ModelState.IsValid)
            {
                Incident incident = new Incident();
                var      query    = (from t in db.IncidentTypes where t.Name.Equals(incidentView.Type) select t.TypeID).FirstOrDefault();
                incident.TypeID         = query;
                incident.About          = incidentView.About;
                incident.AddDate        = incidentView.AddDate;
                incident.Address        = incidentView.Address;
                incident.City           = incidentView.City;
                incident.DateOfIncident = incidentView.DateOfIncident;
                incident.Lat            = incidentView.Lat;
                incident.Long           = incidentView.Long;
                incident.TimeOfIncident = incidentView.TimeOfIncident;
                incident.Type           = incidentView.Type;
                incident.ZipCode        = incidentView.ZipCode;
                db.Incidents.Add(incident);
                foreach (RoleViewModel r in incidentView.Roles)
                {
                    if (r.Selected == true)
                    {
                        ServiceParticipation part = new ServiceParticipation();
                        var role = appDb.Roles.SingleOrDefault(o => o.Id == r.RoleId);
                        part.RoleName   = role.Name;
                        part.RoleId     = r.RoleId;
                        part.IncidentId = incidentView.ID;
                        if (User.IsInRole(r.RoleName))
                        {
                            part.confirmed = true;
                        }
                        else
                        {
                            part.confirmed = false;
                        }
                        db.ServiceParticipations.Add(part);
                    }
                }
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            List <SelectListItem> li = new List <SelectListItem>();
            var allTypes             = from types in db.IncidentTypes select types;

            foreach (var type in allTypes)
            {
                li.Add(new SelectListItem {
                    Text = type.Name, Value = type.Name
                });
            }

            ViewData["Types"] = li;

            return(View(incidentView));
        }
Beispiel #3
0
 public ActionResult Edit([Bind(Include = "IncidentId,RoleId,RoleName,confirmed,AboutParticipation")] ServiceParticipation serviceParticipation)
 {
     if (ModelState.IsValid)
     {
         db.Entry(serviceParticipation).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(serviceParticipation));
 }
        public ActionResult Edit([Bind(Include = "ID,AddDate,DateOfIncident,TimeOfIncident,Type,About,Lat,Long,Address,City,ZipCode,Roles")] IncidentsViewModel incidentView)
        {
            if (ModelState.IsValid)
            {
                Incident incident = new Incident();
                var      query    = (from t in db.IncidentTypes where t.Name.Equals(incidentView.Type) select t.TypeID).FirstOrDefault();
                incident.ID              = incidentView.ID;
                incident.TypeID          = query;
                incident.About           = incidentView.About;
                incident.AddDate         = incidentView.AddDate;
                incident.Address         = incidentView.Address;
                incident.City            = incidentView.City;
                incident.DateOfIncident  = incidentView.DateOfIncident;
                incident.Lat             = incidentView.Lat;
                incident.Long            = incidentView.Long;
                incident.TimeOfIncident  = incidentView.TimeOfIncident;
                incident.Type            = incidentView.Type;
                incident.ZipCode         = incidentView.ZipCode;
                db.Entry(incident).State = EntityState.Modified;
                var services = db.ServiceParticipations.Where(s => s.IncidentId == incidentView.ID);
                foreach (var s in services)
                {
                    db.ServiceParticipations.Remove(s);
                }
                foreach (RoleViewModel r in incidentView.Roles)
                {
                    if (r.Selected == true)
                    {
                        ServiceParticipation part = new ServiceParticipation();
                        var role = appDb.Roles.SingleOrDefault(o => o.Id == r.RoleId);
                        part.RoleName   = role.Name;
                        part.RoleId     = r.RoleId;
                        part.IncidentId = incidentView.ID;
                        if (User.IsInRole(r.RoleName))
                        {
                            part.confirmed = true;
                        }
                        else
                        {
                            part.confirmed = false;
                        }
                        db.ServiceParticipations.Add(part);
                        //db.SaveChanges();
                    }
                }

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