private async Task FindIntersectingGraphicsAsync(DrawShape drawMode) { var messageSubLayers = _messageLayer.ChildLayers.Cast <MessageSubLayer>(); IEnumerable <Graphic> results = Enumerable.Empty <Graphic>(); int maxHits = 1; if (drawMode == DrawShape.Point) { var mapPoint = await MyMapView.Editor.RequestPointAsync(); var screenPoint = MyMapView.LocationToScreen(mapPoint); foreach (var l in messageSubLayers) { results = results.Concat(await l.HitTestAsync(MyMapView, screenPoint, maxHits)); } } else { maxHits = 100; var geometry = await MyMapView.Editor.RequestShapeAsync(drawMode); var mapEnvelope = (geometry as Envelope).Extent; var upperLeft = MyMapView.LocationToScreen (new MapPoint(mapEnvelope.XMin, mapEnvelope.YMax, geometry.SpatialReference)); var lowerRight = MyMapView.LocationToScreen (new MapPoint(mapEnvelope.XMax, mapEnvelope.YMin, geometry.SpatialReference)); var rect = new Rect(upperLeft, lowerRight); foreach (var l in messageSubLayers) { results = results.Concat(await l.HitTestAsync(MyMapView, rect, maxHits)); } } if (results.Count() == 0) { return; } foreach (var graphic in results) { MilitaryMessage message = _messageLayer.GetMessage(graphic.Attributes["_id"].ToString()) as MilitaryMessage; message.MessageAction = MilitaryMessageAction.Select; if (_messageLayer.ProcessMessage(message)) { selectedMessages.Add(message); } else { MessageBox.Show("Failed"); } } }
//send message to all room public ActionResult CheckAllRoom(MessageHTML m) { MessageLayer memlayer = new MessageLayer(); List <Message> mlist = memlayer.GetMessage(); DormLayer layer = new DormLayer(); Dorm dorm = layer.GetDorm(Session["UserName"].ToString()); int sender_dorm = dorm.Dorm_ID; int mlistid = mlist.Count; Message mem = new Message(); RoomLayer RoomDB = new RoomLayer(); List <Room> RoomList = RoomDB.GetStatusRoom(); //only room that have person live foreach (Room r in RoomList) { if (r.Dorm_ID == sender_dorm) { PersonLayer PL = new PersonLayer(); List <Person> personoomList = PL.GetPerson(); foreach (Person person in personoomList) { if (person.Room_ID == r.Room_ID) { mem = new Message(); mem.Receiver_Username = person.Username; mem.Sender_Username = Session["UserName"].ToString(); mem.MessageID = mlistid + 1; mem.Title = m.Subject; mem.Text = m.Message; mem.Isread = 0; mem.Date = DateTime.Now.ToString("dd-MM-yyyy") + " " + DateTime.Today.ToString("HH:mm:ss tt"); //Date + Time db.Message.Add(mem); db.SaveChanges(); mlistid++; } } } } //return mem.Receiver_Username + " " + mem.Sender_Username + " " + // " " + mem.Date ; return(RedirectToAction("index", new { action = 1 })); }
private void SelectMessageGraphic(Graphic graphic) { if (graphic == null) { return; } if (graphic.Attributes.ContainsKey(Message.IdPropertyName)) { var selectMessage = _militaryMessageLayer.GetMessage(graphic.Attributes[Message.IdPropertyName].ToString()); SelectMessage(selectMessage, true); UpdateCurrentTimeExtent(selectMessage); } }
public ActionResult FeedbackSubmit(string detail_feedback) { JongHorDBEntities1 db = new JongHorDBEntities1(); DormLayer layer = new DormLayer(); PersonBusinessLayer personLayer = new PersonBusinessLayer(); MessageLayer memlayer = new MessageLayer(); List <Message> mlist = memlayer.GetMessage(); int mlistid = mlist.Count; Person user = personLayer.GetUser(Session["UserName"].ToString()); Message message = new Message(); message.Receiver_Username = layer.GetDorm(user.Dorm_ID.Value).Person.Username; message.Sender_Username = user.Username; message.MessageID = mlistid + 1; message.Title = "Feedback"; Room room = user.Room; message.Text = (room.Floor + "" + room.Room_ID) + ": " + detail_feedback; message.Isread = 0; message.Date = DateTime.Now.ToString("dd-MM-yyyy") + " " + DateTime.Today.ToString("HH:mm:ss tt"); //Date + Time db.Message.Add(message); try { db.SaveChanges(); } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " The validation errors are: ", fullErrorMessage); // Throw a new DbEntityValidationException with the improved exception message. throw new DbEntityValidationException(exceptionMessage, ex.EntityValidationErrors); } Response.Write("<script>alert('Message has been sent')</script>"); return(Index()); }
public void SetMessages(string name) { MessageLayer layer = new MessageLayer(); Messages = layer.GetMessage(name).ToList <Message>(); }
// Performs a HitTest on the rendered Messages and selects the results private async Task FindIntersectingGraphicsAsync(DrawShape drawMode) { // Get sub layers of the MessageLayer var messageSubLayers = _messageLayer.ChildLayers.Cast <MessageSubLayer>(); // Create an empty result set IEnumerable <Graphic> results = Enumerable.Empty <Graphic>(); // Set the max hits to 1 int maxHits = 1; // Handle the individual Message selection mode if (drawMode == DrawShape.Point) { // Ask the user for the point of interest MapPoint mapPoint = null; try { mapPoint = await MyMapView.Editor.RequestPointAsync(); } catch (TaskCanceledException) { } // Check the geometry if (Geometry.IsNullOrEmpty(mapPoint)) { return; } // Get the location in screen coordinates var screenPoint = MyMapView.LocationToScreen(mapPoint); // Iterate the Message sub layers and await the HitTestAsync method on each layer foreach (var l in messageSubLayers) { results = results.Concat(await l.HitTestAsync(MyMapView, screenPoint, maxHits)); } } // Handle the multiple Message selection mode else { // Increase the max hits value maxHits = 100; // Ask the user for the area of interest Envelope envelope = null; try { envelope = await MyMapView.Editor.RequestShapeAsync(drawMode) as Envelope; } catch (TaskCanceledException) { } // Check the geometry if (Geometry.IsNullOrEmpty(envelope)) { return; } // Get the screen location of the upper left var upperLeft = MyMapView.LocationToScreen (new MapPoint(envelope.XMin, envelope.YMax, envelope.SpatialReference)); // Get the screen location of the lower right var lowerRight = MyMapView.LocationToScreen (new MapPoint(envelope.XMax, envelope.YMin, envelope.SpatialReference)); // Create a Rect from the two corners var rect = new Rect(upperLeft, lowerRight); // Iterate the Message sub layers and await the HitTestAsync method on each layer foreach (var l in messageSubLayers) { results = results.Concat(await l.HitTestAsync(MyMapView, rect, maxHits)); } } if (results.Count() == 0) { return; } // Iterate the results and modify the Action value to Select then reprocess each Message foreach (var graphic in results) { // Retrieve the Message representation from the MessageLayer for each Graphic returned MilitaryMessage message = _messageLayer.GetMessage(graphic.Attributes["_id"].ToString()) as MilitaryMessage; // Modify the Action to Select message.MessageAction = MilitaryMessageAction.Select; // Reprocess the Message and add to the list if (_messageLayer.ProcessMessage(message)) { selectedMessages.Add(message); } } }
//send message to specific room public ActionResult CheckSpecificRoom(MessageHTML m, string receiver) { Message mem = new Message(); bool CheckRoom = false; string NotFoundRoom = "This room is available"; MessageLayer memlayer = new MessageLayer(); List <Message> mlist = memlayer.GetMessage(); DormLayer layer = new DormLayer(); Dorm dorm = layer.GetDorm(Session["UserName"].ToString()); int sender_dorm = dorm.Dorm_ID; /// scan username of room RoomLayer Rl = new RoomLayer(); List <Room> roomList = Rl.GetStatusRoom(); //get only unavailable room foreach (Room room in roomList) { if (room.Dorm_ID == sender_dorm) { //int.Parse(receiver) String roomnum = room.Floor + room.Room_number; if (roomnum == receiver) { PersonLayer PL = new PersonLayer(); List <Person> personoomList = PL.GetPerson(); foreach (Person person in personoomList) { if (person.Room_ID == room.Room_ID) { mem.Receiver_Username = person.Username; CheckRoom = true; } } } } } /// mem.Sender_Username = Session["UserName"].ToString(); mem.MessageID = mlist.Count + 1; mem.Title = m.Subject; mem.Isread = 0; mem.Text = m.Message; mem.Date = DateTime.Now.ToString("dd-MM-yyyy") + " " + DateTime.Today.ToString("HH:mm:ss tt"); //Date + Time if (CheckRoom == true) { db.Message.Add(mem); db.SaveChanges(); return(RedirectToAction("Index", new { action = 1 })); } else { return(View("Messenger")); //return NotFoundRoom; } // return mem.Receiver_Username + " " + mem.Sender_Username + " " + // " " + mem.Date; }