public Models.ApiResult Create(Message message) { var result = _adapter.saveMessage(message); return result; }
public Models.ApiResult saveMessage(Message message) { var db = new BwareContext(); var result = new Models.ApiResult(); result.isSuccess = false; result.data = null; result.multipleData = null; if (message == null) { result.isSuccess = false; result.message = "Message data is null"; return result; } if (message.UserCreated == null) { result.isSuccess = false; result.message = "User created can not be null"; return result; } if (message.DateCreated == null) { result.isSuccess = false; result.message = "Date Created must be included"; return result; } // check lat/lon in range if (message.Latitude > 90 || message.Latitude < -90 || message.Longitude > 180 || message.Longitude < -180) { result.isSuccess = false; result.message = "Latitude must be between -90 and 90; Longitude must be between -180 and 180"; return result; } if (message.Latitude.GetType() != typeof(Double) || message.Longitude.GetType() != typeof(Double)) { result.isSuccess = false; result.message = "Latitude and Longitude must be included and of correct data type"; return result; } try { // set DbGeography var sourcePoint = string.Format("POINT({0} {1})", message.Longitude.ToString().Replace(',', '.'), message.Latitude.ToString().Replace(',', '.')); var messageLocation = DbGeography.PointFromText(sourcePoint, 4326); message.MessageLocation = messageLocation; // Store date created/modified as UTC message.DateCreated = message.DateCreated.ToUniversalTime(); db.Messages.Add(message); var numReturned = db.SaveChanges(); if (numReturned == 1) { result.isSuccess = true; result.message = "Message saved successfully"; return result; } else { result.isSuccess = false; result.message = "Error saving message record to database"; return result; } } catch { result.isSuccess = false; result.message = "Error saving message record to database"; return result; } }