/// <summary> /// Insert a Message /// </summary> /// <returns>Success status code</returns> public int InsertMessage(MessageModel message) { int result = 0; string cmd = "INSERT INTO Messages(GlobalID, TargetUser_FK, SourceUser_FK, SendDate, Message, Title, Latitude, Longitude, IsEvent, EventStartDate)"; cmd += "VALUES(@GlobalID, @TargetUser_FK, @SourceUser_FK, @SendDate, @Message, @Title, @Latitude, @Longitude, @IsEvent, @EventStartDate)"; SqlParameter globalid = new SqlParameter("@GlobalID", message.GlobalID); SqlParameter target = new SqlParameter("@TargetUser_FK", message.TargetUserID); SqlParameter source = new SqlParameter("@SourceUser_FK", message.SourceUserID); SqlParameter senddate = new SqlParameter("@SendDate", DateTime.UtcNow); SqlParameter messageparam = new SqlParameter("@Message", message.Message); SqlParameter title = new SqlParameter("@Title", message.Title); SqlParameter latitude = new SqlParameter("@Latitude", message.Latitude); SqlParameter longitude = new SqlParameter("@Longitude", message.Longitude); SqlParameter isevent = new SqlParameter("@IsEvent", message.IsEvent); SqlParameter startdate = new SqlParameter("@EventStartDate", DateTime.UtcNow); if(message.IsEvent) startdate = new SqlParameter("@EventStartDate", message.EventStartDate); try { result = DatabaseHelper.ExecuteNonQuery(cmd, _instance._connectionString, globalid, target, source, senddate, messageparam, title, latitude, longitude, isevent, startdate); } catch (Exception ex) { ExceptionManager.Instance.InsertLogMessage(new LogMessageModel(LogStatus.Error, ex.Message, -1)); result = -1; } return result; }
/// <summary> /// Get Messages that have been received after the provided date /// </summary> public List<MessageModel> GetUserMessagesByDate(DateTime date, string userid) { List<MessageModel> messages = new List<MessageModel>(); string cmd = "SELECT * FROM Messages WHERE SendDate > @SendDate and TargetUser_FK = @TargetUser_FK"; try { SqlParameter dateparam = new SqlParameter("@SendDate", date); SqlParameter idparam = new SqlParameter("@TargetUser_FK", userid); DataSet ds = DatabaseHelper.ExecuteQuery(cmd, _instance._connectionString, dateparam, idparam); if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { MessageModel model = new MessageModel(); model.GlobalID = row["GlobalID"].ToString(); model.IsEvent = bool.Parse(row["IsEvent"].ToString()); model.Latitude = double.Parse(row["Latitude"].ToString()); model.Longitude = double.Parse(row["Longitude"].ToString()); model.Message = row["Message"].ToString(); model.SendDate = DateTime.Parse(row["SendDate"].ToString()); model.SourceUserID = row["SourceUser_FK"].ToString(); model.TargetUserID = row["TargetUser_FK"].ToString(); model.Title = row["Title"].ToString(); if(!string.IsNullOrEmpty(row["EventStartDate"].ToString())) model.EventStartDate = DateTime.Parse(row["EventStartDate"].ToString()); messages.Add(model); } } } catch (Exception ex) { ExceptionManager.Instance.InsertLogMessage(new LogMessageModel(LogStatus.Error, ex.Message, -1)); } return messages; }