public long Add(Models.DTOs.Message.Add item, long messageTypeId) { if (item == null) { throw new NullReferenceException("Views.Message.Add"); } if (string.IsNullOrEmpty(item.Text)) { throw new ArgumentNullException("Views.Message.Add.Text"); } var msg = new Models.Message() { Text = item.Text, MessageTypeId = messageTypeId, InsertDate = (long)DateTimeOffset.Now.ToUniversalTime().Subtract( new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc) ).TotalMilliseconds }; _context.Messages.Add(msg); _context.SaveChanges(); return(msg.Id); }
private async Task <IHttpActionResult> Add(Models.DTOs.Message.Add message, long messageTypeId) { if (!ModelState.IsValid) { return(base.ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState))); } var task1 = Task.Run(() => _message.Add(message, messageTypeId)); try{ await Task.WhenAll(task1); }catch (ArgumentNullException) { return(BadRequest(Events.MissingParameter.ToString())); }catch (NullReferenceException) { return(BadRequest(Events.MissingObject.ToString())); }catch (AggregateException ae) { var ex = ae.Flatten().InnerException; if (ex is ArgumentNullException) { return(BadRequest(Events.MissingParameter.ToString())); } _logger.Error(String.Format("Error adding log message [{0}]", Events.AddError), ex); return(StatusCode(HttpStatusCode.InternalServerError)); } if (task1.Status != TaskStatus.RanToCompletion) { _logger.Error(String.Format("Add log message task did not complete [{0}]", Events.AddError), task1.Exception); return(StatusCode(HttpStatusCode.InternalServerError)); } return(StatusCode(HttpStatusCode.Created)); }
public void BlankMessageText_ErrorReturned() { // Arrange var newMessage = new Models.DTOs.Message.Add(""); // Act var exception = Record.Exception(() => message.Add(newMessage, (long)Constants.MessageType.Error)); // Assert Assert.NotNull(exception); Assert.IsType <ArgumentNullException>(exception); }
public async Task <IHttpActionResult> Add_Info([FromBody] Models.DTOs.Message.Add message) { return(await Add(message, (long)Constants.MessageType.Info)); }