/// <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)); }
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)); }